Вложенные циклы. Возрастающая или убывающая последовательность - 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.

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

  1. Объявление переменных:
    • n, i, p, q, s, t: Integer; - объявление целочисленных переменных n, i, p, q, s, t
    • z: Boolean; - объявление переменной z логического типа
  2. Ввод значения переменной n:
    • Write('n: '); Read(n,q); - вывод на экран сообщения n: и ввод значения переменной n
  3. Инициализация переменной i:
    • i:=2; - инициализация переменной i значением 2
  4. Цикл while:
    • while i<=n do begin - начало цикла, выполняющегося, пока i меньше или равно n
    • p:=q; Read(q); - присвоение переменной p значения переменной q, а затем ввод нового значения переменной q
    • if p<q then t:=-1 else if p>q then t:=1 else t:=0; - проверка условия, после чего переменной t присваивается значение -1, 1 или 0 в зависимости от результата сравнения переменных p и q
    • z:=z or (t=0); - логическая операция ИЛИ между z и (t=0), результат сохраняется в переменной z
    • if 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 на 1
    • end; - конец блока цикла while
  5. Вывод результата:
    • Write('Последовательность '); - вывод на экран текста Последовательность
    • if i<=n then WriteLn('не упорядочена') - если i меньше или равно n, то выводится сообщение не упорядочена
    • else if s=0 then WriteLn('постоянна') - иначе если s равно 0, то выводится сообщение постоянна
    • else begin - начало блока else
      • Write('упорядочена по '); - вывод на экран текста упорядочена по
      • if s<0 then if z then WriteLn('неубыванию') else WriteLn('возрастанию') - если s меньше 0, то если z истинно, то выводится сообщение неубыванию, иначе - возрастанию
      • else if z then WriteLn('невозрастанию') else WriteLn('убыванию'); - иначе если z истинно, то выводится сообщение невозрастанию, иначе - убыванию
    • end. - конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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