Урок 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
- 4048 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
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)