Урок №15 задача №9

Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для:
|1|-3|5|-3|9|5|8|
получим:
|1|9|8|0|0|0|0|

type  // секция объявления типов
  myArr = array[1..7] of integer;

var
  a: myArr; // объявляем переменную типа  myArr
  i,nomer_massif: integer;
procedure initIntArrayOfSeven(var a: array of integer);
  var min, max: integer;
    begin
     randomize(); // инициал. датчик случайных чисел (вызов стандартной процедуры)
     min := 1; // левая граница
     max := 15; // правая граница
     for i:=low(a) to high(a) do
       a[i] := min + random(max - min + 1);
end;
 function sdvig ( c: myArr; nomer_massif1 : integer):  myArr;
 var i : integer ;
 begin
   For i:=low(c) to high(c) do
   begin
     if (i >= nomer_massif1 )   then
     begin
       c[i]:= c [ i + 1 ];
     end;
   end;
      c[ high(c)] :=0;
      sdvig:= c;
   end ;
function sdvig2 ( c: myArr; nomer_massif1 : integer):  myArr;
 var i : integer ;
 begin
   For i:=low(c) to high(c) do
   begin
     if (i >= nomer_massif1 )   then
     begin
       c[i]:= c [ i + 1 ];
     end;
   end;
      c[ high(c)] :=0;
      sdvig2:= c;
   end ;

 function ynik ( b: myArr): integer;
 var  i, j, y : integer;
 begin
  y := 0;
  for i := 1 to high(b) do
  begin
   for j := 1 to high(b) do
   begin
     if(i = j) then
     begin
       continue;
     end;
     if (b[i] =  b[j])  then
     begin
       b := sdvig( b, i-y);
       b := sdvig2( b, j-1-y);
       y := y + 1;
     end;
   end;
     write(b[i], ' ');
  end;
 end;

begin
   initIntArrayOfSeven(a);
   for i:=low(a) to high(a) do
   begin
     write(a[i], ' ' );
   end;
   writeln();
   ynik(a) ;
   readln();
end.