Задача 1 Урок 22

Урок 22

У вас есть функция:

program my_program;
type b = array[1..10] of integer; // объявление типа

function filling_array( min, max : integer ) : b;
  var  count, i, j, l, k, number : integer;
      arr : b;
begin
  count := 0;
  k := 1;
  randomize; // вызов процедуры
  while( count < 10 ) do
  begin
    number := random( max - (min + 1) + min ) ; // случайные числa
    write( number, ' ' );
    j := 0;
    for i := low( arr ) to k do
    begin
      if( arr[i] <> number ) then
      begin
          j += 1;
          if( j = k ) then
          begin
            count += 1;
            k += 1;
            arr[count] := number;
          end;
      end
      else
        break;
    end;
  end;
  filling_array := arr; // возвращаем значение функции
end;

Что делает эта функция?
В данной функции есть лишние переменные, перепишите код так, чтобы они не использовались.

{Функция заполняет массив уникальными значениями за диапазона randome.
Убрал лишние переменные и условия, убрал зацикливание, если не удается заполнить}

type b = array[1..10] of integer; // объявление типа

function filling_array( min, max : integer ) : b;
  var  count, i, number : integer;
      arr : b;
begin
  count := 1;
  randomize; // вызов процедуры
  while( count <= 10 ) do
  begin
    number := random((max - min + 1) + min ) ; // случайные числa
    if ((max - min + 1) + min ) >= ((high(arr) - low(arr) + 1) + low(arr)) then
    //проверяем, хватит ли диапазона
    begin
      write( number, ' ' );
      for i := low( arr ) to count do
      begin
        if( arr[i] <> number ) then
        begin
          if ( i = count ) then
          begin
           arr[count] := number;
           inc(count);
          end;
        end
        else
          break;
      end;
    end;
    //возможно сообщение об ошибке для неверного диапазона
  end;
  filling_array := arr; // возвращаем значение функции
end;