Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:autoit:random:start

Übungsbeispiele mit Zufallszahlen

Die Funktion Random() erzeugt zufällige Zahlen. Probieren Sie es aus. Lassen rufen Sie die Funktion dreimal auf, und sehen Sie, dass Sie jedes Mal eine andere Zahl bekommen:

ConsoleWrite( Random() & @CRLF )
ConsoleWrite( Random() & @CRLF )
ConsoleWrite( Random() & @CRLF )
0.45685348380357
0.790560307679698
0.618155125761405

Den selben Programmcode mehrfach kopieren ist natürlich nicht elegant. Das geht viel besser in eine Schleife. Schreiben Sie eine Schleife, die bei jedem Durchlauf eine neue Zufallszahl erzeugt und am Bildschirm ausgibt.

For $i = 1 to 5
   $Zufallszahl = Random( )
   ConsoleWrite($Zufallszahl)
   ConsoleWrite(@CRLF)
   Next
0.779098090948537
0.128750903066248
0.347929552663118
0.310294395312667
0.570750034181401

Bisher haben wir die Funktion Random ohne Parameter aufgerufen. Es sind aber drei Parameter möglich. Der erste Parameter ist die kleinste Zahl, die erzeugt wird, der zweite Parameter ist die größte Zahl, die erzeugt wird. Probieren Sie es aus: Es sollen 5 Zufallszahlen im Bereich zwischen 50 und 100 erzeugt werden.

For $i = 1 to 5
   $Zufallszahl = Random( 50, 100)
   ConsoleWrite($Zufallszahl)
   ConsoleWrite(@CRLF)
   Next
94.1470428020693
93.1947338744067
78.7232651840895
82.8008332988247
70.1321159722283

Neugierig, was denn nun der dritte Parameter kann? Wenn er 1 ist, werden ganzzahlige Zahlen erzeugt.

For $i = 1 to 5
   $Zufallszahl = Random( 50, 100, 1)
   ConsoleWrite($Zufallszahl)
   ConsoleWrite(@CRLF)
   Next
52
81
55
84
58

Übungsbeispiele

Aufgabe

Lassen Sie zufällige Prüfungsnoten im Bereich 1 bis 5 für 22 Schüler erzeugen erzeugen. (Ja, diese Anwendung ist moralisch verwerflich … .)

Aufgabe

Lassen Sie 200 ganzzahlige Zufallszahlen im Bereich 0 bis 1 erzeugen, und lassen Sie sie alle nebeneinander am Bildschirm ausgeben.

10001100110110101110101010000001001011011001110000001000111101001100111001111101011100101111101010100010000000100000011000110001010111111100011011000000000011100101000010100000001010110100001010100110

Würfeln

Mit einem Würfel können Sie ganzahlige Zahlen im Bereich von 1 bis 6 erwürfel. Passen Sie das Programm entsprechend an.

1
6
1
4
4

Dieses Programm erzeugt nun immer genau 5 Zahlen. Manchmal sind 6er dabei, manchmal nicht.

Die Aufgabe lautet nun, genau so lange zu würfeln, bis ein 6er gewürfelt wurde.

Dazu eignet sich die For-Schleife nun nicht mehr. Deshalb lernen wir einen neuen Schleifentyp kennen: Do .. Until . Die Anweisungen zwischen Do und Until werden so lange ausgeführt, so lange der Ausdruck nach Until den Wert false ergibt. Wenn der Ausdruck nach Until den Wert true ergibt, wird die Schleife verlassen.
Die Aufgabe könnte man zum besserne Merken in etwa so in (unkorrektes) Deutsch übersetzen:
"Tu würfeln bis gewürfelt ist 6".

Do
   $gewuerfelt= Random (1, 6, 1)  
   ConsoleWrite( $gewuerfelt & @CRLF )
 
   Until $gewuerfelt = 6

Sie werden nun feststellen, dass die Anzahl der Schleifendurchläufe jedesmal unterschliedlich ist. Manchmal würfeln Sie sehr bald einen 6er, manchmal braucht es mehr Würfe. Das Programm beendet jedenfalls nicht nach einer bestimmten Anzahl von Schleifendurchläufen wir die ''For'-Schleife, sondern dann, wenn eine bestimmte Bedingung eingetreten ist.


Weiterführende Informationen:

programmieren/autoit/random/start.txt · Zuletzt geändert: 2015-09-28 19:27 von Robert Wiedermann

Seiten-Werkzeuge

Robert Wiedermann, Institut für Statistik (STAT), Universität für Bodenkultur Wien