Задача 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
- 872 reads