Вложенные циклы. Возрастающая или убывающая последовательность - Pascal
Формулировка задачи:
Вводится последовательность из N целых чисел (N задается с клавиатуры). Проверить, упорядочена ли последовательность. По возрастанию или убыванию? Массивы использовать запрещено.
Решение задачи: «Вложенные циклы. Возрастающая или убывающая последовательность»
textual
Листинг программы
var n, i, p, q, s, t: Integer; z: Boolean; begin Write('n: '); Read(n,q); i:=2; {s:=0; z:=False;} while i<=n do begin p:=q; Read(q); if p<q then t:=-1 else if p>q then t:=1 else t:=0; z:=z or (t=0); if s=0 then s:=t else if (s<>t) and (t<>0) then Break; Inc(i); end; Write('Последовательность '); if i<=n then WriteLn('не упорядочена') else if s=0 then WriteLn('постоянна') else begin Write('упорядочена по '); if s<0 then if z then WriteLn('неубыванию') else WriteLn('возрастанию') else if z then WriteLn('невозрастанию') else WriteLn('убыванию'); end; end.
Объяснение кода листинга программы
- Объявление переменных:
n, i, p, q, s, t: Integer;
- объявление целочисленных переменных n, i, p, q, s, tz: Boolean;
- объявление переменной z логического типа
- Ввод значения переменной n:
Write('n: '); Read(n,q);
- вывод на экран сообщенияn:
и ввод значения переменной n
- Инициализация переменной i:
i:=2;
- инициализация переменной i значением 2
- Цикл while:
while i<=n do begin
- начало цикла, выполняющегося, пока i меньше или равно np:=q; Read(q);
- присвоение переменной p значения переменной q, а затем ввод нового значения переменной qif p<q then t:=-1 else if p>q then t:=1 else t:=0;
- проверка условия, после чего переменной t присваивается значение -1, 1 или 0 в зависимости от результата сравнения переменных p и qz:=z or (t=0);
- логическая операцияИЛИ
между z и (t=0), результат сохраняется в переменной zif s=0 then s:=t else if (s<>t) and (t<>0) then Break;
- если s равно 0, то s присваивается значение t, иначе если s не равно t и t не равно 0, то происходит выход из циклаInc(i);
- увеличение значения переменной i на 1end;
- конец блока цикла while
- Вывод результата:
Write('Последовательность ');
- вывод на экран текстаПоследовательность
if i<=n then WriteLn('не упорядочена')
- если i меньше или равно n, то выводится сообщениене упорядочена
else if s=0 then WriteLn('постоянна')
- иначе если s равно 0, то выводится сообщениепостоянна
else begin
- начало блока elseWrite('упорядочена по ');
- вывод на экран текстаупорядочена по
if s<0 then if z then WriteLn('неубыванию') else WriteLn('возрастанию')
- если s меньше 0, то если z истинно, то выводится сообщениенеубыванию
, иначе -возрастанию
else if z then WriteLn('невозрастанию') else WriteLn('убыванию');
- иначе если z истинно, то выводится сообщениеневозрастанию
, иначе -убыванию
end.
- конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д