Вложенные циклы. Возрастающая или убывающая последовательность - Pascal

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

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

Вводится последовательность из N целых чисел (N задается с клавиатуры). Проверить, упорядочена ли последовательность. По возрастанию или убыванию? Массивы использовать запрещено.

Решение задачи: «Вложенные циклы. Возрастающая или убывающая последовательность»

textual
Листинг программы
  1. var n, i, p, q, s, t: Integer; z: Boolean;
  2. begin
  3.   Write('n: '); Read(n,q);
  4.   i:=2; {s:=0; z:=False;}
  5.   while i<=n do begin
  6.     p:=q; Read(q);
  7.     if p<q then t:=-1 else if p>q then t:=1 else t:=0;
  8.     z:=z or (t=0);
  9.     if s=0 then s:=t
  10.     else if (s<>t) and (t<>0) then Break;
  11.     Inc(i);
  12.   end;
  13.   Write('Последовательность ');
  14.   if i<=n then WriteLn('не упорядочена')
  15.   else if s=0 then WriteLn('постоянна')
  16.   else begin
  17.     Write('упорядочена по ');
  18.     if s<0
  19.     then if z then WriteLn('неубыванию') else WriteLn('возрастанию')
  20.     else if z then WriteLn('невозрастанию') else WriteLn('убыванию');
  21.   end;
  22. 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

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

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

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