Определить вид последовательности — возрастающая, убывающая, случайная или постоянная - PascalABC.NET

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

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

Доброго дня всем! Может быть у кого-нибудь найдется время подсказать, как решить эту задачу? Программа получает на вход последовательность целых чисел по модулю не превосходящих 10^9. Признак окончания последовательности - число 2 Х 10^9. Программа должна определить вид последовательности - возрастающая, убывающая, случайная или постоянная. Ответ следует выдать в следующем формате - в 1-й строке напечатать количество элементов последовательности (без учета 2 Х 10^9), во 2-й строке - тип последовательсти: 1 ASCENDING (строго возрастающая); 2 WEAKLY ASCENDING (нестрого возрастающая, т.е. неубывающая); 3 DESCENDING (строго убывающая); 4 WEAKLY DESCENDING (нестрого убывающая, т.е. невозрастающая); 5 CONSTANT (постоянная); 6 RANDOM (случайная).

Решение задачи: «Определить вид последовательности — возрастающая, убывающая, случайная или постоянная»

textual
Листинг программы
const
  theEndTerminated = 2000000000;
 
var
  Status : Byte := $00;
  // 1 бит - последовательность возрастающая
  // 2 бит - последовательность убывающая
  // 3 бит - в последовательности есть равные числа
  
var
  count, N1, N2 : Integer;
  
begin
  count := 0;
  Read(N1);
  while N1 <> theEndTerminated do
    begin
      count += 1;
      
      Read(N2);
      if N2 <> theEndTerminated then
        begin
          if N1 < N2 then Status := Status or $01;
          if N1 > N2 then Status := Status or $02;
          if N1 = N2 then Status := Status or $04;
        end;
        
      N1 := N2;
    end;
    
  WriteLn(count);
  case Status of
    1 : WriteLn('ASCENDING'); // строго возрастающая
    2 : WriteLn('DESCENDING'); // строго убывающая
    4 : WriteLn('CONSTANT'); // постоянная
    5 : WriteLn('WEAKLY ASCENDING'); // неубывающая
    6 : WriteLn('WEAKLY DESCENDING'); // невозрастающая
  else
    WriteLn('RANDOM'); // случайная
  end;
end.

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

  1. В коде используется язык программирования PascalABC.Net.
  2. Задачей кода является определение вида последовательности чисел: возрастающая, убывающая, случайная или постоянная.
  3. В коде используются следующие переменные:
    • Status: булевый тип, используемый для определения вида последовательности (возрастающая, убывающая, равные числа).
    • count: счетчик числа элементов последовательности.
    • N1, N2: целочисленные переменные, используемые для хранения текущих значений элементов последовательности.
  4. В начале кода инициализируется значение переменной Status, равное 0, что означает отсутствие признаков возрастающей, убывающей или равной последовательности.
  5. В цикле, пока не будет достигнут конец последовательности (N1 не будет равно theEndTerminated), происходит следующее:
    • count увеличивается на 1.
    • считывается следующий элемент последовательности N2.
    • если N2 не равно theEndTerminated, то проверяется, является ли текущая последовательность возрастающей, убывающей или равной.
    • если N1 меньше N2, то в Status устанавливается 1-й бит (возрастающая последовательность).
    • если N1 больше N2, то в Status устанавливается 2-й бит (убывающая последовательность).
    • если N1 равно N2, то в Status устанавливается 4-й бит (в последовательности есть равные числа).
  6. После завершения цикла, значение переменной count выводится на экран.
  7. Затем, в зависимости от значения переменной Status, выводится сообщение о виде последовательности:
    • если Status равно 1, то выводится сообщение ASCENDING (возрастающая последовательность).
    • если Status равно 2, то выводится сообщение DESCENDING (убывающая последовательность).
    • если Status равно 4, то выводится сообщение CONSTANT (постоянная последовательность).
    • если Status равно 5, то выводится сообщение WEAKLY ASCENDING (неубывающая последовательность).
    • если Status равно 6, то выводится сообщение WEAKLY DESCENDING (невозрастающая последовательность).
    • если Status не равно 1, 2, 4, 5 или 6, то выводится сообщение RANDOM (случайная последовательность).

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


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

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

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