Schreibweise
| Form | Bedeutung |
|---|---|
PRINT RND(1) | Gibt eine Kommazahl zwischen 0 und 1 aus. |
INT(RND(1)*6)+1 | Ganze Zahl von 1 bis 6, also ein Würfel. |
INT(RND(1)*N)+1 | Ganze Zahl von 1 bis N. |
INT(RND(1)*(B-A+1))+A | Ganze Zahl von A bis B. |
Die Formel verstehen
RND allein ist selten direkt brauchbar, denn es liefert Werte wie 0.5772157. Die übliche Formel macht daraus ganze Zahlen in einem festen Bereich, und sie lohnt sich einmal durchzudenken:
RND(1) ergibt eine Zahl von 0 bis knapp unter 1. Mal 6 genommen wird daraus 0 bis knapp unter 6. INT() schneidet die Nachkommastellen ab, übrig bleiben die ganzen Zahlen 0 bis 5. Das +1 verschiebt sie auf 1 bis 6.
10 FOR I=1 TO 5
20 W=INT(RND(1)*6)+1
30 PRINT "WURF";I;":";W
40 NEXT
Fünf Würfe. Bei jedem Start kommen andere Zahlen heraus.
Eine Zahl aus einem beliebigen Bereich
Für einen Bereich von A bis B multipliziert man mit der Anzahl der möglichen Werte und addiert den Startwert. Bei 10 bis 20 sind das elf mögliche Werte, also INT(RND(1)*11)+10.
10 Z=INT(RND(1)*10)+1
20 INPUT "DEINE ZAHL";G
30 IF G<Z THEN PRINT "HOEHER"
40 IF G>Z THEN PRINT "TIEFER"
50 IF G<>Z THEN GOTO 20
60 PRINT "RICHTIG!"
Das Abschlussprojekt aus Block 3 des Kurses.
Zufällige Buchstaben
Dasselbe Prinzip funktioniert mit Text: Man legt die erlaubten Zeichen in eine Zeichenkette und greift mit MID$ eine zufällige Stelle heraus.
10 Z$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
20 K$=""
30 FOR I=1 TO 3
40 X=INT(RND(1)*26)+1
50 K$=K$+MID$(Z$,X,1)
60 NEXT
70 PRINT "KUERZEL: ";K$
Typische Stolperfallen
INT vergessen
Ohne INT bekommst du Kommazahlen wie 3.7182818. Für einen Würfel oder einen Index in einer Liste brauchst du ganze Zahlen.
Das +1 vergessen
INT(RND(1)*6) liefert 0 bis 5, nicht 1 bis 6. Ein klassischer Fehler, der beim Würfeln eine 0 ergibt.
Doppelte Zahlen
Zwei Ziehungen können dieselbe Zahl liefern. Wer eindeutige Zahlen braucht, etwa beim Lotto, muss sich die bereits gezogenen merken, üblicherweise in einem Feld.
Passt dazu
Im Kurs lernst du RND in Lektion 13: Abschlussprojekt: Zahlenraten. Die vollständige Referenz aller Befehle steht im Befehls-Lexikon.