Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Seb

Anmeldungsdatum: 29.11.2006 Beiträge: 120 Wohnort: Henfenfeld
|
Verfasst am: 22.05.2007, 16:17 Titel: negatives Dividieren |
|
|
Hallo!
Ich habe einen QB-Code, der nicht wirklich zufallszahlen macht.
Kann mir jemand helfen?
Code: | CLS
CLEAR
COLOR 10
PRINT "Aufgabe 1 von 3(Division)"
PRINT
PRINT
SLEEP 1
RANDOMIZE TIMER
ZAHL1% = INT(-RND / 999) + 1
ZAHL2% = INT(RND / 999) + 1
PRINT ZAHL1%; "/"; ZAHL2%; "="
INPUT ZAHLA1%
IF ZAHLA1% = ZAHL1% / ZAHL2% THEN PRINT "---richtig---"
IF ZAHLA1% > ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
IF ZAHLA1% < ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
SLEEP 2 |
_________________ MfG
Seb |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 22.05.2007, 16:19 Titel: |
|
|
Code: | ZAHL1% = INT(-RND / 999) + 1
ZAHL2% = INT(RND / 999) + 1 |
Meinst du INT(-RND * 999) + 1? Deine erzeugten Zahlen sind alle kleiner 1, ein INT macht sie zu 0. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Seb

Anmeldungsdatum: 29.11.2006 Beiträge: 120 Wohnort: Henfenfeld
|
Verfasst am: 22.05.2007, 16:21 Titel: |
|
|
Wie muss denn dann ZAHL1% = INT(-RND / 999) + 1
ZAHL2% = INT(RND / 999) + 1 sein?
Wie muss der Code auch bei Addieren, Subtrahieren, Multiplizieren und Dividieren sein? _________________ MfG
Seb |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 22.05.2007, 16:26 Titel: |
|
|
RND erzeugt eine Zahl von 0,000... und 0,999... (bin jetzt zu faul, die Genauigkeit herauszusuchen, aber die ist auch unwichtig). RND*999 ist dann eine Zahl von 0,000... und 998,999...
Mit dem INT wird da eine Zahl von 0 bis 998 daraus, und dann noch +1, damit du eine Zahl von 1 bis 999 erhältst.
Damit hast du deine Zufallszahl. Alle weiteren Rechenoperationen, die du u. U. noch vor hast, würde ich erst danach anwenden. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Seb

Anmeldungsdatum: 29.11.2006 Beiträge: 120 Wohnort: Henfenfeld
|
Verfasst am: 22.05.2007, 16:33 Titel: |
|
|
Upsi!
Hab wohl etwas beim Programmieren( aber irgentwie nur bei : ) einen Fehler gemacht!!!
Richtig ist ja:
Code: | CLS
CLEAR
COLOR 10
PRINT "Aufgabe 1 von 3(Division)"
PRINT
PRINT
SLEEP 1
RANDOMIZE TIMER
ZAHL1% = INT(-RND * 999) + 1
ZAHL2% = INT(RND * 999) + 1
PRINT ZAHL1%; "/"; ZAHL2%; "="
INPUT ZAHLA1%
IF ZAHLA1% = ZAHL1% / ZAHL2% THEN PRINT "---richtig---"
IF ZAHLA1% > ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
IF ZAHLA1% < ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
SLEEP 2 |
   _________________ MfG
Seb |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 22.05.2007, 16:37 Titel: |
|
|
Sag ich doch
Noch ein Vorschlag:
Code: | IF ZAHLA1% = ZAHL1% / ZAHL2% THEN PRINT "---richtig---"
IF ZAHLA1% > ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
IF ZAHLA1% < ZAHL1% / ZAHL2% THEN PRINT "---falsch---"
|
geht auch kürzer:
Code: | IF ZAHLA1% = ZAHL1% / ZAHL2% THEN PRINT "---richtig---" ELSE PRINT "---falsch---" |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|