Witam wszystkich jako że to mój pierwszy post na forum. Mam problem z wylowaniem losowych liczb do totka. O ile procedura wypelnij losuje inne liczby za kazdym uruchomieniem o tyle lotto losuje wszystkie liczby z przedzialu 1-49 i program sie zawiesza. Wydanje mi sie ze randomize jest uzyty poprawnie. Nie mam pojecia dlaczego sie tak dzieje. Dzieki za podpowiedz
program lotto ;
uses crt;
CONST PROBY = 1000;
ZAKRES = 49;
ILOSC = 6;
var i,j,k,l,pom,pom1,licznik:integer;
A:array[1..ZAKRES] of integer; // GLOWNE LOSOWANIE
A2:array[1..ZAKRES] of integer; // LOSOWANIE JEDNEGO KUPONU
wynik:array[1..ILOSC] of integer; // ZLICZAM ILOSC WYSTĄPIEN
procedure wypelnij;
begin
for i:=1 to ZAKRES do
A[i]:=0;
for i:=1 to ILOSC do
begin
pom:=random(49)+1;
while A[pom]=pom do
pom:=random(49)+1;
A[pom]:=pom;
end;
for i:=1 to ZAKRES do
writeln(A[i]);
end;
procedure lotto1;
begin
for i:=1 to ZAKRES do
A2[i]:=0;
for i:=1 to ZAKRES do
wynik[i]:=0;
licznik:=0;
for i:=1 to PROBY do
begin
for j:=1 to ILOSC do
begin
pom1:=random(49)+1;
while A2[pom1]=pom1 do // CHCE ABY LICZBY SIE NIE POWTARZALY
pom1:=random(49)+1;
A2[pom1]:=pom1;
writeln('pom1=',pom1);
if A[pom1]=pom1 then
licznik:=licznik+1; // SPRAWDZAM CZY WYSTAPILA 3,4 ITD
writeln(licznik);
end;
if licznik <> 0 then
wynik[licznik]:=wynik[licznik]+1; // ZWIEKSZAM ILOSC WYTAPIEN
licznik:=0;
for k:=1 to ZAKRES do
A2[i]:=0;
end;
end;
begin
randomize;
clrscr;
wypelnij;
lotto1;
end.