Определить вид последовательности — возрастающая, убывающая, случайная или постоянная - 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.
Объяснение кода листинга программы
- В коде используется язык программирования PascalABC.Net.
- Задачей кода является определение вида последовательности чисел: возрастающая, убывающая, случайная или постоянная.
- В коде используются следующие переменные:
- Status: булевый тип, используемый для определения вида последовательности (возрастающая, убывающая, равные числа).
- count: счетчик числа элементов последовательности.
- N1, N2: целочисленные переменные, используемые для хранения текущих значений элементов последовательности.
- В начале кода инициализируется значение переменной Status, равное 0, что означает отсутствие признаков возрастающей, убывающей или равной последовательности.
- В цикле, пока не будет достигнут конец последовательности (N1 не будет равно theEndTerminated), происходит следующее:
- count увеличивается на 1.
- считывается следующий элемент последовательности N2.
- если N2 не равно theEndTerminated, то проверяется, является ли текущая последовательность возрастающей, убывающей или равной.
- если N1 меньше N2, то в Status устанавливается 1-й бит (возрастающая последовательность).
- если N1 больше N2, то в Status устанавливается 2-й бит (убывающая последовательность).
- если N1 равно N2, то в Status устанавливается 4-й бит (в последовательности есть равные числа).
- После завершения цикла, значение переменной count выводится на экран.
- Затем, в зависимости от значения переменной 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
(случайная последовательность).
- если Status равно 1, то выводится сообщение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д