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