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

Урок 15

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

  function f1(arr: array of integer): myArr;
  var
    j, y, e: integer;
  begin
    for j := low(arr) to high(arr) do
      // наполняем и выводим в консоль
    begin
      for y := (j) to high(arr) do
        // наполняем и выводим в консоль, j := i для скорости
      begin
        if (arr[y] = arr[j]) and (y <> j) then
        begin
         for e := y to (high(arr) - 1) do // убираем элемент
         begin
           arr[e] := arr[e + 1]; //затираем данные
         end;
         arr[high(arr)] := 0;
        end;
      end;
      Result := arr;
    end;
  end;

begin
  randomize();
  for i := low(a) to high(a) do // наполняем и выводим в консоль
  begin
    a[i] := random(15) + 1;
    Write(a[i], ' ');
  end;
  b := f1(a);
  writeln();
  for i := low(b) to high(b) do // наполняем и выводим в консоль
    Write(b[i], ' ');
  readln();
end.

КОНСОЛЬ

13 5 5 11 12 15 5
13 5 11 12 15 0 0
vedro-compota's picture

засчитано

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