Задача 11 Урок 15
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для:|1|-3|5|-3|9|5|8|
получим:|1|9|8|0|0|0|0|
program lesson15_11; type myArr = array[1..7] of integer; function unique(a: myArr): myArr; var b: myArr; i, j, temp: integer; begin j := 1; for i := low(a) to high(a) - 1 do begin temp := a[i]; while j < high(a) do begin if temp = a[j + 1] then begin a[i] := 0; a[j + 1] := 0; end; j := j + 1; end; j := i + 1; end; for i := low(b) to high(b) do b[i] := 0; j := 1; for i := low(a) to high(a) do if a[i] > 0 then begin b[j] := a[i]; j := j + 1; end; result := b; end; var arr, newArr: myArr; i: integer; begin randomize(); for i := low(arr) to high(arr) do begin arr[i] := 1 + random(15); write(arr[i], '|'); end; writeln(); newArr := unique(arr); for i := low(newArr) to high(newArr) do write(newArr[i], '|'); readln(); end.
- Log in to post comments
- 2780 reads
vedro-compota
Sun, 08/08/2021 - 11:53
Permalink
попробуйте переделать без
попробуйте переделать без дополнительного массива
_____________
матфак вгу и остальная классика =)
Aleksandr
Thu, 08/12/2021 - 19:44
Permalink
решение
vedro-compota
Thu, 08/12/2021 - 20:32
Permalink
for j := 1 to nul do
-- попробовать
сейчас сложность k*N
можно добавиться сложности N + k
Начальные преобразования:
1 3 2 3 5 6 5
1 0 2 0 0 6 0
Далее можно за один цикла перейти к ситуации:
_____________
матфак вгу и остальная классика =)
Aleksandr
Tue, 08/17/2021 - 19:47
Permalink
решение
vedro-compota
Thu, 08/19/2021 - 20:58
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)