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:

WICHTIG : Hilfe beim Rechenprogramm -> noch nich fertig.
Gehe zu Seite 1, 2, 3, 4  Weiter
 
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
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 21:01    Titel: WICHTIG : Hilfe beim Rechenprogramm -> noch nich fertig. Antworten mit Zitat

Hi,
ich kann QBasic noch nich so lange und auch nich so gut. mit den Augen rollen
Aber ich wollte mal fragen ob mir jemand sagen
kann wie ich ein Programm schreibe bei dem man am anfang seinen Benutzer angibt (Bunutzernamen sind : 1 2 3 4 5 6 7 8 9) und dann kommen zufällige
+ ,-, *, und : Aufgaben (nicht mit normalen Zahlen sondern
mit Dezimahlzahlen) bei denen man dann das Ergebnis eingibt.
Wenn es falsch is dann bekommt man 0 Punkte und wenn es richtig is
dann 10Punkte. Am schluss wird das dann in einer !!!Persönlichen!!!
Bestenliste gespeichert Platz 1-10. Ach ja mit dem Kopf durch die Mauer wollen und dass alles auf Zeit (100 Sekunden).

Danke!
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln


Zuletzt bearbeitet von Dorftrottel am 01.05.2005, 18:32, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 21:11    Titel: Inputbefehl Antworten mit Zitat

Also am besten geht das mit den Benutzernamen mit dem Inputbefehl!
Beispiel!

Dim bla as string 'definiert die Variable "bla" als Zeichenkettenvariable!
Input bla 'fordert den Benutzer auf etwas über die Tastatur einzugeben
und speichert es in der Variable bla
Print bla 'das sollte dann das ausgeben, was bei input eingegeben wurde

so! mit den random-aufgaben lass ich mir noch was einfallen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 21:14    Titel: Antworten mit Zitat

Thanx Zunge rausstrecken
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:09    Titel: also Antworten mit Zitat

also
ich hab jetzt die aufgaben so weit dass zufallsaufgaben kommen.

Code:
RANDOMIZE TIMER
z = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
DO: Taste$ = INKEY$: LOOP WHILE Taste$ = ""
'warten auf Tastenbetaetigung
IF Taste$ = CHR$(27) THEN END 'Beenden mit Esc-Taste

RANDOMIZE TIMER
y = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
PRINT y;
PRINT " * ";
PRINT z;
PRINT "="
LINE INPUT ergebnis$


jetzt müsste nurnoch eine zufalls rechenart kommen und das mit
der highscore, username und punkte kruscht.
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:09    Titel: also Antworten mit Zitat

also
ich hab jetzt die aufgaben so weit dass zufallsaufgaben kommen.

Code:
RANDOMIZE TIMER
z = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
DO: Taste$ = INKEY$: LOOP WHILE Taste$ = ""
'warten auf Tastenbetaetigung
IF Taste$ = CHR$(27) THEN END 'Beenden mit Esc-Taste

RANDOMIZE TIMER
y = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
PRINT y;
PRINT " * ";
PRINT z;
PRINT "="
LINE INPUT ergebnis$


jetzt müsste nurnoch eine zufalls rechenart kommen und das mit
der highscore, username und punkte kruscht.
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jan



Anmeldungsdatum: 04.01.2005
Beiträge: 74

BeitragVerfasst am: 23.04.2005, 22:13    Titel: Antworten mit Zitat

deine Zahlen liegen aber glaube ich nicht zwischen 0.9 und 6.1
sondern zwischen 0.9 und 5.3

Mit der Zuffälligen Rechenart kannste das ja ähnlich machen. dann rundest du auf eine ganze Zahl auf und sagst einfach:
Code:

select case zzahl
         case 1
                 rechenart$="+"
         case 2
                  rechenart$ ="-"
         ....
end select

und halt immer so weiter
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 22:14    Titel: Antworten mit Zitat

das mit dem zufälligen rechenzeichen könntest du z.B. so machen, dass du eine zufällige Zahl zwischen 1 und 4 (nur ganzzahlig) herstellst und mit einer select case das rechenzeichen auswertest
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:16    Titel: Antworten mit Zitat

