Задание 10 Урок 15
Primary tabs
Задание 10 Урок 15
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для массива:|1|5|4|5|6|7|8|
-- функция должна "сообщить", что он неуникальныйа для:
|1|15|4|5|6|7|8|
-- что уникальный.
procedure init_array();
type arr = array[0..6] of integer;
var i,min,max : integer;
f_array: arr;
function uniqueness(): string;
var first_value,second_value,g,i,counter_shift : integer;
begin
counter_shift := 1;
for i:= low(f_array) to high(f_array) do{сравнение двух чисел.цикл первого
числа}
begin
first_value := f_array[i];
for g := (low(f_array)+counter_shift) to (high(f_array)-1) do{сравнение
двух чисел.цикл втрого числа}
begin
second_value := f_array[g];
if g = (high(f_array)-1) then{счетчик для смещения второго числа}
counter_shift += 1;
if first_value = second_value then
begin{результат сравнения}
result := 'Массив неуникален!';
exit;
end;
end;
end;
result := 'Массив уникален!';{результат сравнения}
end;
begin
min := 1;
max := 15;
randomize;
for i:= low(f_array) to high(f_array) do{иниц массив рандомом 1..15}
f_array[i] := min + random(max - min + 1);
for i:= low(f_array) to high(f_array) do{вывод массива}
write('|', f_array[i], '|');
writeln();
write(uniqueness);
end;
begin
init_array();
readln();
end.- Log in to post comments
- 4092 reads
vedro-compota
Thu, 12/17/2020 - 19:52
Permalink
function uniqueness()
-- передавайте этой функции массив на вход (не используйте глобальное значение)
_____________
матфак вгу и остальная классика =)
Dobrii_kot
Sat, 01/02/2021 - 11:18
Permalink
Исправлено
type arr = array[1..7] of integer; var i,min,max : integer; first_array : arr; function uniqueness(f_array: arr): string; var g,k,t: integer; begin t := (low(f_array)+1); for g := low(f_array) to (high(f_array)-1) do begin for k := t to high(f_array) do if f_array[g] = f_array[k] then begin result := 'Массив не уникален!'; exit; end; t += 1; end; result := 'Массив уникален!' end; begin min:= -5; max:= 12; randomize; for i := low(first_array) to high(first_array) do begin first_array[i] := min + random(max - min + 1); write('|', first_array[i], '|'); end; writeln(' // ', uniqueness(first_array)); readln(); end.консоль
vedro-compota
Sun, 01/03/2021 - 15:21
Permalink
замечания
_____________
матфак вгу и остальная классика =)
Dobrii_kot
Wed, 01/06/2021 - 16:47
Permalink
Исправлено
type arr = array[1..7] of integer; var i,min,max : integer; z : boolean; first_array : arr; function uniqueness(f_array: arr): boolean; var g,k,t: integer; begin t := (low(f_array)+1); for g := low(f_array) to (high(f_array)-1) do begin for k := t to high(f_array) do if f_array[g] = f_array[k] then begin result := false; exit; end; t += 1; end; result := true; end; begin min:= -5; max:= 12; randomize; for i := low(first_array) to high(first_array) do begin first_array[i] := min + random(max - min + 1); write('|', first_array[i], '|'); end; write(' // '); z := uniqueness(first_array); if z = true then write('Массив уникален!') else write('Массив не уникален!'); readln(); end.консоль
vedro-compota
Sun, 01/17/2021 - 14:27
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)