Задача 1 Урок 22
Primary tabs
У вас есть функция:
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;
- Log in to post comments
- 618 reads