Напечатать те числа из массива, которые образуют убывающие последовательности - Free Pascal

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

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

Очень требуется помощь!!! Имеется массив А из N произвольных чисел А(N), среди которых есть положительные, отрицательные и равные нулю. Составить программу, выполняющую задачу. Напечатать те числа из массива, которые образуют убывающие последовательности. Например, если А={2,4,3,0,2,5,–2,5}, результат: 4, 3, 0 и 5, –2.

Решение задачи: «Напечатать те числа из массива, которые образуют убывающие последовательности»

textual
Листинг программы
const
  n = 8;
  a : array[1 .. n] of integer =
  (7, 4, 3, 0, -2, 5, -2, -5);
 
var
  i, j, prev, count : integer;
 
begin
  i := 1;
  prev := 1;
  while i <= n do
  begin
    count := 1;
    while (i <= n) and ((i > 1) and (a[i - 1] > a[i])) do
    begin
      inc(i); inc(count);
    end;
    if count > 1 then
    begin
      for j := prev to i - 1 do write(a[j]:4);
      writeln;
      dec(i);
    end;
    inc(i);
    prev := i - 1;
  end;
end.

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

  1. Объявлены константы: n = 8; a: array[1 .. n] of integer = (7, 4, 3, 0, -2, 5, -2, -5);
  2. Объявлены переменные: i, j, prev, count: integer;
  3. Начальные значения переменных: i := 1; prev := 1;
  4. Цикл while, выполняющийся до тех пор, пока i <= n:
  5. Внутри цикла while объявлена переменная count и инициализируется значением 1.
  6. Внутри цикла while, пока i не больше n и (i > 1 и a[i-1] > a[i]), увеличивается i и count.
  7. Если count больше 1, то выполняется следующий код: — Внешний цикл for, выполняющийся от prev до i-1. — Вывод значения a[j] в шестнадцатеричной системе счисления с шагом 4. — Вывод символа новой строки. — Уменьшение i на 1. — Уменьшение prev на 1.
  8. Увеличение i на 1.
  9. Цикл while повторяется до тех пор, пока i не станет равным n.
  10. Код внутри цикла while выполняется до тех пор, пока не будет найдена убывающая последовательность длиннее 1.
  11. После вывода последней убывающей последовательности, значение i уменьшается на 1.
  12. Значение prev уменьшается на 1.
  13. Цикл while повторяется до тех пор, пока i не станет равным n.

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

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