{
Пример 5.1. Определить, имеется ли в заданном целочисленном
массиве A(N) хотя бы одна пара совпадающих по значению чисел.
Система тестов
╔═══════╤══════════════╤══════════════════╤════════════════════╗
║ Номер │ Проверяемый │ Данные │ ║
║ теста │ случай ├───┬──────────────┤ Результат ║
║ │ │ N │ Массив А │ ║
╟───────┼──────────────┼───┼──────────────┼────────────────────╢
║ 1 │ "Имеется" │ 4 │ (1, 3, 2, 3) │ "Есть совпадающие" ║
╟───────┼──────────────┼───┼──────────────┼────────────────────╢
║ 2 │ "Не имеется" │ 3 │ (1, 2, 3) │ "Нет совпадающих" ║
╚═══════╧══════════════╧═══╧══════════════╧════════════════════╝
}
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.