Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 27.01.2005, 14:12 Titel: Hilfe beim Programm |
|
|
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 |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 27.01.2005, 14:31 Titel: |
|
|
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$  _________________
 |
|
Nach oben |
|
 |
Marky

Anmeldungsdatum: 02.09.2004 Beiträge: 1173
|
Verfasst am: 27.01.2005, 16:01 Titel: |
|
|
Bitte die Netikette beachten und einen ausführlichen Titel angeben! |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 27.01.2005, 16:08 Titel: |
|
|
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
Grüßle,
Mecki _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
 |
Marky

Anmeldungsdatum: 02.09.2004 Beiträge: 1173
|
Verfasst am: 27.01.2005, 16:16 Titel: |
|
|
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? Nee nee, das können die Autoren schon selbst. |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 27.01.2005, 23:35 Titel: |
|
|
@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 |
|
 |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 31.01.2005, 01:29 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 31.01.2005, 11:20 Titel: |
|
|
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 |
|
 |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 31.01.2005, 14:35 Titel: |
|
|
Moin,
danke für die Antwort, das Problem ist aber, dass die Zahlen ja zufällig sind.
Gruß K.I.T.T. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 31.01.2005, 15:18 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 31.01.2005, 17:51 Titel: |
|
|
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.
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 |
|
 |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 01.02.2005, 01:39 Titel: |
|
|
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 .
Gruß K.I.T.T. |
|
Nach oben |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 01.02.2005, 02:14 Titel: |
|
|
Wieso ? Das Programm von SpionAtom zeigt doch verschiedene Aufgaben an
?! Und den Zähler hat SpionAtom doch auch schon eingebaut: richtig%
Und dementsprechend wäre dann falsch% = AnzahlAufgaben% - richtig%
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....
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  _________________
 |
|
Nach oben |
|
 |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 01.02.2005, 04:33 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 01.02.2005, 10:02 Titel: |
|
|
(Manche Leute brauchen einfach keinen Schlaf )
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 |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 01.02.2005, 11:38 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 01.02.2005, 11:59 Titel: |
|
|
@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 |
|
 |
K.I.T.T.
Anmeldungsdatum: 24.01.2005 Beiträge: 79
|
Verfasst am: 01.02.2005, 21:56 Titel: |
|
|
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 |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 01.02.2005, 22:00 Titel: |
|
|
Was zum ..
Sag das doch gleich dass du ein Windowsprogramm machst...
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 |
|
 |
|