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.