Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Doppelte Zahlen beim Lotto Generator

  Alt 31. Mär 2006, 18:07
Zitat:
for J:=1 to 6 do du prüfst auf Zahlen, die es noch nicht gibt (funktioniert zwar, ist aber nicht schön).
Und wozu 2 Schleifen?
Beziehst du dich auf meinen Post?

Die erste Schleife [for i:=1 to 6 do zahl[i]:= random(49)+1;] war nur dazu gedacht, zu zeigen, wie man den Block abkürzen kann und hat mit dem eigentlichen Ansatz nichts zu tun.

Um zu überprüfen, ob eine Zahl schon gezogen wurde, benutze ich das set, weil es schöner und wahrscheinlich schneller ist, einfach nur auf 'in Set' zu prüfen, als eine Schleife über alle schon gezogenen Zahlen zu machen, so wie du es in deinem Beispiel gemacht hast.

Delphi-Quellcode:
list: set of Byte;
i,j: integer;
zahl: array[1..6] of byte;
begin
list:=[];

for i:=1 to 6 do
begin
  repeat
  j:= random(49)+1;
  until (not (j in list));
zahl[i]:=j;
list:= list+[j];
end;
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat