Задача 15 Урок 15
Primary tabs
Напишите программу, которая будет заполнять массив из 10 элементов случайными числами из диапазона от 0 до 20, при этом в полученном массиве не должно быть одинаковых значений.
type myArr = array [1..10] of integer; var a:myArr; i, min, max:integer; function sravni(a:myArr; k:integer): boolean; var l:integer; begin for l:=1 to(k-1) do if a[k]=a[l] then begin result:=false; break; end else result:=true; end; begin randomize(); min:=0; max:=20; for i:=low(a) to high(a) do begin repeat a[i]:= min+random(max-min+1); writeln(a[i]); until sravni(a,i); end; for i:=low(a) to high(a) do write(a[i],' '); readln(); end.
- Log in to post comments
- 1093 reads
vedro-compota
Tue, 03/12/2024 - 18:47
Permalink
for l:=1 to(k-1) do
нужен отступ внутри тела цикла
_____________
матфак вгу и остальная классика =)
vedro-compota
Tue, 03/12/2024 - 20:10
Permalink
for l:=1 to(k-1) do
-- избыточно каждый раз присваивать true, можно переписать оптимальнее
_____________
матфак вгу и остальная классика =)
drl
Sat, 03/23/2024 - 19:23
Permalink
исправления
drl
Sat, 03/23/2024 - 19:25
Permalink
с одной функцией
vedro-compota
Sat, 03/23/2024 - 20:41
Permalink
for i:=low(a) to high(a) do
-- тут можно оптимизировать код, чтобы не проверять каждый раз, небольшое дублирование, зато меньше проверок
см. подробности, в т.ч. с другими комментариями: https://youtu.be/BYx1b28OpQg
_____________
матфак вгу и остальная классика =)
vedro-compota
Sat, 03/23/2024 - 21:06
Permalink
repeat
-- возможное использование флага
_____________
матфак вгу и остальная классика =)