 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Killos

Anmeldungsdatum: 12.09.2004 Beiträge: 31
|
Verfasst am: 05.06.2005, 12:36 Titel: Latein GFS - Vokabletrainer |
|
|
Tagschen erstmal, also ich bruach für ein Referat einen Vokabeltrainer und hab en Problemchen:
also ich hab hier diesen Code:
Code: | richtig = 0
falsch = 0
COLOR 9, 1
CLS
DIM endung(5) AS STRING
DIM Kasus(5) AS STRING
LOCATE 13, 16
PRINT "Richtig:", richtig
LOCATE 14, 16
PRINT "Falsch:", falsch
OPEN "t3i2.bas" FOR INPUT AS #1
i% = 0
DO
LINE INPUT #1, temp$
Kasus(i%) = LEFT$(temp$, INSTR(temp$, "*") - 1)
endung(i%) = RIGHT$(temp$, LEN(temp$) - INSTR(temp$, "*"))
i% = i% + 1
LOOP UNTIL EOF(1)
CLOSE #1
i% = 0
DO
LOCATE 2, 13
PRINT "Deklinationstrainer programmiert von Tobias D."
LOCATE , 11
PRINT "fuer die Schueler des Schillergymnasium Offenburg."
LOCATE 10, 15
PRINT "Welche Endung hat der "; Kasus(i%); "?";
INPUT "", Eingabe$
IF UCASE$(Eingabe$) = UCASE$(endung(i%)) THEN
richtig = richtig + 1
CLS
LOCATE 13, 16
PRINT "Richtig:", richtig
LOCATE 14, 16
PRINT "Falsch:", falsch
LOCATE 16, 16
PRINT "Richtige Antwort!"
ELSE
falsch = falsch + 1
LOCATE 13, 16
PRINT "Richtig:", richtig
LOCATE 14, 16
PRINT "Falsch:", falsch
LOCATE 16, 12
PRINT "Die Endung >"; endung(i%); "< waere richtig gewesen."
END IF
i% = i% + 1
LOOP UNTIL i% = 35
END
|
So jetzt möcht ich dass es eine beliebige Vokabel aussucht und abfragen lässt bis alle 1 mal dran waren und dass es die falschen auch nochmal abfragen lässt. |
|
Nach oben |
|
 |
Jan

Anmeldungsdatum: 04.01.2005 Beiträge: 74
|
Verfasst am: 06.06.2005, 18:15 Titel: |
|
|
Speicher erstmal alle Vokabeln in nem neuen Array ab. Dann befässt du dich mit dem Befehl
und
mit diesen Befehlen kannst du Zufallszahlen erstellen. Nun guckst du einfach ob die Zufallszahl schon einmal dran war (du hast natürlich auch die Zahlen in nem Array gespeichert) und dann kannst du vergleichen.
Wenn du sich nicht wiederholende Zufallszahlen hast, dann kannst du diese als Index des Vokabelfeldes nutzen. |
|
Nach oben |
|
 |
Killos

Anmeldungsdatum: 12.09.2004 Beiträge: 31
|
Verfasst am: 06.06.2005, 19:12 Titel: |
|
|
Könnt dass mal jemand als Code schreiben?
Weil ich keine Ahnung hab wie ich des in nen Arry speicher u.s.w...
Danke |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 06.06.2005, 21:10 Titel: |
|
|
Auf www.qbasic.de gibt's ein Programm, dass Zufallszahlen ohne
Doubletten erzeugt, einfach mal schauen
jb |
|
Nach oben |
|
 |
Killos

Anmeldungsdatum: 12.09.2004 Beiträge: 31
|
Verfasst am: 07.06.2005, 15:28 Titel: |
|
|
Das mit der Zufallszahl würd ich wahrscheinlich ja noch selbst hinkriegen, aber ich hab keine Ahnung wie des aus andren Dateien lesen geht u.s.w.... |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
Verfasst am: 07.06.2005, 16:15 Titel: |
|
|
Du brauchst zuerstmal eine Datei wo die ganzen Daten drinne stehen. Hier eine Beispiel-Datei:
namen.txt
Zitat: | "Knut",151,15
"Björn",170,18
"Heinrich",190,8
"Ulf",170,16
|
Du siehst, dass Namen in Apostrophen gespeichert werden und die Zahlen normal drin stehen. Das Trennungszeichen ist das Komma.
Wenn du die Daten lesen willst, würde ich im vornherein ein Array mit einem bestimmten Datentyp herstellen:
Code: | TYPE MyPersons
Name AS STRING * 30 ' ist ein Text mit max. 30 Zeichen
Groesse AS INTEGER ' eine Zahl (hier: Körpergröße in cm)
ALTER AS INTEGER ' das Alter
END TYPE
DIM Person(15) AS MyPersons ' Du willst maximal 15 Personen speichern..
|
' Um einen Namen in diesem Array zu speichern, schreibst du folgendes:
Code: | Person(1).Name = "Björn"
Person(1).Groesse = 151
Person(1).Alter = 15 |
das ganze kannst du auch mit PRINT wieder ausgeben:
Code: | PRINT Person(1).Name ' Ausgabe: Björn
PRINT Person(1).Groesse ' 151
PRINT Person(1).Alter ' 15 |
Nun möchtest du ja nicht jedes Index von Person selbst stetzen und liest den gesamten Inhalt der Datei, wo Name, Größe und Alter gespeichert hast, in dein Array:
Code: | z = 1 ' Unser Zähler
OPEN "namen.txt" FOR INPUT AS #1
DO ' zählt alle Datensätze durch
INPUT #1, Person(z).Name, Person(z).Groesse, Person(z). Alter
z = z + 1
LOOP UNTIL EOF(1)
CLOSE #1 |
Die Variable z gibt also die Anzahl der Personen an, die im Feld vorhanden waren. Die Ausgabe erfolgt also folgendermaßen:
Code: | FOR e = 1 TO z STEP 1
PRINT "Datensatz:"; STR$(e)
PRINT "Name: "; Person(z).Name
PRINT "Größe:"; Person(z).Groesse;" cm"
PRINT "Alter:"; Person(z).Alter;" Jahre"
NEXT e |
Für dein Lateinprogramm kannst du dann den Datentyp einfach nach deinen Wünschen passen. _________________ +++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial |
|
Nach oben |
|
 |
|
|
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.
|
|