Задача 12 Урок 15
Primary tabs
Напишите программу, которая будет заполнять массив из 10 элементов случайными числами из диапазона от 0 до 20, при этом в полученном массиве не должно быть одинаковых значений.
function check(a:array of integer; k:integer):integer; var i,h:integer; begin h:=0; for i:=low(a) to high(a) do if (a[i]=k) then h:=1; result:=h; end; var mas: array [1..10] of integer; i,j,k,y,flag:integer; begin randomize(); mas[1]:=random(20); y:=0; for i:=1 to 10 do begin k:=random(20); flag:=check(mas,k); if(flag=0) then mas[i]:=k else begin mas[i]:=-1; y:=y+1; end; end; repeat for j:=1 to 10 do if(mas[j]=-1) then begin k:=random(20); flag:=check(mas,k); if(flag=0) then begin mas[j]:=k; y:=y-1; end; end; until (y=0); for i:=1 to 10 do write(mas[i],' '); end.
Консоль:
3 16 4 2 8 5 10 18 0 6
- Log in to post comments
- 494 reads
vedro-compota
Wed, 02/16/2022 - 19:29
Permalink
1)
1)
-- лучше возвращать boolean
2) Условие выхода из цикла формирование массива - достижение условия заполнения всего массива. Также элемент должен записываться в массив только тогда, когда мы знаем что он уникальный
_____________
матфак вгу и остальная классика =)
Lena
Thu, 02/17/2022 - 16:15
Permalink
function check(a:array of