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