Изменить порядок следования в массиве на обратный - Pascal

Узнай цену своей работы

Формулировка задачи:

Вычислить сумму элементов массива, расположенных после последнего нулевого элемента,количество отрицательных элементов.Изменить порядок следования в массиве на обратный.Заранее благодарен.

Решение задачи: «Изменить порядок следования в массиве на обратный»

textual
Листинг программы
uses crt;
const max=100;
var a:array[1..max] of integer;
    n,i,j:byte;
    s,k,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
k:=0;
for i:=1 to n do
 begin
  a[i]:=random(10)-4;
  write(a[i],' ');
  if a[i]<0 then k:=k+1;
 end;
writeln;
writeln;
j:=0;
i:=n;
while (i>=1)and(j=0) do
if a[i]=0 then j:=i else i:=i-1;
if j=0 then writeln('В массиве нет нулевого элемента, сумма после него=0')
else
 begin
  writeln('Индекс последнего нулевого элемента=',j);
  s:=0;
  for i:=j+1 to n do
  s:=s+a[i];
  writeln('Сумма после последнего нулевого элемента=',s);
 end;
writeln('Количество отрицательных элементов=',k);
for i:=1 to n div 2 do
 begin
  x:=a[i];
  a[i]:=a[n-i+1];
  a[n-i+1]:=x;
 end;
writeln('Измененнный порядок следования:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Объяснение кода листинга программы

  1. Создается переменная max со значением 100.
  2. Создается переменная a типа array[1..max] of integer.
  3. Создаются три байтовые переменные n, i и j.
  4. Выводится сообщение о размере массива n.
  5. Выводится сообщение об исходном массиве.
  6. Инициализируется переменная k значением 0.
  7. Запускается цикл for i := 1 to n do, где n - значение переменной n.
    1. Вычисляется значение a[i] и присваивается переменной s.
    2. Проверяется условие a[i] < 0. Если это условие истинно, то значение k увеличивается на 1.
    3. Выводится значение a[i].
    4. Если значение a[i] равно 0, то запускается цикл while (i >= 1) and (j = 0) do, где i - значение переменной i, а j - значение переменной j.
      1. Проверяется условие a[i] = 0. Если это условие истинно, то выводится сообщение В массиве нет нулевого элемента, сумма после него=0.
      2. Если условие a[i] = 0 не выполняется, то выводится сообщение Индекс последнего нулевого элемента=j.
      3. Вычисляется сумма s.
      4. Выводится значение k.
      5. Если значение k равно 0, то выводится сообщение Количество отрицательных элементов=k.
  8. Запускается цикл for i := 1 to n div 2 do, где n - значение переменной n.
    1. Вычисляется значение x.
    2. Переменные a[i] и a[n-i+1] меняются местами.
    3. Переменная a[n-i+1] присваивается значению x.
  9. Запускается цикл for i := 1 to n do, где n - значение переменной n.
    1. Выводится значение a[i].
  10. Выводится сообщение об измененном порядке следования элементов массива.
  11. Запускается цикл readln(), чтобы дождаться ввода пользователя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы