Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Mathematik

Lottozahlen-Generator

Lizenz:Erster Autor:Letzte Bearbeitung:
FBPSLAdministratorSebastian 04.09.2011

Das folgende Code-Beispiel stellt einen einfachen Lottozahlen-Generator dar. Der Code erzeugt 6 Zufallszahlen (genau genommen Pseudozufallszahlen) im Bereich von 1 bis 49 und sorgt dafür, dass keine Zahl doppelt gezogen werden kann. Dies geschieht über eine Art "Liste zum Abhaken". Diese "Liste" hat 49 Zeilen, für jede mögliche Lottozahl eine. Wurde eine Zahl gezogen, wird die entsprechende Listenzeile abgehakt (mit 1 belegt). Sollte die gleiche Zahl noch einmal gezogen werden, stellt das Programm fest, dass die Zahl bereits gezogen wurde und nicht mehr in der Urne liegt (die Listenzeile also bereits mit 1 markiert ist), und zieht erneut - so lange, bis eine noch nicht abgehakte Zahl gefunden wird. Als Merkliste wird ein Array mit 49 Elementen (zahlen(1 To 49)) verwendet.

Dim As Integer i, zahlen(1 To 49), wert

Randomize Timer

Print "Lotto-Ziehung"

For i = 1 To 6  '6 Zahlen ziehen
    Do
        wert = INT(RND*49)+1  'Was steht auf der Kugel? Eine Zahl von 1 bis 49.
        If (zahlen(wert) = 0) Then  'Diese Zahl wurde noch nicht als gezogen markiert.
            'Das heißt, die Zahl ist noch in der "Urne" und kann gewählt werden.
            zahlen(wert) = 1  'Zahl als gezogen markieren
            Exit Do  'Ziehung der i-ten Zahl beendet.
        End If
        'Falls die Zahl eben schon als gezogen markiert WAR (d.h. nicht = 0 war),
        'wird die DO...LOOP Schleife an dieser Stelle nicht verlassen, sondern die
        'Ziehung wird wiederholt.
    Loop
Next i

Print "Die 6 Richtigen sind:   ";

For i = 1 To 49
    If (zahlen(i) = 1) Then  'Diese Zahl wurde gezogen!
        Print "(" & i & ")  ";
    End If
Next i
Print

Sleep
End

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 03.09.2011 von AdministratorSebastian angelegt.
  • Die aktuellste Version wurde am 04.09.2011 von AdministratorSebastian gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen