Задача 14 Урок 15
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
type myArr = array [1..7] of integer; var a:myArr; b:array [1..4] of integer; i, l:integer; procedure randm(var a: myArr); 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 sravni(a:myArr; k:integer): boolean; var l:integer; begin result:=true; for l:=(k+1) to high(a) do if a[k]=a[l] then begin result:=false; break; end; end; procedure shiftArr(var promArr: myArr; n:integer); var j:integer; begin for j:=n to 6 do promArr[j]:=promArr[j+1]; promArr[high(promArr)]:=0; end; begin randm(a); write (a[i],' '); writeln(); l:=1; for i:= low(a) to high(a) do if not sravni(a,i) then begin b[l]:=a[i]; l+=1; end; for l:=low(b) to high(b) do for i:=high(a) downto low(a) do if b[l]=a[i] then shiftArr (a,i); for i:=low(a) to high(a) do write(a[i],' '); readln(); end.
- Log in to post comments
- 525 reads