Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MuRdOk
Anmeldungsdatum: 11.05.2006 Beiträge: 1
|
Verfasst am: 11.05.2006, 15:00 Titel: Benötige Hilfe!! |
|
|
Hallo liebe Leute
Ich habe hier auf dieser Seite dieses super tolle Tutorial zur Commodore Basic Programmierung gefunden.
Doch leider habe ich ein kleines Problem.
Könnte mir jemand von euch die RANDOM-Funktion erklären??
(Mein eigentliches Problem ist das Erstellen von zufälligen Zahlen in einem bestimmten Bereich)
Am liebsten wäre mir dafür die Syntax.
Wenn es möglich ist bitte in C16-Basic, denn wie die Funktion mit QBasic funktioniert weiß ich mittlerweile.
Ich danke euch schon mal im Voraus.
MFG MuRdOk
Ich hab natürlich schon im Monster FAQ nachgeschaut, aber leider nichts gefunden. |
|
Nach oben |
|
 |
otti

Anmeldungsdatum: 28.02.2005 Beiträge: 112 Wohnort: Wildberg
|
Verfasst am: 11.05.2006, 15:28 Titel: |
|
|
bitte aussagekräftigere titel verwenden!!
die random funktion kenne ich nicht aber dass hier:
Code: |
groesstezahl%=100
randomize timer
zufallszahl%=int(rnd*groesstezahl%)
|
randomize timer initialisiert den zufallsgenerator und RND is eine zufallszahl von 0-1
grüße otti
PS:ich glaub da steht schon was in der QBMONFAQ _________________ Gute Musik
 |
|
Nach oben |
|
 |
Gremlin

Anmeldungsdatum: 12.12.2004 Beiträge: 142 Wohnort: Heinsberg
|
Verfasst am: 11.05.2006, 15:56 Titel: |
|
|
Ich würd's noch um Eines ergänzen:
Code: |
RANDOMIZE TIMER
' unbedingt nötig, sonst werden nur einmal Zufallszahlen generiert, die dann immer wieder auftauchen.
' Zum Beispiel wäre dann die 1. Zahl IMMER 1 und die zweite Zahl IMMER 32.
Zufall% = INT(RND * GroessteZahl%) + KleinsteZahl% |
_________________ Tja, hier konnte ihre Werbung stehen.
Pech gehabt.  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 11.05.2006, 16:50 Titel: |
|
|
@Gremlin & otti: Das ist doch die QBASIC-Syntax...
@Gremlin: Muss aber eher
Code: |
ZufallsZahl = INT(RND * (1 + Max - Min) + Min)
|
heißen...
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Gremlin

Anmeldungsdatum: 12.12.2004 Beiträge: 142 Wohnort: Heinsberg
|
Verfasst am: 11.05.2006, 17:44 Titel: |
|
|
Hm, ist die Commodore denn da so anders?
Ich teste mal auf meinem C64 rum, der C16 dürfte aber ähnlich sein?
Edit:
Habe hier was kopiert (1. Google-Ergebnis bei "RND C16" )...
Zitat: | Zufallszahlen
Diese werden mit der Funktion RND() generiert. Es ist immer eine Zahl größer gleich null und kleiner 1. RND() braucht auch ein Argument (einen Übergabewert, den man zwischen die Klammer schreibt.). Der ist allerdings in diesem Fall sehr technischer Natur und soll hier erstmal nicht weiter erklärt werden. Mit RND(1) fahren Sie immer richtig. Das folgende Progrämmchen generiert 10 Zufallszahlen zwischen 0 und 1 und dann 10 Ganzzahlen zwischen 1 und 6, simuliert also in seinem zweiten Teil einen Würfel.
Code: | 5 PRINT "REINE ZUFALLSZAHLEN"
10 LET I=0
20 PRINT I,RND(1)
30 LET I=I+1
40 IF I<10 GOTO 20
50 PRINT "WUERFELZAHLEN"
60 LET I=0
70 PRINT I,RND(1)*6+1
80 LET I=I+1
90 IF I<10 GOTO 20 |
Für das Testen von Programmen ist es unverzichtbar, dass die Reihenfolge der Zufallszahlen nachvollziehbar bleibt. Das heisst, wenn man das Programm zum zweiten Mal startet, kommt die gleiche Sequenz von Zahlen. Um das zu erreichen, ist es beim C16 notwendig, die RND-Funktion am Anfang einmal mit einem negativen Wert aufzurufen. Wenn Sie also die Zeile
7 LET A=RND(-1)
einschieben, dann kommt immer die gleiche Zahlenfolge.
|
_________________ Tja, hier konnte ihre Werbung stehen.
Pech gehabt.  |
|
Nach oben |
|
 |
|