Урок 20 - Анализ кода - Решение
Primary tabs
Урок #20 Анализ кода и простая оптимизация. Паскаль
Анализ/"чтение" уже написанного кем-то кода -- одно из важнейших умений, постоянно используемое в повседневной работе профессиональными программистами.
Функция создает массив из несовпадающих чисел от 0 до (max-1) и не будет
работать (точнее зациклится), если (max-1) меньше, чем заявленное количество
элементов в массиве;
так же во время создания массива функция печатает каждое сгенерированное рэндомом
число, которое будет претендовать на попадание в массив.
Лишние переменные и прочие "замечания":
1) min - не используется: random работает только по верхнему значению max,
минимальным всегда будет 0, а не min, причем он рэндомит из (max - 1),
поэтому макс. зн-ие number = (max - 2);
2) лишние переменные: count, j, l, min
Переписываю код, убирая лишние переменные:
program my_program; type b = array[1..10] of integer; // объявление типа function filling_array( max : integer ) : b; var arr: b; i, k, number: integer; // бало count, i, j, l, k, number begin randomize; k := 1; while (k <= 10) do begin number := random(max + 1); // пусть рэндомятся числа от 0 до max включительно write( number, ' ' ); for i:=low(arr) to k do if (number = arr[i]) then break; if (i = k) and (number <> arr[i]) then begin k += 1; arr[i] := number; end; end; filling_array := arr; end;
- Log in to post comments
- 3340 reads
vedro-compota
Wed, 01/27/2021 - 12:41
Permalink
не хватает ссылки на урок
в оформлениее не хватает ссылки на урок
_____________
матфак вгу и остальная классика =)
sunflower
Wed, 01/27/2021 - 22:56
Permalink
исправлено
ссылку добавила
vedro-compota
Tue, 02/02/2021 - 14:59
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)