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:

Hilfe beim Programm
Gehe zu Seite 1, 2  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
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 27.01.2005, 14:12    Titel: Hilfe beim Programm Antworten mit Zitat

Moin,
ich brauch mal wieder Hilfe...
Also, ich möchte gerne ein Rechenübungsprogramm erstellen. Also zu Anfang soll man wählen können, was man haben will, also Addition, Subtr., Multi., Div. und Gemsicht. Man gibt einfach die entsprechende Zahl ein. Nur mein Problem ist die Eingabe: WEnn man die Zahl tippt, soll sofort das entsprechende auf dem Bildschirm aufgerufen wetrden. Ich habe Print genommen, geht aber nicht, weil er sonst das Programm sofort beendet. Also hab ich INput genommen, aber ich will nicht, dass man die Eingabe sieht und nicht Enter drücken muss. Und da brauch ich jetzt Hilfe. Danke im Voraus.

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 27.01.2005, 14:31    Titel: Antworten mit Zitat

Code:

PRINT "Menü"
PRINT
PRINT "Wahle die Rechenoperation:"
PRINT "[1] Addieren"
PRINT "[2] Subtrahieren"
PRINT "[3] Multiplizieren"
PRINT "[4] Dividieren"
PRINT
DO
 k$ = INKEY$
 SELECT CASE k$
 CASE "1": Addieren
 CASE "2": Subtrahieren
 CASE "3": Multiplizieren
 CASE "4": Dividieren
 CASE ELSE: BEEP 'Falsche Eingabe
 END SELECT
LOOP


Einfach mit INKEY$ zwinkern
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Marky



Anmeldungsdatum: 02.09.2004
Beiträge: 1173

BeitragVerfasst am: 27.01.2005, 16:01    Titel: Antworten mit Zitat

Bitte die Netikette beachten und einen ausführlichen Titel angeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 27.01.2005, 16:08    Titel: Antworten mit Zitat

Huhu
Marky hat Folgendes geschrieben:
Bitte die Netikette beachten und einen ausführlichen Titel angeben!
Ähm, kurze Frage am Rande - könnten nicht einfach die Moderatoren bei solchen eindeutig unpassenden Thread-Titeln einen diese durch einen passenderen Titel ersetzen? (Zusätzlich zum Hinweis, wie er oben schon von Marky gepostet wurde? Wär mal ne Idee lächeln

Grüßle,
Mecki
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
Marky



Anmeldungsdatum: 02.09.2004
Beiträge: 1173

BeitragVerfasst am: 27.01.2005, 16:16    Titel: Antworten mit Zitat

Mecki hat Folgendes geschrieben:
Ähm, kurze Frage am Rande - könnten nicht einfach die Moderatoren bei solchen eindeutig unpassenden Thread-Titeln einen diese durch einen passenderen Titel ersetzen?

Und am besten noch den Beitrag auf Rechtschreibfehler überprüfen usw., mhh? happy Nee nee, das können die Autoren schon selbst.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 27.01.2005, 16:39    Titel: Antworten mit Zitat

Hm, naja, also ich fände, das würde der Übersichtlichkeit dienen, aber naja. zwinkern
_________________
» Yodl.de: So sucht man gestern. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 27.01.2005, 23:35    Titel: Antworten mit Zitat

@K.I.T.T.:
Jetzt müssen wir noch etwas eindeutiger werden: Was heisst "Rechenübungsprogramm"? Beabsichtigst Du ein Kopfrechen-Übungsprogramm oder soll das Ganze ein einfacher Taschenrechner mit Formel-Interpretation aus einer Zeichenketteneingabe ergeben?

Übrigens letzteres ist eine nicht ganz so einfache, jedoch sehr lehrreiche Programmieraufgabe, da Elemente aus dem Compilerbau zur Anwendung kommen! :-)
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 31.01.2005, 01:29    Titel: Antworten mit Zitat

