Урок 15 (Решенная задача номер 8)

Урок 15 (Решенная задача номер 8)

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

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

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

а для:

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

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

var a: array[1..7] of integer;
    i,c, d: integer;
function ru36(x: array of integer):integer;
  begin
    for i := 1 to 7 do
       begin
         for c := 1 to 7 do
            if (a[i] = a[c]) and (i <> c) then
             begin
              writeln('massiv ne ynicalen');
              d := 1;
             end;
       end;
     if (d = 0) then
       writeln('massiv ynicalen');
  end;

begin
  randomize();
  for i := 1 to 7 do
     begin
     a[i] := random(15) - 0;
     writeln(a[i]);
     end;
  ru36(a);
end.
vedro-compota's picture

  1. функция должна возвращать булевский тип (явно через result)
  2. данная функция не должна производить побочный эффект

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

Romakip's picture

var a: array[1..7] of integer;
    i,c,d: integer;
function ru36(x: array of integer):boolean;
  begin
    for i := 1 to 7 do
       begin
         for c := 1 to 7 do
            if (a[i] = a[c]) and (i <> c) then
            begin
              d := 1;
            end;
       end;
  if (d = 0) then
  result := true
  else result := false;
  end;

begin
  randomize();
  for i := 1 to 7 do
     begin
     a[i] := random(15) - 0;
     writeln(a[i]);
     end;
  if (ru36(a) = true) then
   writeln('aaray ynicalen')
   else
     writeln('array ne ynicalen');
end.