[Delphi] Losowanie bez powtarzania liczb

0

Czy móglby mi ktoś tak poprawić kod żeby przy losowaniu żadna liczba się nie powtarzała ??
Oto kod:

a:=random(49);
if a>1 then
edit1.Text:=inttostr(a);
end else

a:=random(49)+1;
b:=random(49)+1;
c:=random(49)+1;
d:=random(49)+1;
e:=random(49)+1;
f:=random(49)+1;

edit1.Text:=inttostr(a);
edit2.Text:=inttostr(b);
edit3.Text:=inttostr(c);
edit4.Text:=inttostr(d);
edit5.Text:=inttostr(e);
edit6.Text:=inttostr(f);

Za pomoc z gory dzięki.

0

na poczatku wpisz randomize

0

Czy móglby mi ktoś tak poprawić kod żeby przy losowaniu żadna liczba się nie powtarzała ??
Oto kod:

a:=random(49);
if a>1 then
edit1.Text:=inttostr(a);
end else

a:=random(49)+1;
b:=random(49)+1;
c:=random(49)+1;
d:=random(49)+1;
e:=random(49)+1;
f:=random(49)+1;

edit1.Text:=inttostr(a);
edit2.Text:=inttostr(b);
edit3.Text:=inttostr(c);
edit4.Text:=inttostr(d);
edit5.Text:=inttostr(e);
edit6.Text:=inttostr(f);

Za pomoc z gory dzięki.

proszę... :-D :-D :-D

Z tego co rozumiem to w 6 edit'ach chcesz mieć RÓŻNE liczby naturalne
z przedziału 1 - 49 (obustronnie domkniętego), jeżeli tak to:

var
Nr : Integer;
StrNr : String;
Lista : TStringList;
Editek : TComponent;
begin
Randomize;
Lista := TStringList.Create;
while Lista.Count

0

Azgon przecież Dry już Ci mówił że masz dać "randomize"
begin
randomize;//zawsze dodawaj na początku !!!!!!!!!!!!!!
a:=random(49);
if a > 1 then
edit1.Text:=inttostr(a)
else
a:=random(49)+1;
b:=random(49)+1;
c:=random(49)+1;
d:=random(49)+1;
e:=random(49)+1;
f:=random(49)+1;
edit1.Text:=inttostr(a);
edit2.Text:=inttostr(b);
edit3.Text:=inttostr(c);
edit4.Text:=inttostr(d);
edit5.Text:=inttostr(e);
edit6.Text:=inttostr(f);

end;
Poza tym takie coś jak Ty dałeś nie może działać :
a:=random(49);
if a > 1 then
edit1.Text:=inttostr(a);
end else
Albo piszesz :
if ble ble ble.... then begin ble ble ble. ..
end
else
albo :
if ble .... then ..... else
Mam nadzieję że teraz działa :-)

0

Azgon przecież Dry już Ci mówił że masz dać "randomize"

wydaje mi się że samo Randomize nie załatwi problemu nie
powtarzania się liczb, tzn żeby wszystkie wyniki losowania były
różne od siebie, a chyba o to chodziło Agzonowi ?

0

Dzięki, wszytsko działa nie losuje tych samych liczb ... A dry powiedział procedurke która losowała liczby czasami powtarzające się. Ale teraz to od piecha już działa dobrze.

Dziękuje jeszcze raz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1