![]() |
"Lerneffekt" beim Vokabeltrainer...
Hallo!
Wir programmieren in der Schule gerade einen Vokabeltrainer und dabei möchte ich gerne nicht einfach nur zufällige Vokabeln abfragen, sondern die, die öfter falsch beantwortet wurden, sollen öfter abgefragt werden. nun habe ich absolut keine idee, wie sich das am besten anstellen lässt. ich fände es gut, wenn es 2 kategorien von vokabeln gäbe. also die die der benutzer ohne probleme übersetzen kann und die bei denen es noch hapert. wenn der benutzer also eine vokabel aus der "leichten" kategorie nicht mehr weiß, soll diese in die zweite kategorie übergehen und wenn diese wiederum richtig beantwortet wird wieder in die erste übergehen. kann man das mit delphi realisieren? danke im voraus, sanny :) |
Re: "Lerneffekt" beim Vokabeltrainer...
sry, aber ich verstehe nicht ganz,
Suchst du nach einem Programm das das schon kann ? Dann nimmst du evtl ![]() oder willst das selbst machen ? |
Re: "Lerneffekt" beim Vokabeltrainer...
Die zentrale Frage ist die, wie du die Vokabeln speicherst. Wenn du z.B. records benutzt, könntest du zwei zusätzzliche Integer einbauen, in denen du festhalten kannst, wie oft die Vokabel falsch beantwortet wurde.
|
Re: "Lerneffekt" beim Vokabeltrainer...
Ich denke, er will wissen, wie er es anstellt, dass die der höheren Stufe auch eine höhere Wahrscheinlichkeit haben dranzukommen. ;)
|
Re: "Lerneffekt" beim Vokabeltrainer...
Zitat:
|
Re: "Lerneffekt" beim Vokabeltrainer...
Zitat:
|
Re: "Lerneffekt" beim Vokabeltrainer...
Nikolas meinte, du sollst eine Vokabel folgendermaßen definieren:
Delphi-Quellcode:
P.S.: Der User ;)
TVokabel = record
deutsch: String; englisch: String; Lektion: Byte; Kategorie: Byte; //evtl. auch anderst; mit Fehlern, etc. //... end; |
Re: "Lerneffekt" beim Vokabeltrainer...
oi oi oi...mit records hab ich mich noch gar nicht beschäftigt...hab aber auch keine lust jetzt mein ganzes programm über den haufen zu werfen :? ...ich poste mal hier den quelltext rein, vielleicht könnt ihr mir ja so besser helfen:
Delphi-Quellcode:
procedure TForm2.naufgabeClick(Sender: TObject);
var i,art:integer; begin listbox1.Items.LoadFromFile('vokabel.txt'); case radiogroup1.itemindex of 0: art:=1; 1: art:=2; else art:=random(2)+1; end; case art of 1:begin i:=random(listbox1.Items.Count); panel1.Caption:=listbox1.Items.names[i]; loesung:=listbox1.Items.ValueFromIndex[i]; end; 2:begin i:=random(listbox1.Items.Count); panel1.Caption:=listbox1.Items.ValueFromIndex[i]; loesung:=listbox1.Items.names[i]; end; end; eingabe.text:=''; bewertung.caption:=''; eingabe.setfocus; end; procedure TForm2.eingabeKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if eingabe.text=loesung then bewertung.caption:='richtig' else bewertung.caption:='falsch'; naufgabe.setfocus; end; end; procedure TForm2.FormCreate(Sender: TObject); begin randomize; end; end. |
Re: "Lerneffekt" beim Vokabeltrainer...
Delphi-Quellcode:
???
listbox1.Items.LoadFromFile('vokabel.txt');
Wo liegt die Datei? Im Stammverzeichnis der Exe? Dann mach das leiber so:
Delphi-Quellcode:
und außerdem wär's so noch besser :)
listbox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+'vokabel.txt');
Delphi-Quellcode:
if FileExtsts(ExtractFilePath(ParamStr(0))+'vokabel.txt') then
listbox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+'vokabel.txt') else //Vokabeldatei nicht vorhanden! |
Re: "Lerneffekt" beim Vokabeltrainer...
danke für die hilfe flash! :-D
bin aber auch noch blutige anfängerin wenns um delphi geht, lerne das erst seit 3 monaten! mein hauptproblem ist aber leider immer noch nicht gelöst :? |
Re: "Lerneffekt" beim Vokabeltrainer...
also, so kommst du nicht weiter. du musst deine datenhaltung umstellen, wie oben gesagt und damit funktioniert dein access in deiner string list nicht mehr. für die neue datenhaltung hast du folgende möglichkeiten:
wünsch dir noch viel glück und erfolg. |
Re: "Lerneffekt" beim Vokabeltrainer...
okay, dann stell ich das halt um...wenn ich nun für jede vokabel gespeichert hab, wie oft diese falsch beantwortet wurde, wie kann ich dann die wahrscheinlichkeit der abfrage erhöhen?^^
|
Re: "Lerneffekt" beim Vokabeltrainer...
Liste der Anhänge anzeigen (Anzahl: 3)
nach der lernpsychologie soll man die nicht gewussten punkte täglich wiederholen, die gewussten dann in jeweils einem grösserem zeitabstand, bis sie sitzen. daher benötigst du felder für
zu zwei: je nach den level (counter) addierst du die entsprechenden tage hinzu (zum datum der letzten abfrage). ist dieses errechnete datum <= syst-datum, dann kommen die vokabeln wieder dran. das heisst, du brauchst zwei zusätzliche felder bei deinen vokabeln (a) datum und (b) counter. counter ist normal ein integer, das datum sollte in einer definierten form gespeichert werden, damit es auch auf einem anderen rechner funktioniert. wünsch dir noch viel spass und hoffe, es hilft ein wenig. |
Re: "Lerneffekt" beim Vokabeltrainer...
Ich hätte ne andere Lösung:
Nehmen wir an, du hast 2 Kategorien. 1=oft richtig 2=oft falsch (oder so ähnlich) Dann (unter Berücksichtigung, wieviele Vokabeln in den Kategorien jeweils sind!) sagst du z.B. dass Kategorie 2 zweimal mehr als 1 abgefragt wird. Du machst also
Delphi-Quellcode:
und wenn du festgestellt hast, welche Kategorie du abfragst, ratest du noch die Vokabeln in der Kategorie.
x:=random(100);
if x<33 then //Kategorie 1 if x>=33 then //Kategorie 2 Aber Achtung: Nicht dass in Kategorie 2 nur eine Vokabel hockt und die 6 von 10 mal abgefragt wird O.o |
Re: "Lerneffekt" beim Vokabeltrainer...
Hallo,
du könntest eine Art von Problemliste erstellen, in der die Position der "Problemfälle" in deiner Vokabelliste bzw deiner ListBox steht.
Delphi-Quellcode:
...
private ProblemListe: TList; ProblemPos: ^Integer; public ... procedure TForm2.FormCreate(Sender: TObject); begin ProblemListe:= TList.Create; randomize; end; procedure TForm2.FormDestroy(Sender: TObject); var i: integer; begin for i := 0 to Pred(ProblemListe.Count) do begin ProblemPos := ProblemListe.Items[i]; Dispose(ProblemPos); end; ProblemListe.Free; end; procedure TForm2.eingabeKeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin if eingabe.text=loesung then bewertung.caption:='richtig' else begin bewertung.caption:='falsch'; New(ProblemPos); ProblemPos^ := 2;//Beispiel (Position in der ListBox) ProblemListe.Add(ProblemPos);//Problem Position hinzufügen end; naufgabe.setfocus; end; end; procedure TForm2.naufgabeClick(Sender: TObject); var i,art:integer; begin listbox1.Items.LoadFromFile('vokabel.txt'); if ProblemListe.Count> 0 then begin i:= Random(ProblemListe.Count); //panel1.Caption:=listbox1.Items.Strings[PInteger(ProblemListe.Items[i])^]; panel1.Caption:=listbox1.Items.names[PInteger(ProblemListe.Items[i])^]; loesung:=listbox1.Items.ValueFromIndex[PInteger(ProblemListe.Items[i])^]; end; ... end; |
Re: "Lerneffekt" beim Vokabeltrainer...
so bei mir hat sich jetzt ne ganze menge im quelltext verändert, aber bekomme ein paar fehlermeldungen :( helft ihr mir bitte sie auszumerzen? das was neu dazugekommen ist hab ich zur besseren übersicht als kommentar gekennzeichnet!
Bekomme bei der delete-funktion die Fehlermeldung "not enough actual parameters", und bei den beiden if-and-then-Anweisungen "incompatible types". keine ahnung woran es liegen kann!!
Delphi-Quellcode:
procedure TForm2.naufgabeClick(Sender: TObject);
var art:integer; begin listbox1.Items.LoadFromFile('vokabel.txt'); case radiogroup1.itemindex of 0: art:=1; 1: art:=2; 2: art:=random(2)+1; else showmessage('Bitte erst die Art der Vokabelabfrage bestimmen!'); end; //if listbox2.items.count>3 then //begin // x:=random(100); // if x<33 then i:=random(listbox1.Items.Count); // if x>=33 then i:=random(listbox2.items.count); //end //else i:=random(listbox1.Items.Count); case art of 1:begin panel1.Caption:=listbox1.Items.names[i]; loesung:=listbox1.Items.ValueFromIndex[i]; end; 2:begin panel1.Caption:=listbox1.Items.ValueFromIndex[i]; loesung:=listbox1.Items.names[i]; end; end; eingabe.text:=''; bewertung.caption:=''; eingabe.setfocus; end; procedure TForm2.eingabeKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin if eingabe.text=loesung then bewertung.caption:='richtig' else bewertung.caption:='falsch'; naufgabe.setfocus; if eingabe.text=loesung then bewertung.font.color:= clgreen else bewertung.font.Color:=clred; if eingabe.text=loesung then richtig:=richtig+1 else falsch:=falsch+1; gesamt:=gesamt+1; auswertung.caption:='Gesamt:'+inttostr(gesamt)+'richtig:'+inttostr(richtig)+'falsch:'+inttostr(falsch); end; //if eingabe.text<>loesung and pos(listbox1.Items[i], listbox2.Items)><-1 then //listbox2.items.add(listbox1.Items[i]); //if i=random(listbox2.items.count) and eingabe.text=loesung then //listbox2.items.Delete[i]; //end; procedure TForm2.FormCreate(Sender: TObject); begin randomize; end; end. |
Re: "Lerneffekt" beim Vokabeltrainer...
probiers mal so:
Delphi-Quellcode:
if (eingabe.text<>loesung) and (pos(listbox1.Items[i], listbox2.Items)>0)
then listbox2.items.add(listbox1.Items[i]); if (i=random(listbox2.items.count)) and (eingabe.text=loesung) then listbox2.items[i].Delete; |
Re: "Lerneffekt" beim Vokabeltrainer...
geht auch nicht...wieder inkompatible typen und das item[i].delete funzt so nicht.."record,object und class type required" :?
trotzdem danke für den versuch kalmi01 |
Re: "Lerneffekt" beim Vokabeltrainer...
Delphi-Quellcode:
sollte es nicht so heißen:
pos(listbox1.Items[i], listbox2.Items)><-1
Delphi-Quellcode:
Grüße
pos(listbox1.Items[i], listbox2.Items) <> -1
Klaus |
Re: "Lerneffekt" beim Vokabeltrainer...
stimmt klaus01...aber die fehlermeldungen bleiben :(
|
Re: "Lerneffekt" beim Vokabeltrainer...
Delphi-Quellcode:
sollte das nicht so sein?
and (pos(listbox1.Items[i], listbox2.Items)>0)
Delphi-Quellcode:
Grüße
and (pos(listbox1.Items[i], listbox2.Items.text)>0)
Klaus |
Re: "Lerneffekt" beim Vokabeltrainer...
Delphi-Quellcode:
Pos sucht doch nur Strings in Strings
pos(listbox1.Items[i], listbox2.Items)
und nicht ListBox-Items in Listboxen. Das Ergebnis von Pos ist positiv, aber nicht -1 |
Re: "Lerneffekt" beim Vokabeltrainer...
Zitat:
listbox.items.text gibt es nicht! und die pos funktion liefert -1 wenn der eintrag nicht vorhanden ist. und das ist es was ich bezwecken will. wenn der eintrag in der liste nicht vorhanden ist, soll dieser hinzugefügt werden. |
Re: "Lerneffekt" beim Vokabeltrainer...
Also diese Beispiel funktioneirt bei mir:
Delphi-Quellcode:
pos liefert 0 zurück wenn der String nicht in dem anderen String vorhanden ist.
procedure TForm1.Button1Click(Sender: TObject);
var i:Byte; begin i:=2; if pos(listbox1.Items[i],listbox2.Items.Text) > 0 then begin showMessage(listbox1.Items[i]); end; end; Bitte einmal die Delphi Hilfe konsultieren. Grüße Klaus |
Re: "Lerneffekt" beim Vokabeltrainer...
okay...das stimmt..hatte das mit irgendwas verwechselt...aber items.text gibts doch trotzdem nicht, oder? :?
Edit: du hast ja recht klaus01...mit items.text ist jetzt die eine fehlermeldung verschwunden :-D danke! :angel2: bleibt nur noch "not enough actual parameters" bei der delete funktion.. |
Re: "Lerneffekt" beim Vokabeltrainer...
okay, der rest hat sich auch geklärt! hatte die falschen klammern benutzt.
bei delete muss man runde klammern benutzen :wall: also
Delphi-Quellcode:
listbox1.items.delete(i);
|
Re: "Lerneffekt" beim Vokabeltrainer...
Jetzt wo schon alles läuft isses vielleicht zu spät für ne andere Idee, aber ich wollt kurz erzählen, wie ich das mal gelöst habe.
Ich habe eine Ampel mit rot gelb und grün neben die Vokabel gemalt, die gerade abgefragt wird. Am Anfang sind alle auf "gelb". Wenn die Vokabel sofort richig ist, wechselt die Ampel auf grün und die Vokabel wird nicht mehr abgefragt. Ist die Eingabe falsch, wechselt die Ampel auf rot. Kommt die Vokabel wieder zum Abfragen dran, muss man durch direktes richtig eingeben erstmal auf gelb und nochmaliges richtig eingeben auf grün kommen. Also wird zu jeder Vokabel "Fremdwort", deutsche Bedeutung, Status (1, 2 oder 3 für die Farbe der Ampel) gespeichert. So macht es sogar (fast) Spaß, die Vokabeln zu lernen ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz