Определить вид последовательности — возрастающая, убывающая, случайная или постоянная - 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
Листинг программы
  1. const
  2.   theEndTerminated = 2000000000;
  3.  
  4. var
  5.   Status : Byte := $00;
  6.   // 1 бит - последовательность возрастающая
  7.   // 2 бит - последовательность убывающая
  8.   // 3 бит - в последовательности есть равные числа
  9.  
  10. var
  11.   count, N1, N2 : Integer;
  12.  
  13. begin
  14.   count := 0;
  15.   Read(N1);
  16.   while N1 <> theEndTerminated do
  17.     begin
  18.       count += 1;
  19.      
  20.       Read(N2);
  21.       if N2 <> theEndTerminated then
  22.         begin
  23.           if N1 < N2 then Status := Status or $01;
  24.           if N1 > N2 then Status := Status or $02;
  25.           if N1 = N2 then Status := Status or $04;
  26.         end;
  27.        
  28.       N1 := N2;
  29.     end;
  30.    
  31.   WriteLn(count);
  32.   case Status of
  33.     1 : WriteLn('ASCENDING'); // строго возрастающая
  34.     2 : WriteLn('DESCENDING'); // строго убывающая
  35.     4 : WriteLn('CONSTANT'); // постоянная
  36.     5 : WriteLn('WEAKLY ASCENDING'); // неубывающая
  37.     6 : WriteLn('WEAKLY DESCENDING'); // невозрастающая
  38.   else
  39.     WriteLn('RANDOM'); // случайная
  40.   end;
  41. 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

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

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

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