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

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

Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.

Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.

type myArr = array [1..7] of integer;
var a:myArr; b:array [1..4] of integer; i, l:integer;

procedure randm(var a: myArr);
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 sravni(a:myArr; k:integer): boolean;
var l:integer;
begin
  result:=true;
  for l:=(k+1) to high(a) do
  if a[k]=a[l] then
  begin
    result:=false;
    break;
  end;
end;

procedure shiftArr(var promArr: myArr; n:integer);
var j:integer;
begin
  for j:=n to 6 do
    promArr[j]:=promArr[j+1];
  promArr[high(promArr)]:=0;
end;

begin
  randm(a);
  write (a[i],' ');
  writeln();
  l:=1;
  for i:= low(a) to high(a) do
    if not sravni(a,i) then
    begin
      b[l]:=a[i];
      l+=1;
    end;

  for l:=low(b) to high(b) do
    for i:=high(a) downto low(a) do
      if b[l]=a[i] then
        shiftArr (a,i);

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