Задача 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;Что делает эта функция?
В данной функции есть лишние переменные, перепишите код так, чтобы они не использовались.
type b = array[1..10] of integer; // объявление типа
var
mas: b;
i: integer;
function filling_array( max : integer ) : b;
//заполняет массив числами [0, max - 1) без повторений
//распечатывая генерируемые числа
//max должен быть >= (high(arr) + 1), иначе цикл станет бесконечным,
//т.к. заполнение без повторений не будет возможным
// лишние: j, l, k, min
var
count, i, number: integer;
arr: b;
begin
count := 1;
randomize; // вызов процедуры
while(count <= 10) do
begin
number := random( max - 1 ); // случайные числa
write( number, ' ' );
for i := low( arr ) to count do
begin
if(arr[i] = number) then
break
else if(i = count) then
begin
count += 1;
arr[i] := number;
end;
end;
end;
filling_array := arr; //возвращаем значение функции
end;
begin
mas := filling_array(11);
writeln();
writeln();
for i := low(mas) to high(mas) do
write(mas[i], ' ');
readln();
end.
- Log in to post comments
- 1401 reads
vedro-compota
Sun, 11/07/2021 - 13:40
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)