Moin,
das soll ein Kopfrechenprogramm sein. Ich bin auch schon sau weit. Nur jetzt habe ich noch ein Problem: Ich will ja 10 Aufgaben stellen. Am Ende dieser 10 Aufgaben soll sie benötigte Zeit ausgegeben werden. Also ich weiß schon so viel, dass man dazu den TIMER braucht *gg*. Dann möchte ich noch, dass am Ende dieser 10 Aufgaben noch ausgegeben wird, wie viele richtig sind. Eventuelle braucht man dazu auch den TIMER, aber das weiß ich nicht. Dann hab ich noch ein, hoffentlich letztes Problem mit diesem Programm: /, *, -, + in zufälliger Reihenfolge. Ich weiß, wie man zufällige Zeichen mit dem Alphabet macht, weil die Buchstaben ja alle nacheinander kommen, aber bei den Rechenoperationen ist das anders: Erst kommt *, dann + und dann mal , und -, dann erst - und so, ist also nicht in der Reihenfolge. Wie geht das? Ich hoffe, ihr habt das alles verstanden *gg*.
Danke im Voraus.

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 31.01.2005, 11:20    Titel: Antworten mit Zitat

Hallo

Also bevor du die Aufgaben startest, merkst du dir die augenblickliche Zeit mit TIMER, TIMER gibt aber nicht normal die Uhrzeit an, sondern die vergangenen Sekunden (und Millisekunden) seit Mitternacht (00.00Uhr)

Also:

startzeit# = TIMER
richtigeAntworten% = 0

REM Rechnen
REM Rechnen
REM Rechnen

gebrauchtezeit# = TIMER - startzeit#
PRINT "Deine Zeit betrug "; gebrauchtezeit#; " Sekunden!"

Für die Anzahl richtiger Antworten:
Erstelle zu Beginn die Variable richtigeAntworten%.
Immer wenn eine Aufgabe gerechnet wurde, prüfst du einfach, ob das Ergebnis richtig war, wenn ja kannst du richtigeAntworten% um 1 erhöhen.

Z.B:
INPUT "5 + 8"; ergebnis%
IF ergebnis% = 13 THEN richtigeAntworten% = richtigeAntowrten% + 1

INPUT "6 - 2"; ergebnis%
IF ergebnis% = 4 THEN richtigeAntworten% = richtigeAntowrten% + 1
.
.

PRINT "Du hast "; richtigeAntworten%; " richtig gelöst!"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 31.01.2005, 14:35    Titel: Antworten mit Zitat

Moin,
danke für die Antwort, das Problem ist aber, dass die Zahlen ja zufällig sind.

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 31.01.2005, 15:18    Titel: Antworten mit Zitat

Also, für Dein Problem braucht es zum einen einen Aufgabengenerator und zum anderen den interaktiven Abfrageteil. Der Aufgabengenerator soll zuerst eine Operation aus-"würfeln" und anschliessend noch die Zahlen ebenfalls aus-"würfeln", alles mit Hilfe der RND()-Funktion.

Überleg Dir noch die Aufgabenstruktur. Beispiel einer Aufgabenstruktur bei der Subtraktion:
- Zahlen 0-20 => keine negativen Zahlen
- nur ganze Zahlen
=> der Generator darf also keine Aufgabe wie "14 - 16" stellen.
Beispiel mögliche Aufgabenstruktur Divison:
- Zahlen 0-100
- nur ganze Zahlen
- Ergebnis soll immer ohne Rest aufgehen

Vielleicht willst Du noch mit verschiedenen Schwierigkeitsgraden arbeiten, also gibt es noch Parameter, die man dem Aufgabengenerator mitgeben muss.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 31.01.2005, 17:51    Titel: Antworten mit Zitat

Mit der Gefahr, dass ich dir das Programm komplett schreibe, hier noch ein Post mit einigen Ansätzen:

aufgabenart% = INT(RND * 4) + 1
SELECT aufgabenart%

CASE 1: 'Rechne Plus
summand1% = INT(RND * 50) + 1
summand2% = INT(RND * 50) + 1
PRINT "Löse folgende Aufgabe"
PRINT summand%; " + "; summand2% + " =";
INPUT "", ergebnis%
IF ergebnis% = summand1% + summand2% THEN richtig% = richtig%+1

CASE 2: 'Rechne Minus
'
'ab hier bist du gefragt


Aber ich muss zugeben, dass eines meiner ersten Programme auch ein Mathe-Übungsprogramm war. Ich kannte noch kein RND, ich wusste kaum, was Variablen waren. Immer wenn eine Aufgaben falsch war, wurde auf dem Bildschirm ein F an den Rand gesetzt. Am Ende der Aufgaben (, die übrigens immer dieselben waren,) musste man noch eingeben, wieviele Fs man am Bildschirmrand hat. verlegen

Damit will ich nur zeigen, dass jeder mal klein anfängt. Aber was ich bis jetzt mit QB hingekriegt habe, lässt sich schon ein bißchen mehr bewundern. Z.B. kultige Text-Adventures, Sprite-Erstellungs-Programm, Memory, Schiebekisten-Spiel, Space Invader, Tetris (im Textmodus) und noch einige mehr oder weniger nennenswerte Dinge.

Inzwischen bin ich bei BlitzBasic, obwohl ich mich eigentlich mehr der Objektorientierung hingeben sollte. Naja, vielleicht kommt BlitzMax für Windows irgendwann.

Ich schweife vom Thema ab....
Over and out
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 01.02.2005, 01:39    Titel: Antworten mit Zitat

Moin,
also ich bin schon soweit, das ich die 4 Grundrechenarten machen kann. Ich hab Probleme bei den gemsicheten Sachen. Wie mache ich, dass die 4 Rechenoperationen zufällig angezeigt werden? Mit den Zahlen ist das ja einfach. Und die gebrauchte Zeit ist auch kein Problem. Nur wenn ich die richtigen Antworten zählen will, das hab ich noch nicht so verstanden.
Danke mal wieder im Voraus zwinkern.

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 01.02.2005, 02:14    Titel: Antworten mit Zitat

Wieso ? Das Programm von SpionAtom zeigt doch verschiedene Aufgaben an
durchgeknallt

?! Und den Zähler hat SpionAtom doch auch schon eingebaut: richtig%
Und dementsprechend wäre dann falsch% = AnzahlAufgaben% - richtig% durchgeknallt lachen

Hier nochmal zur Übersicht:

Code:

AnzahlAufgaben% = 10
FOR Aufgabe = 1 TO AnzahlAufgaben%

aufgabenart% = INT(RND * 4) + 1
SELECT aufgabenart%

CASE 1: 'Rechne Plus
summand1% = INT(RND * 50) + 1
summand2% = INT(RND * 50) + 1
PRINT "Aufgabe Nr."; Aufgabe
PRINT "Löse folgende Aufgabe"
PRINT summand%; " + "; summand2% + " =";
INPUT "", ergebnis%
IF ergebnis% = summand1% + summand2% THEN richtig% = richtig%+1

CASE 2: 'Rechne Minus
'
'ab hier bist du gefragt

CASE 3: 'Rechne Mal
'
'ab hier bist du gefragt

CASE 4: 'Rechne geteilt
'
'ab hier bist du gefragt

END SELECT
NEXT Aufgabe
PRINT
PRINT "Du hast"; richtig%; "von"; AnzahlAufgaben%;"Aufgaben richtig gelöst."
Prozent = INT(richtig% / AnzahlAufgaben% * 100)
PRINT "Das entspricht"; Prozent; "%"


Ich könnte dir jetzt n komplettes Matheprogramm schreiben, aber im Halbschlaf um 01:12 Uhr geht das nicht so flott.... Zunge rausstrecken

