Урок 15. Задача 10.
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
type ar = array[1..7] of integer;
var i : integer;
Arr : ar;
fl : boolean;
function unique(var fl : boolean; Arr_2 : ar) : boolean;
var i, j, a, b : integer;
begin
a := 1;
b := 1;
for i := a to 6 do
begin
a += 1; //
b += 1; //
for j := b to 7 do
if Arr_2[i] = Arr_2[j] then //
fl := false;
end;
unique := fl;
end;
begin
fl := true;
randomize;
for i := 1 to 7 do // инициализация
begin
Arr[i] := random(15) + 1;
end;
fl := unique(fl, Arr);
for i := low(Arr) to high(Arr) do // вывод массива
write(Arr[i], ' ');
if fl then
write('This array is unique')
else
write('This array is not unique');
readln();
end.
- Log in to post comments
- 1351 reads
vedro-compota
Sat, 06/25/2022 - 20:40
Permalink
for i := a to 6 do
-- если что-то оказалось неуникальным, дальше проверять нет смысла - завершаем циклы
_____________
матфак вгу и остальная классика =)
Dennis80
Wed, 06/29/2022 - 10:16
Permalink
Исправил
type ar = array[1..7] of integer; var i : integer; Arr : ar; fl : boolean; function unique(Arr_2 : ar) : boolean; var i, j : integer; fl : boolean; begin fl := true; for i := 1 to 6 do for j := 2 to 7 do if (Arr_2[i] = Arr_2[j]) and (i <> j) then // begin fl := false; break; end; unique := fl; end; begin randomize; for i := 1 to 7 do // инициализация Arr[i] := random(15) + 1; for i := low(Arr) to high(Arr) do // вывод массива write(Arr[i], ' '); fl := unique(Arr); if fl then // важное сообщение write(' This array is unique') else write(' This array is not unique'); readln(); end.vedro-compota
Wed, 06/29/2022 - 20:21
Permalink
for i := 1 to 6 do
-- убедиться, что выход происходит сразу из обоих циклов
_____________
матфак вгу и остальная классика =)
Dennis80
Sat, 07/02/2022 - 18:08
Permalink
type ar = array[1..7] of
type ar = array[1..7] of integer; var i : integer; Arr : ar; fl : boolean; function unique(Arr_2 : ar) : boolean; var i, j : integer; fl : boolean; label ex; begin fl := true; for i := 1 to 6 do for j := 2 to 7 do if (Arr_2[i] = Arr_2[j]) and (i <> j) then // begin fl := false; goto ex; // выход из двух циклов end; ex: unique := fl; end; begin randomize; for i := 1 to 7 do // инициализация Arr[i] := random(15) + 1; for i := low(Arr) to high(Arr) do // вывод массива write(Arr[i], ' '); fl := unique(Arr); if fl then // важное сообщение write(' This array is unique') else write(' This array is not unique'); readln(); end.vedro-compota
Sat, 07/02/2022 - 19:47
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)