Hallo,
nachdem ihm im Thread Lottozahlen generieren - Struktogramm viele Tipps bekommen habe,
hab ich mal versucht, die vielen Tipps in Delphi umzusetzen.
Folgendes ist mein Quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| procedure TForm1.Button1Click(Sender: TObject); var pott:array[1..49] of integer; gezogen:array[1..6] of integer; i,k:integer;
label JUMPHERE; begin
for i:=1 to 49 do pott[i]:=i;
for i:=1 to 6 do JUMPHERE: k:=Random(49)+1; gezogen[i]:=pott[k];
If gezogen[i]=333 Then goto JUMPHERE else pott[k]:=333;
For i:=1 to 6 do label1.Caption:=label1.caption+IntToStr(gezogen[i])+' '; |
Das startet zwar, funktioniert aber gar nicht so, wie ich wollte.
Mein eigentlicher Ablauf sollte so sein:
1.Generiere einen Pott aller Zahlen von 1 bis 49.
2.Ziehe dir eine Zufällige Zahl und weise sie einer der gezogenen Zahlen zu.
3. Prüfe, ob die gezogene Zahl 333 ist.
4. Wenn ja: Springe wieder zu 2. und generiere eine neue Zahl.
4b. Wenn nein: Behalte die gezogene Zahl und weise der Zahl im Pott 333 zu.
5. Schreibe alle gezogenen Zahlen.
333 habe ich einfach als Merkmal für bereits gezogene Zahlen genommen, ich hätte auch 555 oder sowas nehmen können.
Das Problem: Beim Klick auf den Button generiert er mir total merkwürdige Zahlen, z.B.:
1242836 0 1 2011200533 1242376 380
Diese Zahlen sind immer ziemlich ähnlich und haben gleich viele Stellen.
Warum? Ich habe doch nur einen Pott von 1 bis 49. Woher kommen diese Zahlen?