Задача 10 Урок 15
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.Например для массива:
|1|5|4|5|6|7|8|
-- функция должна "сообщить", что он неуникальныйа для:
|1|15|4|5|6|7|8|
-- что уникальный.
var a:array [1..7] of integer; l:integer; function uniq(b:array of integer):string; var i,k,j,flag:integer; s:string; begin s:='unikalen'; i:=1; flag:=1; repeat k:=b[i]; for j:=1 to 7 do if(b[j]=k) then begin s:='ne unikalen'; break; end; i:=i+1; if ((s='ne unikalen')or(i=8)) then flag:=0; until (flag=0); result:=s; end; begin randomize(); for l:=1 to 7 do begin a[l]:=random(15); write(a[l],' '); end; writeln(); writeln('massiv ', uniq(a)); end.
Консоль:
11 0 1 9 7 10 14 massiv ne unikalen
- Log in to post comments
- 539 reads
vedro-compota
Wed, 02/16/2022 - 19:34
Permalink
1)
1)
-- лучше использовать boolean для результата
2) лучше переписать перебор на два цикла for с дополнительным break в родительском цикле, в в случае если уже выявлен неуникальный элемент.
_____________
матфак вгу и остальная классика =)
Lena
Thu, 02/17/2022 - 16:07
Permalink
ar