Урок 15 Задача 11

Урок 15 Задача 11:

Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.

Например для массива:

|1|5|4|5|6|7|8|

-- функция должна "сообщить", что он неуникальный

а для:

|1|15|4|5|6|7|8|

-- что уникальный.

type
  myArr = array[1..7] of integer;
var
  m: myArr;
  i, j: integer;
function otvet (n: myArr): string; // ф-ция получает на вход массив и выдает сообщение
var
  p, r: integer;
  q: boolean;
  s: string;
begin
  for p:=low(n) to high(n)-1 do    // внешний цикл
    for r:=p+1 to high(n) do       // вложенный цикл
      if (n[p] = n[r]) then        // если встретились равные эл-ты
      begin
        q:= true;                  // переключаем переключатель
        break;                     // прерываем цикл, т.к. дальше проверять не обязательно
      end;
  if q = true then                 // если переключатель был переключен (встретились равные эл-ты)
    s:= 'Neunikalnyj'              // присваиваем строковой переменной соответствующее значение
  else                             // если переключатель остался не переключенным (не встретились равные эл-ты)
    s:= 'Unikalnyj';               // присваиваем соответствующее значение
  result:=s;                       // результат функции - строковая переменная с соответствующим значением (сообщением)
end;
begin                              // начало тела осн-й программы
  randomize();
  for i:=low(m) to high(m) do
  begin
    m[i] := random(15) + 1;
    write(m[i], ' ');
  end;
  writeln;
  write (otvet (m));  // передаем в функцию массив и сразу же выводим на экран сообщение (результат) от функции
  readln ();
end.

Вывод в консоли:

8 8 3 3 2 5 4 
Neunikalnyj
14 6 2 9 13 8 5 
Unikalnyj
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)