[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 4.1. Определить, является ли заданная последовательность чисел   a1 , a2 , ... , aN монотонно убывающей.
 
Система тестов
 
Номер теста
Проверяемый случай
Данные
Результат
N
Вектор А
Otvet
1
Является
3
(3, 2, 1)
'Да'
2
Не является
3
(2, 3, 1)
'Нет'
 
Демонстрация
Школьный АЯ 
алг Убывание (арг цел N, арг вещ таб A[1:N],
              рез лит Otvet)
нач цел i
  i:=1; Otvet:="Да"
  нц пока (i<=N–1) и (Otvet="Да")
    если A[i] < A[i+1]
       то Otvet := "Нет"
       иначе i:=i+1
    все
  кц
кон
Исполнение алгоритма 
Обозначения проверяемых условий: 
(i <= N-1) и (Otvet = "Да") => (1) 
A[i] < A[i+1] => (2) 
 
N теста
i
Otvet
(1)
(2)
1
1
2
3
"Да"
+
+
-(кц)
-
-
2
1
"Да"
"Нет"
+
-(кц)
+
 
  Блок-схема 
  (фрагмент) 
Turbo Pascal
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.

QBasic

CLS
INPUT "Количество элементов – ", N : DIM A(N)
FOR i = 1 TO N
  PRINT "A(" ; i ; ") = " ;
  INPUT A(i)
NEXT i
CLS : PRINT "Заданная последовательность чисел"
FOR i = 1 TO N
  PRINT A(i) ;
NEXT i : PRINT
i = 1 : Otvet = 0
WHILE (i <= N–1) AND (Otvet = 0)
  IF A(i) < A(i + 1)  THEN Otvet = 1 ELSE i = i + 1
WEND
IF Otvet=0 THEN PRINT "образует" ; ELSE PRINT "не образует" ;
PRINT " монотонно убывающую последовательность."
END

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]