{Определить является ли заданная последовательность
чисел а1, а2,...,аN монотонно убывающей.
Система тестов
╔═══════╤═════════════╤══════════════╤═══════════╗
║ Номер │ Проверяемый │ Данные │ ║
║ теста │ случай ├───┬──────────┤ Результат ║
║ │ │ N │ Вектор А │ ║
╟───────┼─────────────┼───┼──────────┼───────────╢
║ 1 │ Является │ 3 │(3, 2, 1) │ "Да" ║
╟───────┼─────────────┼───┼──────────┼───────────╢
║ 2 │ Не является │ 3 │(2, 3, 1) │ "Нет" ║
╚═══════╧═════════════╧═══╧══════════╧═══════════╝
}
Program Decrease;
Uses Crt;
Var A : Array [1..10] of Real;
N, i : Integer;
Otvet: Boolean;
{--------------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода данных}
Begin
ClrScr;
Write('Количество элементов - '); ReadLn(N);
For i := 1 to N do
begin
Write('A[' , i , '] = '); ReadLn(A[i])
end; WriteLn;
WriteLn('Заданная последовательность чисел');
For i := 1 to N do Write(A[i] : 5 : 1);
WriteLn
End; { of InputOutput }
{--------------------------------------------}
Procedure Processing( Var Otvet: Boolean);
Begin {описание процедуры проверки на убывание элементов}
Otvet := TRUE; i:=1;
While (i<=N-1) and Otvet do
If (A[i]<A[i+1]) then Otvet := FALSE
else i := i+1;
End; { of Processing }
{--------------------------------------------}
Procedure Result(Otvet: Boolean); {описание процедуры вывода результата}
Begin
If Otvet then Write('образует ')
else Write('не образует ');
WriteLn('монотонно убывающую последовательность.');
ReadLn
End;
{--------------------------------------------}
BEGIN
InputOutput; {вызов процедуры ввода-вывода}
Processing(Otvet); {вызов процедуры проверки на убывание}
Result(Otvet); {вызов процедуры вывода результата}
END.