Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

negatives Dividieren

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 22.05.2007, 16:17    Titel: negatives Dividieren Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.05.2007, 16:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 22.05.2007, 16:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.05.2007, 16:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Seb



Anmeldungsdatum: 29.11.2006
Beiträge: 120
Wohnort: Henfenfeld

BeitragVerfasst am: 22.05.2007, 16:33    Titel: Antworten mit Zitat

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


grinsengrinsengrinsen
_________________
MfG
Seb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.05.2007, 16:37    Titel: Antworten mit Zitat

Sag ich doch lächeln

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz