Определить, имеется ли в заданном целочисленном массиве A(N) хотя бы одна пара совпадающих по значению чисел — Pascal(Паскаль)

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

Leave a Comment

48 − = 41