Определить, чередуются ли в массиве положительные и отрицательные элементы - 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.

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

  1. Создается переменная m типа array[1..20] of integer. Это означает, что мы создаем массив из 20 целых чисел.
  2. Создаются переменные n, i, a, i1, k, s типа integer. Они будут использоваться в цикле.
  3. Запускается цикл repeat, который будет выполняться до тех пор, пока n (размер массива) находится в диапазоне от 2 до 20.
  4. Внутри цикла repeat выполняется запрос ввода размера массива n.
  5. После получения размера массива, начинается цикл for, который будет выполняться n раз. В каждой итерации этого цикла пользователю предлагается ввести элемент массива.
  6. После ввода всех элементов массива выводится сам массив.
  7. Затем выполняется проверка условия k=0. Если это условие истинно, значит положительные и отрицательные числа чередуются, и выводится соответствующее сообщение. Если условие ложно, значит положительные и отрицательные числа не чередуются, и выводится соответствующее сообщение.
  8. Выполняется запрос ввода числа для поиска.
  9. Запускается цикл while, который будет выполняться до тех пор, пока i (индекс текущего элемента) меньше n и k равно 0.
  10. Внутри цикла while выполняется проверка условия m[i]==a. Если это условие истинно, то значение k устанавливается равным i. Если условие ложно, то значение i увеличивается на 1.
  11. После выхода из цикла while выполняется проверка значения k. Если k равно 0, то выводится сообщение о том, что число для поиска отсутствует в массиве. Если k равно n, то выводится сообщение о том, что после первого числа нет других элементов. Если k не равно ни одному из этих значений, то выводится сумма элементов за первым числом.
  12. Конец программы.

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

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