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