Обозначения проверяемых условий:
(i <= N-1) и (Flag = "Нет") => (1)
(i <= N) и (Flag = "Нет") => (2)
| N теста
| i
| Flag
| (1)
| j
| (2)
| A[i]=A[j]
| Otvet
|
|
|
| "Нет"
| +
|
| +
+
+
-(кц)
| -
-
-
| |
|
| "Да"
| +
|
| +
+
-(кц)
| -
+
| |
|
| | -(кц)
| | | | "Есть совп.числа"
|
|
|
| "Нет"
| +
+
-(кц)
|
| +
+
-(кц)
+
-(кц)
| -
-
-
|
"Нет совп.чисел"
|
Turbo Pascal
Program Equal;
Uses Crt;
Type Mas = Array [1..20] of Integer;
Var A : Mas;
i, j, N : Integer;
Flag : Boolean;
{------------------------------------------}
Procedure InputOutput; {Описание процедуры ввода-вывода данных}
Begin ClrScr;
Write('N = '); 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] : 4);
WriteLn; WriteLn
End;
{------------------------------------------}
Procedure Search(Var A:Mas; Var Flag:Boolean); {Описание процедуры}
Begin {поиска решения }
i:=1; Flag:= FALSE;
While (i<=N-1) and not Flag do {цикл по первому числу из пары}
Begin
j:=i+1;
While (j<=N) and not Flag do {цикл по второму числу из пары}
If A[i]=A[j] then Flag:=TRUE else j:=j+1;
i:=i+1
end;
End;
{------------------------------------------}
BEGIN
InputOutput; {вызов процедуры ввода-вывода данных }
Search(A, Flag); {вызов процедуры поиска решения задачи}
WriteLn( 'О т в е т : ');
If Flag then WriteLn('Есть совпадающие числа.' )
else WriteLn('Нет совпадающих чисел.');
ReadLn
END.
QBasic
CLS
INPUT "N = ", N : DIM A(N) ' ввод массива А
FOR i = 1 TO N PRINT "A(" ; i ; ") = " ;
INPUT A(i)
NEXT i
PRINT : PRINT "Массив А" ' вывод массива А
FOR i = 1 TO N
PRINT A(i) ;