<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Vokabelabfrage-Programm: Verbesserung der Abfrageidee]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich sitze aktuell für ein Jährchen hier in Japan um halt japanisch zu lernen. Nebenher versuche ich halt auch noch c++ zu lernen, langsam aber Schritt für Schritt.</p>
<p>Nunja, sobald nun mein Steckeradapter nächste Woche ankommt und ich mein labtop nutzen kann würde ich mir gerne kleines Vokabelabfrage-Programm schreiben, um jap. und c++ lernen schön miteinander zu verbinden, hehe. Soweit ich es mir bisher überlegt habe sollte ich es mit meinen bisherigen Kentnissen schaffen.</p>
<p>Das Konzept sieht dann ungefähr so aus:<br />
in 2 Vektoren werden die Vokabeln eingelesen, einmal jap-d, einmal d-jap. Die Vektoren nehmen als Typ ein struct namens voc der die Vokabel als string, die Bedeutungen in nem string-Vector sowie den Schwierigkeitsgrad in nem char speichert (E für easy, D für Difficult usw) Die beiden vektoren sind alphabetisch sortiert (brauche ich noch)</p>
<p>Nun würde ich es gerne so machen, dass man einen oder mehrere Schwierigkeitsgrade auswählen kann und dann nur die abgefragt werden. Außerdem kann während dem Abfragen der Schwierigkeitsgrad geändert werden.</p>
<p>Meine Idee:<br />
den entsprechenden vektor (je nachdem welche Richtung man abfragen will) durchlaufen und alle Indexe der Vokabeln, die diesen Schwierigkeitsgrad haben, in einem andern vector&lt;int&gt; int abgespeichert werden. Jetzt suche ich mir per srand(0)%vector.len einen der Indexe aus, frage die Vokabel ab usw und lösche anschließend den Index dieser vokabel aus dem vector&lt;int&gt; löschen.</p>
<p>Naja, mich würde jetzt interessieren ob man diese Idee als ganz passabel ansehen kann, ob sie schlecht ist, resp. ob und wie man das besser gestalten könnte.</p>
<p>Falls jemand einen Tipp hat würde ich mich sehr freuen.</p>
<p>Danke im vorraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164121/vokabelabfrage-programm-verbesserung-der-abfrageidee</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 19:04:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164121.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Nov 2006 13:00:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Sun, 05 Nov 2006 13:00:38 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>ich sitze aktuell für ein Jährchen hier in Japan um halt japanisch zu lernen. Nebenher versuche ich halt auch noch c++ zu lernen, langsam aber Schritt für Schritt.</p>
<p>Nunja, sobald nun mein Steckeradapter nächste Woche ankommt und ich mein labtop nutzen kann würde ich mir gerne kleines Vokabelabfrage-Programm schreiben, um jap. und c++ lernen schön miteinander zu verbinden, hehe. Soweit ich es mir bisher überlegt habe sollte ich es mit meinen bisherigen Kentnissen schaffen.</p>
<p>Das Konzept sieht dann ungefähr so aus:<br />
in 2 Vektoren werden die Vokabeln eingelesen, einmal jap-d, einmal d-jap. Die Vektoren nehmen als Typ ein struct namens voc der die Vokabel als string, die Bedeutungen in nem string-Vector sowie den Schwierigkeitsgrad in nem char speichert (E für easy, D für Difficult usw) Die beiden vektoren sind alphabetisch sortiert (brauche ich noch)</p>
<p>Nun würde ich es gerne so machen, dass man einen oder mehrere Schwierigkeitsgrade auswählen kann und dann nur die abgefragt werden. Außerdem kann während dem Abfragen der Schwierigkeitsgrad geändert werden.</p>
<p>Meine Idee:<br />
den entsprechenden vektor (je nachdem welche Richtung man abfragen will) durchlaufen und alle Indexe der Vokabeln, die diesen Schwierigkeitsgrad haben, in einem andern vector&lt;int&gt; int abgespeichert werden. Jetzt suche ich mir per srand(0)%vector.len einen der Indexe aus, frage die Vokabel ab usw und lösche anschließend den Index dieser vokabel aus dem vector&lt;int&gt; löschen.</p>
<p>Naja, mich würde jetzt interessieren ob man diese Idee als ganz passabel ansehen kann, ob sie schlecht ist, resp. ob und wie man das besser gestalten könnte.</p>
<p>Falls jemand einen Tipp hat würde ich mich sehr freuen.</p>
<p>Danke im vorraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168838</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Sun, 05 Nov 2006 13:00:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Mon, 06 Nov 2006 11:09:30 GMT]]></title><description><![CDATA[<p>Also das Umkopieren der Strings von einem Vektor in einen anderen finde ich nicht sehr elegant.<br />
Ich würde dir vorschlagen, lieber einen mehrdimensionalen Vektor zu definieren, dessen erste Dimension dann den Schwierigkeitsgrad angibt, z.B.</p>
<pre><code class="language-cpp">enum Grad { EASY, DIFFICULT, MAX_SGRAD };
enum Typ  { D_JAP, JAP_D, MAX_TYPES }

struct SVoc
{
  std::string first, second
};

typedef std::vector&lt;SVoc&gt; VVoc;

VVoc vocabels[MAX_SGRAD][MAX_TYPES];
</code></pre>
<p>Alternativ kannst du statt der Struktur auch std::pair benutzen.</p>
<p>Nun kannst du einfach mittels rand()%vec.size() eine Vokabel aus einem der Vektoren zufällig abbfragen (wobei vec dann vocabels[grad][typ] entspricht).</p>
<p>Viel Spaß noch beim japanisch lernen... Ich selber habe hier ein LokaTool implementiert, wo ich auch immer die schönen japanischen und chinesischen Schriftzeichen bewundere (ohne sie zu verstehen -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169503</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 06 Nov 2006 11:09:30 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Mon, 06 Nov 2006 12:07:39 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antwort.</p>
<p>Kleine Frage allerdings: wo kopiere ich denn Strings? Ich speichere doch eigentlich nur die Indexe in einem 2. vector ab, oder?</p>
<p>Um deine Antwort ganz zu verstehen muss ich mal nachschlagen was enum genau macht. Die idee mit dem 2-dim Vector hatte ich zwar auch schon, aber ich habe die dann fallen lassen, weil man (wie unten nicht klar ausgedrückt) auch mehrere Schwierigkeitsgrade abfragen lassen kann (insgesamt soll es &quot;gewusst&quot; &quot;easy&quot; &quot;normal&quot; &quot;difficult&quot; und &quot;nicht gewusst&quot; geben) In dem Fall muss ich dann noch ein 2. random einbauen, das einen der gewählten Schwierigkeitsgrade wählt.</p>
<p>Danke für die Hilfe aber schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169532</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Mon, 06 Nov 2006 13:32:43 GMT]]></title><description><![CDATA[<p>Sorry, stimmt, du willst ja nur die Indizes in den 2. Vektor schreiben.</p>
<p>Je nachdem, wie dynamisch dein Programm ist (löschen und anfügen von weiteren Vokabeln), müßte dein Index-Vektor aber auch jedesmal aktualisiert werden.</p>
<p>Und bei meinem Vorschlag würde es einfach mehrere Vektoren (je nach Schwierigkeitsgrad geben).<br />
Beim enum kannst du dann einfach noch weitere Schwierigkeitsgrade hinzufügen (so daß MAX_SGRAD aber immer der letzte enum-Wert ist!).</p>
<p>Bgzl. &quot;gewußt&quot;, &quot;nicht gewußt&quot; würde ich eher ein boolsches Flag in der Struktur SVoc verwenden, anstatt immer einzelne Vokabeln (bzw. deren Indizes) von einem Vektor in den anderen zu kopieren.</p>
<p>So könntest du dann auch einfach die Vokabeln-Vektoren in eine Datei (oder DB) speichern und daraus wieder laden (ohne erst die Index-Vektoren erstellen zu müssen).</p>
<p>Bei der Vokabelabfrage kannst du dann einfach in einer Schleife solange eine zufällige Vokabel abfragen, bis das &quot;gewußt/nicht gewußt&quot;-Flag passend ist.</p>
<p>Du kannst ja dann noch 2 Zähler definieren für die Anzahl der &quot;gewußten&quot; und &quot;nicht gewußten&quot; Vokabeln, um Statistiken darüber zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169631</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Mon, 06 Nov 2006 13:39:11 GMT]]></title><description><![CDATA[<p>ah, tschuldigung, die Namen sind wohl missverständlich: als gewusst werde ich SELBST Vokabeln flaggen die ich so oft jeden tag gebraucht habe dass sie echt 100% sitzen. Besser sitzen als easy quasi (guten Morgen, guten Tag, bis nachher, die Zahlen usw usw)</p>
<p>löschen und anfügen von weiteren Vokabeln soll nicht WÄHREND dem Abfragen des Programmes möglich sein, wohl aber davor und danach. WÄhrend der Abfrage soll da nur am Schwierigkeitsgrad gefummelt werden können.</p>
<p>DIe Index Vektoren werden erst beim Start einer Abfrage erstellt (nach den entsprechenden Kriterien) und danach wieder gelöscht. Die hatten nur als Funktion, dass nur Vokabeln der gwünschten Schwierigkeitsgrade abgefragt werden.</p>
<p>Wie würde ich das bei einem 2-dim vector denn machen, dass er zufällig zwischen 2, 3 Kategorien wählt (da man ja schwierig und nicht-gewusst z.B gleichzeitig abgefragt werden können soll)? Da hab ich nämlich keine passende Idee dazu, leider...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169641</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Mon, 06 Nov 2006 15:17:08 GMT]]></title><description><![CDATA[<p>Wenn du einen bestimmten Bereich innerhalb der Schwierigkeitsgrade abgefragt haben willst, z.B. von normal bis difficult, dann kannst du auch einfach eine Zufallszahl ermitteln: min + rand()%(max-min+1), wobei min der Bereichanfang und max das Bereichsende ist.</p>
<p>Ansonsten legst du dir ein boolsches Array an und suchst dir wieder zufällig einen Schwierigkeitsgrad aus bis das Flag gesetzt ist. Die ist dann dein erster Index für das zwei-dimensionale Vokabelvektoren-Array (tolles Wort -).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169750</guid><dc:creator><![CDATA[Th (nicht eingeloggt)]]></dc:creator><pubDate>Mon, 06 Nov 2006 15:17:08 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Tue, 07 Nov 2006 08:26:40 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ok, danke, ich habe verstanden wie du das meinst.</p>
<p>Aber jetzt frage ich mich gerade, ob nicht dieses haeufige random wenn man einen schon abgefragten Wert trifft hinderlicher sind als das System bringen wuerde. Wenn man z.B 100 Vokabeln hat, von denen man 99 abfragen lassen will, dann sind nach 98 abgefragten Vokabeln noch 2 von 100 nicht geflaggt. Rand probiert aber immer noch alle 100 durch, und ich habe nur ne 2% Chance dass er einen richtigen Wert trifft.</p>
<p>Oder hab ich da jetzt etwas uebersehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170213</guid><dc:creator><![CDATA[Shinja]]></dc:creator><pubDate>Tue, 07 Nov 2006 08:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to Vokabelabfrage-Programm: Verbesserung der Abfrageidee on Tue, 07 Nov 2006 09:18:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielleicht hilft Dir <a href="http://cplus.kompf.de/artikel/random_shuffle.html" rel="nofollow">dieser</a> Artikel auf <a href="http://kompf.de" rel="nofollow">kompf.de</a> weiter. Dort geht es um random_shuffle. Das sollte Dein Problem lösen.</p>
<p>Gruß SciFi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170240</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170240</guid><dc:creator><![CDATA[SciFi-&amp;gt;N&#x2F;A]]></dc:creator><pubDate>Tue, 07 Nov 2006 09:18:34 GMT</pubDate></item></channel></rss>