missbilligen
wie soll ich das einbauen ???
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:18    Titel: Antworten mit Zitat

Aber das Programm soll doch mit Dezimahlzahlen laufen.
(ich: Blutiger Anfänger!)
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 23.04.2005, 22:23    Titel: Antworten mit Zitat

Dorftrottel hat Folgendes geschrieben:
Aber das Programm soll doch mit Dezimahlzahlen laufen.
(ich: Blutiger Anfänger!)


Hi "DorfTrottel" zwinkern
kein Wunder das dein Programm keine Dezimal Zahlen auspuckt.
Du hast INT benutzt. INT verhindert das Dezimal Zahlen "gewürfelt" werden lächeln

PS: Es gibt oben rechts nen Edit Button zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 22:29    Titel: Antworten mit Zitat

hm komisch ich wollte grad was ausprobieren, aber rnd spuckt bei mir immer nur 0,75-irgendwas aus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:30    Titel: Antworten mit Zitat

Ich weiß
Trotztdem Danke.
Ach Dezimahlzahlen gibt es ja schon nur den Code den mir Jan gegeben hat...ich hab keinen Plan wie ich das einbauen soll??
dann soll ich noch irgendwas Runden.
??????????????????????????????????????
missbilligen
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
K-Duke



Anmeldungsdatum: 23.04.2005
Beiträge: 8

BeitragVerfasst am: 23.04.2005, 22:36    Titel: Antworten mit Zitat

jepp das muss gerundet werden!
und in den code einbauen könnte so aussehen:

Code:

a = random zahl zwischen 1 und 4
PRINT y;
select case a
         case is = 1
                 Print " + "
         case is = 2
                 Printe " - "
         ....
end select
PRINT z;
PRINT "="
LINE INPUT ergebnis$
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 23.04.2005, 22:41    Titel: Antworten mit Zitat

Schone mal deine "?"-Taste zwinkern
Lese dir doch ein Tutorial durch damit du die Grundbegriffe kennen lernst zwinkern - dann verstehst du den Code auch und schreibst nich irgendwas ab das du sowieso nicht verstehst zwinkern. Gute Tutorials gibts auf der Hauptseite.

Naja aber das Highscore Menü kann ich dir einbauen:
Zuerst musst du die Anzahl der richtigen Antwort ermitteln:

Code:

score = 0
IF usereingabe = ergebnis THEN score = score +1


Die Variable "score" enthält die Richtigen Antworten!
Damit du auch weist welcher User welchen Score erzielt hat musst du den Usernamen auch in einer Variable speichern

Code:

INPUT "Username ? ", user$


Dann speicherst du diese Beiden Daten in einer .txt Datei:

Code:

OPEN "C:\highscore.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$ " Richtige Antworten ", score
CLOSE #1

_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:42    Titel: Antworten mit Zitat

Bei mir kommt dann immer "0 * 0" ?
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 23.04.2005, 22:45    Titel: Antworten mit Zitat

Von welchem Code redest du gerade neutral ?
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 22:45    Titel: Antworten mit Zitat

Uff
Also die Grunbegriffe kann ich schon nur ich war grade n' bissle
verwirrt.

RESET Ok

Jetzt bin ich wieder aufnahme fähig.

Von dem von K-Duke
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 23.04.2005, 23:06    Titel: Antworten mit Zitat

Ich hab n bissle exerimentiert:
Code:

CLS
INPUT "Btte Benutzername angeben ", user$
CLS
RANDOMIZE TIMER
z = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
DO: Taste$ = INKEY$: LOOP WHILE Taste$ = ""
'warten auf Tastenbetaetigung
IF Taste$ = CHR$(27) THEN END 'Beenden mit Esc-Taste

RANDOMIZE TIMER
y = (INT(RND * 53) + 9) / 10 'Zufallszahl zwischen 0,9 und 6,1
PRINT y;
PRINT " * ";
PRINT z;
PRINT "="
LINE INPUT ergebnis$
a = um hier RANDOM zu bekommen was muss ich schreiben?
PRINT y;
SELECT CASE a
         CASE IS = 1
                 PRINT " + "
         CASE IS = 2
                 PRINT " - "
         CASE IS = 3
                 PRINT " * "
         CASE IS = 4
                 PRINT " / "
