Задача 14 Урок 15

Задача 14 Урок 15:

Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 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.