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

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

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

|1|-3|5|-3|9|5|8|

получим:

|1|9|8|0|0|0|0|
var a,b: array [1..7] of integer;
    i: integer;
function rand():integer;
begin
  randomize();
  for i:= low(a) to high(a) do
  begin
    a[i]:=random(16);
    write(a[i], '|');
  end;
end;

function fun():integer;
var c,i1: integer;
begin
  for i:= low(a) to high(a) do
  begin
    for i1:= low(a) to high(a) do
      if (a[i]=a[i1]) and (i <> i1)then
      begin
       a[i]:=0;
       a[i1]:=0;
      end;
  end;
  c:=1;
  for i:= low(a) to high(a) do
  begin
    if(a[i]>0) then
    begin
      b[c]:=a[i];
      c:=c+1;
    end;
  end;
end;

begin
  rand();
  writeln();
  fun();
  writeln();
  for i:= low(a) to high(a) do
    write(b[i], '|');
readln();
end.
vedro-compota's picture

  1. избавиться от глобальных переменных
  2. функция генерации массива должна его именно возвращать

_____________
матфак вгу и остальная классика =)