Определить, чередуются ли в массиве положительные и отрицательные элементы - Pascal ABC
Формулировка задачи:
Нужно две программы по одному массиву
Дан массив {xi}, i=1,2,...,N.
1) Определить, чередуются ли в массиве положительные и отрицательные элементы (т.е. X1>0, x2<0 x3>0 итд, или x1<0, x2>0, x3<0 итд).
2) дано число a. Если в заданном массиве есть хотя бы один член, равный a, то получить сумму всех членов, следующих за первым таким членом, в противном случае дать сообщение об этом
Решение задачи: «Определить, чередуются ли в массиве положительные и отрицательные элементы»
textual
Листинг программы
var m:array[1..20] of integer; n,i,a,i1,k,s:integer; begin repeat write('Введите размер массива от 2 до 20 n='); readln(n); until n in [2..20]; writeln('Введите элементы массива'); for i:=1 to n do begin write('m[',i,']='); readln(m[i]); end; writeln('Введенный массив'); for i:=1 to n do write(m[i],' '); writeln; k:=0; i:=1; while (i<n)and(k=0) do if m[i]*m[i+1]>=0 then k:=1 else i:=i+1; if k=0 then writeln('Положительные и отрицательные чередуются') else writeln('Положительные и отрицательные не чередуются'); write('Введите число для поиска a='); readln(a); i:=1; k:=0; while(i<=n)and(k=0)do if m[i]=a then k:=i else i:=i+1; if k=0 then writeln('Числа ',a,' в массиве нет') else if k=n then writeln('За первым числом ',a,' других элементов нет') else begin s:=0; for i:=k+1 to n do s:=s+m[i]; writeln('Сумма элементов за первым числом ',a,'=',s); end; end.
Объяснение кода листинга программы
- Создается переменная
m
типаarray[1..20] of integer
. Это означает, что мы создаем массив из 20 целых чисел. - Создаются переменные
n
,i
,a
,i1
,k
,s
типаinteger
. Они будут использоваться в цикле. - Запускается цикл
repeat
, который будет выполняться до тех пор, покаn
(размер массива) находится в диапазоне от 2 до 20. - Внутри цикла
repeat
выполняется запрос ввода размера массиваn
. - После получения размера массива, начинается цикл
for
, который будет выполнятьсяn
раз. В каждой итерации этого цикла пользователю предлагается ввести элемент массива. - После ввода всех элементов массива выводится сам массив.
- Затем выполняется проверка условия
k=0
. Если это условие истинно, значит положительные и отрицательные числа чередуются, и выводится соответствующее сообщение. Если условие ложно, значит положительные и отрицательные числа не чередуются, и выводится соответствующее сообщение. - Выполняется запрос ввода числа для поиска.
- Запускается цикл
while
, который будет выполняться до тех пор, покаi
(индекс текущего элемента) меньшеn
иk
равно 0. - Внутри цикла
while
выполняется проверка условияm[i]==a
. Если это условие истинно, то значениеk
устанавливается равнымi
. Если условие ложно, то значениеi
увеличивается на 1. - После выхода из цикла
while
выполняется проверка значенияk
. Еслиk
равно 0, то выводится сообщение о том, что число для поиска отсутствует в массиве. Еслиk
равноn
, то выводится сообщение о том, что после первого числа нет других элементов. Еслиk
не равно ни одному из этих значений, то выводится сумма элементов за первым числом. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д