Урок 15 Задача 12
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для:|1|-3|5|-3|9|5|8|получим:
|1|9|8|0|0|0|0|
Решение:
program u15z12; type newArr = array [1..7] of integer; var i:integer; a,b:newArr; procedure writeArr(arr:newArr); begin for i:=low(arr) to high(arr) do write(arr[i],'|'); end; function uniArr(a:newArr):newArr; var j,k,n:integer; begin n:=1; k:=0; for i:=1 to 6 do begin for j:=i+n to 7 do begin if (a[i]=a[j]) then begin a[j]:=0; k:=1; end; n:=n+1; end; if (k=1) then begin a[i]:=0; k:=0; end; n:=1; end; k:=1; for i:=1 to 7 do if (a[i]<>0) then begin b[k]:=a[i]; k:=k+1; end; result:=b; end; begin randomize; for i:=low(a) to high(a) do a[i]:= random(15)+1; writeArr(a); writeln(); b:=uniArr(a); writeArr(b); readln(); end.
Консоль:
11|13|10|3|5|10|3| 11|13|5|0|0|0|0|
- Log in to post comments
- 694 reads