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

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

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; 

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

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

function filling_array( min, max : integer ) : b;
  var   i, number : integer;
      arr : b;
begin
  randomize; // вызов процедуры
    for i := low(arr) to high(arr) do
      begin
        number := random( max - (min + 1) + min ) ; // случайные числa
        arr[i] := number;
      end;
  filling_array := arr; // возвращаем значение функции
end;
vedro-compota's picture

это не просто случайные числа
+ написать комментарий на тему "что делает эта функция"

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

//Заполняет массив уникальными элементами из заданного диапазона
program my_program;
type b = array[1..10] of integer; // объявление типа
 var i :integer;
     c: array[1..10] of integer;

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

begin
 c:= filling_array(1,15);
 writeln();
 for i := low( c ) to high( c ) do
       write(c[i], ' ');
 readln();
  end. 
vedro-compota's picture

решение засчитано

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