END SELECT
PRINT z;
PRINT "="
LINE INPUT usereingabe$
(Hier muss der Code rein das der PC die Aufgabe Rechnet un als
ergebnis$ speichert)

PRINT "Deine Punktzahl lautet:"
PRINT score
score = 0
IF usereingabe$ = ergebnis$ THEN score = score + 10
OPEN "C:\highscore.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1



und das alles noch auf zeit (100 Sekunden)
_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 23.04.2005, 23:31    Titel: Antworten mit Zitat

Zitat:

a = um hier RANDOM zu bekommen was muss ich schreiben?
äh das verstehe ich nicht ganz


Zitat:

LINE INPUT usereingabe$
(Hier muss der Code rein das der PC die Aufgabe Rechnet un als
ergebnis$ speichert)
Einfach: Rechenaufgabe = ergebnis also z.B. 0,7 + 0,7 = ergebnis


Aber: Ich muss dich loben, haste doch sehr schön zusammengesetzt und zum Teil auch selbst geschrieben zwinkern ! Und deshalb kannste das mit der Zeit auch alleine zwinkern ! Schau dir mal in der MonsterFAQ (www.qbasic.de) das Thema "Zeiten, Datum " (oder so ähnlich) an zwinkern
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dorftrottel
gesperrt


Anmeldungsdatum: 23.04.2005
Beiträge: 97
Wohnort: Welt

BeitragVerfasst am: 24.04.2005, 06:25    Titel: Antworten mit Zitat

mega danke leute.
doch einige kleine fragen hab ich noch...
1. bei mir wechselt's CASE nich
2. da wo der user abgespeichert wird
Code:

IF user$ = a THEN OPEN "a.txt" FOR OUTPUT AS #1
[color=red]PRINT #1, "User: ", user$; " Punkte ", score[/color]
CLOSE #1

sagts mir immer : UNZULÄSSIGER DATEINAME (siehe rote zeile)

Help!

Und nochmal alles:
Code:

CLS
INPUT "Btte Benutzername angeben ", user$
CLS
PRINT "Bitte ENTER dr?cken"
DIM a AS STRING
DIM b AS STRING
DIM c AS STRING
DIM d AS STRING
DIM e AS STRING
DIM f AS STRING
DIM g AS STRING
DIM h AS STRING
DIM i AS STRING


RANDOMIZE TIMER
z = (INT(RND * 53) + 9) / 10
DO: Taste$ = INKEY$: LOOP WHILE Taste$ = ""
IF Taste$ = CHR$(27) THEN END

RANDOMIZE TIMER
y = (INT(RND * 53) + 9) / 10
PRINT y;
k = 1
SELECT CASE k
         CASE IS = 1
                 PRINT " + "
         CASE IS = 2
                 PRINT " - "
         CASE IS = 3
                 PRINT " * "
         CASE IS = 4
                 PRINT " / "
END SELECT
PRINT z;
PRINT "="
LINE INPUT usereingabe$
delay = 2
finish = TIMER + delay
DO
LOOP UNTIL TIMER >= delay
delay = whatever
t! = INT(TIMER)
DO
IF t! <> INT(TIMER) THEN
t! = INT(TIMER)
count = count + 1
PRINT count
END IF
LOOP UNTIL count = delay
PRINT "Deine Punktzahl lautet:"
PRINT score
score = 0


 IF usereingabe$ = ergebnis$ THEN score = score + 10

IF user$ = a THEN OPEN "a.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = b THEN OPEN "b.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = c THEN OPEN "c.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = d THEN OPEN "d.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = e THEN OPEN "e.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = f THEN OPEN "f.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = g THEN OPEN "g.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = h THEN OPEN "h.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1

IF user$ = i THEN OPEN "i.txt" FOR OUTPUT AS #1
PRINT #1, "User: ", user$; " Punkte ", score
CLOSE #1



_________________
Euer Dorftrottel!
Unser Name ist unser Auftrag! lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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
Gehe zu Seite 1, 2, 3, 4  Weiter
Seite 1 von 4

 
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