Урок 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
- 825 reads