Определить, чередуются ли в массиве положительные и отрицательные элементы - Pascal ABC

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

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

Нужно две программы по одному массиву Дан массив {xi}, i=1,2,...,N. 1) Определить, чередуются ли в массиве положительные и отрицательные элементы (т.е. X1>0, x2<0 x3>0 итд, или x1<0, x2>0, x3<0 итд). 2) дано число a. Если в заданном массиве есть хотя бы один член, равный a, то получить сумму всех членов, следующих за первым таким членом, в противном случае дать сообщение об этом

Решение задачи: «Определить, чередуются ли в массиве положительные и отрицательные элементы»

textual
Листинг программы
  1. var m:array[1..20] of integer;
  2.     n,i,a,i1,k,s:integer;
  3. begin
  4. repeat
  5. write('Введите размер массива от 2 до 20 n=');
  6. readln(n);
  7. until n in [2..20];
  8. writeln('Введите элементы массива');
  9. for i:=1 to n do
  10.  begin
  11.   write('m[',i,']=');
  12.   readln(m[i]);
  13.  end;
  14. writeln('Введенный массив');
  15. for i:=1 to n do
  16. write(m[i],' ');
  17. writeln;
  18. k:=0;
  19. i:=1;
  20. while (i<n)and(k=0) do
  21. if m[i]*m[i+1]>=0 then k:=1
  22. else i:=i+1;
  23. if k=0 then writeln('Положительные и отрицательные чередуются')
  24. else writeln('Положительные и отрицательные не чередуются');
  25. write('Введите число для поиска a=');
  26. readln(a);
  27. i:=1;
  28. k:=0;
  29. while(i<=n)and(k=0)do
  30. if m[i]=a then k:=i
  31. else i:=i+1;
  32. if k=0 then writeln('Числа ',a,' в массиве нет')
  33. else if k=n then writeln('За первым числом ',a,' других элементов нет')
  34. else
  35.  begin
  36.   s:=0;
  37.   for i:=k+1 to n do
  38.   s:=s+m[i];
  39.   writeln('Сумма элементов за первым числом ',a,'=',s);
  40.  end;
  41. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы