Pascal Урок 15 Задача 8
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для массива:
|1|5|4|5|6|7|8|
-- функция должна "сообщить", что он неуникальный
а для:
|1|15|4|5|6|7|8|
-- что уникальный.
program U15Z8;
const n=7;
var a: array[1..n] of integer;
i,j,c:integer;
procedure initIntArrayOfSeven(var a: array of integer);
var min, max: integer;
begin
randomize();
min := 1;
max := 15;
for i:=low(a) to high(a) do
a[i] := min + random(max - min + 1);
end;
function checkUnic(a: array of integer):boolean;
begin
for i:=low(a) to n-1 do
begin
for j:=i+1 to n do
begin
if (a[i]=a[j]) then
inc(c);
end;
end;
if (c=0) then
result:=true
else
result:=false;
end;
begin
initIntArrayOfSeven(a);
writeln('Unikalni li znachenia nassiva :',checkUnic(a));
readln;
end.
- Log in to post comments
- 3131 reads
vedro-compota
Sat, 07/18/2020 - 20:37
Permalink
тут можно добавить break; для
тут можно добавить break; для оптимизации
_____________
матфак вгу и остальная классика =)
JimATI
Mon, 07/20/2020 - 17:47
Permalink
Доработка программы
program U17Z1; const n=7; var a: array[1..n] of integer; i,j,c:integer; procedure initIntArrayOfSeven(var a: array of integer); var min, max: integer; begin randomize(); min := 1; max := 15; for i:=low(a) to high(a) do a[i] := min + random(max - min + 1); end; function checkUnic(a: array of integer):boolean; begin for i:=low(a) to n-1 do begin for j:=i+1 to n do begin if (a[i]=a[j]) then inc(c); if (c>0) then break; end; if (c>0) then break; end; if (c=0) then result:=true else result:=false; end; begin initIntArrayOfSeven(a); writeln('Unikalni li znachenia nassiva :',checkUnic(a)); readln; end.