Задача 14 Урок 15
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для:|1|-3|5|-3|9|5|8|получим:
|1|9|8|0|0|0|0|
program u15z14; type newArr = array [1..7] of integer; var i,z,b,a:integer; n:newArr; d: array [1..7] of integer; procedure unik(var promArr: newArr; k:integer); //удаляем числа равные n[i] var j,r:integer; begin j:=1; while j<8 do begin if promArr[j]=k then begin for r:=j to 8 do promArr[r]:=promArr[r+1]; promArr[high(promArr)]:=0; j:=1; end else j:=j+1; end; end; begin randomize(); for i:=low(n) to high(n) do //заполняем массив случайными числами begin n[i]:=random(14)+1; d[i]:=n[i]; //сразу дублируем массив write(n[i],' '); end; writeln(); for i:=low(n) to high(n) do //сравниваем числа в масиве begin a:=0; for z:=low(d) to high(d) do begin if (d[z]=n[i]) then a:=a+1; if a=2 then //если число повторяется больше одного раза begin a:=0; unik(n,n[i]) //передаем в процедуру end; end; end; for i:=low(n) to high(n) do //выводим полученный массив write(n[i], ' '); readln; end.
- Log in to post comments
- 218 reads