Lazarus/Spielen mit dem Zufall

Aus ZUM-Unterrichten
< Lazarus
Version vom 17. Januar 2013, 18:50 Uhr von main>Peterdauscher (Die Seite wurde neu angelegt: „Bisher haben wir Zahlenwerte immer entweder fest im Programm vorgegeben (etwa a:=42), vom Benutzer während der Eingabe erfragt (etwa mit <tt>ReadFrom(...)</tt>) …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Bisher haben wir Zahlenwerte immer entweder fest im Programm vorgegeben (etwa a:=42), vom Benutzer während der Eingabe erfragt (etwa mit ReadFrom(...)) oder aber irgendwie aus bereits bekannten Werten ausgerechnet (z.B. a:=sqrt(c)). Für viele Anwendungen – vor allem für die, die ein bisschen Spaß machen – wäre es jedoch nett, zufällige Zahlen zu haben. Das gilt z.B. für Glücksspiele genauso wie für Geschicklichkeitsspiele.

Für solche Fragen ist der Befehl random nützlich. Ohne Klammer hinter dem Befehl (also etwa x:=random;) “würfelt” der Befehl eine (reelle) Zufallszahl im Bereich zwischen 0 und 1. Damit ist es mit ein bisschen Mathematik nicht schwierig, auch natürliche Zufallszahlen in beliebigen Zahlenbereichen zu basteln. Allerdings nimmt Lazarus einem einen Teil dieser Arbeit ab, wenn man eine Zahl in Klammern hinter den Befehl schreibt (also etwa k:=random(bereich);). Der Computer würfelt dann eine Zufallszahl zwischen 0 und bereich-1.


Startet man ein Programm, das auf Knopfdruck eine Zufallszahl ziehen soll mehrfach, so ist allerdings zunächst die Enttäuschung groß. Denn es ist immer die gleiche Zahl bzw. die gleichen Zahlen, die gezogen werden. Dem kann man abhelfen, wenn man gleich nach dem Programmstart den Befehl randomize; ausführen lässt. Der sorgt dafür, dass die Zufallszahlen tatsächlich bei jedem Programmlauf andere sind.