Урок 15. Задача 12.
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
type newArr = array [1..7] of integer;
var i : integer;
Arr : newArr;
function shift_unique(Arr_2 :newArr) :newArr;
var i, j, a : integer;
begin
for i := 1 to 6 do
begin
a := Arr_2[i];
for j := 2 to 7 do
if (a = Arr_2[j]) and (i <> j) then
begin
Arr_2[i] := 0;
Arr_2[j] := 0;
end;
end;
for i := 1 to 7 do // ограничение циклов для смещения массива
if Arr_2[i] = 0 then
a := a + 1;
for i := 1 to a do // 'a' количество нулей
for j := 1 to 6 do
if Arr_2[j] = 0 then
begin
Arr_2[j] := Arr_2[j + 1];
Arr_2[j + 1] := 0;
end;
shift_unique := Arr_2;
end;
begin
randomize;
for i := 1 to 7 do // инициализация
begin
Arr[i] := random(15) + 1;
write(Arr[i], ' ');
end;
writeln();
Arr := shift_unique(Arr);
for i := low(Arr) to high(Arr) do // вывод массива
write(Arr[i], ' ');
readln();
end.
- Log in to post comments
- 462 reads