Du kannst z.B. dann für jede Aufgabe den Zeitwert (wie lange man gebraucht hat) in einen Array schreiben. Am Ende sieht man dann, wie lange man für die einzelnen Aufgaben gebraucht hat. Und z.B wenn man länger als 5 sec. braucht, wird einem gesagt welche Rechenoperation man noch üben muss.

Naja gute Nacht lachen
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 01.02.2005, 04:33    Titel: Antworten mit Zitat

Moin,
jo alles klar, danke. Und wie mache ich das, dass wenn sich das Programm beendet (z.B. durch ESC), dass man nicht aus schließen klicken muss, sondern dass es sich automatisch schließt.

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 01.02.2005, 10:02    Titel: Antworten mit Zitat

(Manche Leute brauchen einfach keinen Schlaf durchgeknallt )

Naja, wegklicken? Hast du eine Maus?

Egal. Da ich (und du wahrscheinlich auch) mit INPUT arbeite, ist ESC für Anfänger eher ungeeignet. Vereinbare zum Beispiel die "0" zum Beenden.

INPUT ergebnis%
if ergebnis% = 0 THEN END

Dabei musst du natürlich darauf achten, dass die Aufgaben niemals 0 ergeben, denn sonst löst man eine Aufgabe (z.B. 6-6) richtig mit 0 und man beendet das Programm.

Es geht natürlich auch eine Etage komplizierter:

INPUT ergebnis$
if ergebnis$ = "ende" THEN END
ergebnis% = val(ergebnis$)

Das bedeutet, wir haben erst einen String als Eingabe, prüfen dann, ob der Wert "ende " eingegeben wurde. Wenn ja, beende das Programm.
Wenn nicht geht es im Programm weiter und der String wird in eine Zahl umgewandelt.

Alles klar
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 01.02.2005, 11:38    Titel: Antworten mit Zitat

Zum Thema INPUT und <Esc> ein Artikel:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BildschirmMasken.html

Vielleicht dürfte der dort vorgestellte INPUT-Ersatz ein Thema darstellen. Unter anderem könnte ich mir vorstellen, die Rechenaufgaben wie ein Übungsblatt mit Lücken darzustellen, wo der Schüler mit <Tab> und <Umschalt> + <Tab> zwischen den Aufgaben hin- und hernavigieren kann und z.B. mit <F10> das "Blatt abgibt" - sprich Rechenübung abschliesst und vom Programm auswerten lässt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 01.02.2005, 11:59    Titel: Antworten mit Zitat

@dreael

Sicher ist das komfortabel und schön. Aber ein Anfänger wird mit Begriffen wie Masken, oder mit schönen Eingaberoutinen oft überfordert.
Soll er erstmal das machen, was er kann. Und in kleinen Schritten sich an größere Themen heranarbeiten. Hast du gehört, KITT?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
K.I.T.T.



Anmeldungsdatum: 24.01.2005
Beiträge: 79

BeitragVerfasst am: 01.02.2005, 21:56    Titel: Antworten mit Zitat

Moin,
ich kann das Programm ja mit ESC beenden. Das kann ich schon mit Inkey$ und so. Nur, ich will, dass sich das Fenster dann automatisch schließt, ohne, dass ich auf das Kreutzchen klicken muss. Ist das überhaupt möglich? Nochmal Danke im Voraus und danke für die Gedult.

Gruß K.I.T.T.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 01.02.2005, 22:00    Titel: Antworten mit Zitat

Was zum ..

Sag das doch gleich dass du ein Windowsprogramm machst... durchgeknallt mit den Augen rollen

Mit VB kenn ich mich nicht aus... frag doch mal Sebastian

In Delphi gibts bei nem Button die Option "Cancel = TRUE"
Da macht man dann einen Button zum beenden. Dieser Button wird dann auch ausgelöst wenn man ESC drückt.
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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  Weiter
Seite 1 von 2

 
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