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