Определить, чередуются ли в массиве положительные и отрицательные элементы - 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
не равно ни одному из этих значений, то выводится сумма элементов за первым числом. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д