Пример 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

Другие записи

10.06.2016. Пример 4.2. Задано множество точек на плоскости. Oпределить, принадлежит ли хотя бы одна точка множества внутренней области круга с центром в точке (a, b) и радиусом R.
 Система тестов Номер теста Проверяемый случай Данные Результат a b R Кол. точек Координаты точек Otvet  1 Принадлежит 1 0 2 3 X=(-1, 2, 3)  Y=(2, 1, 2) "Да" 2 Не…
10.06.2016. Пример 4.3. Определить, имеется ли среди элементов главной диагонали заданной целочисленной матрицы A(N, N) хотя бы один положительный нечётный элемент.
  Система тестов Номер теста Проверяемый случай Данные Результат N Матрица А Текст 1 Имеется 3 "Есть такие" 2 Не имеется 2 "Нет таких" Демонстрация Школьный…
10.06.2016. Пример 4.5. Включить заданное число D в массив A(N), упорядоченный по возрастанию, с сохранением упорядоченности.
Система тестов Номер теста Проверяемый случай Данные Результат D Массив А 1 D <= a1 0 A=(1, 3, 5) A=(0, 1, 3, 5) 2 a1< D <= aN 4 A=(1, 3, 5) A=(1, 3, 4, 5) 3 aN…