<?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[Einsteigerproblem: Textverarbeitung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin ein programmierneuling und soll ein programm schreiben welches datensätze (eine liste mit namen) einliest und diese dann in einer anderen, zufällig gewählten reihenfolge wieder ausspuckt. Dafür darf ich aber keine funktionen verwenden welche das selber macht sondern selber einen algorhitmus schreiben. und da brauch ich mal einen kleinen &quot;denkanstoß&quot;, weil ich da leider keinen einstieg finde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>vielen dank für hilfe</p>
<p>elessarric91</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265099/einsteigerproblem-textverarbeitung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 09:09:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265099.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Apr 2010 09:01:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:01:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin ein programmierneuling und soll ein programm schreiben welches datensätze (eine liste mit namen) einliest und diese dann in einer anderen, zufällig gewählten reihenfolge wieder ausspuckt. Dafür darf ich aber keine funktionen verwenden welche das selber macht sondern selber einen algorhitmus schreiben. und da brauch ich mal einen kleinen &quot;denkanstoß&quot;, weil ich da leider keinen einstieg finde <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>vielen dank für hilfe</p>
<p>elessarric91</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884485</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:03:47 GMT]]></title><description><![CDATA[<p>istream &amp; ostream &amp; vector &amp; sort</p>
<p>Alles einmal anschauen, durchlesen, drüber nach denken, ausprobieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884486</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:10:35 GMT]]></title><description><![CDATA[<p>Elessarric91 schrieb:</p>
<blockquote>
<p>...Dafür darf ich aber keine funktionen verwenden welche das selber macht sondern selber einen algorhitmus schreiben.</p>
</blockquote>
<p>Janjan schrieb:</p>
<blockquote>
<p>sort</p>
</blockquote>
<p>Dann wohl nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884491</guid><dc:creator><![CDATA[en Sie einen Benutzername]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:28:10 GMT]]></title><description><![CDATA[<p>Dann eben sort weglassen und selbst einen Sortieralgorithmus schreiben, was aber ziemlich sinnbefreit ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884498</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:28:10 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:39:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich würde dein Problem folgendermaßen lösen:</p>
<p>1. Die Datensätze in einem array (besser noch einem vector) speichern.<br />
2. Zufallszahlen im Bereich 0 bis Anzahl der Datensätze-1 erzeugen -&gt; rand()%AnzahlDatensätze;<br />
3. Jeweiligen Datensatz ausgeben, dabei allerdings darauf achten, dass jeder Datensatz nur einmal ausgegeben wird. Du musst also gefallene Zufallszahlen speichern oder zu jedem Datensatz eine Variable definieren, die abgibt ob der jeweilige Datensatz schon ausgegeben wurde. (Hier würde es sich anbieten mit einerr Struktur zu arbeiten.)</p>
<p>MfG, Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884500</guid><dc:creator><![CDATA[Jochen S.]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 09:48:42 GMT]]></title><description><![CDATA[<p>Einfach umsetzbarer Vorschlag in Pseudocode:</p>
<p>- Daten in Vector <code>data</code> lesen<br />
- Einen neuen, leeren Vector <code>shuffled</code> gleicher Größe erstellen<br />
- Einen Vector <code>map_random</code> mit Zahlen erstellen, jede Zahl steht für einen Index in shuffled.<br />
- Zählschleife mit <code>i</code> von 0 bis data.size():<br />
{<br />
- Zufallszahl <code>ran</code> aus [0,map.random.size()) ziehen<br />
- Daten aus data[i] nach shuffled[map_random[ran&rsqb;&rsqb; kopieren<br />
- map_random[ran] löschen<br />
}<br />
- shuffled ist nun der gewünschte zufällig angeordnete Container</p>
<p>Ist ganz sicher nicht der effizienteste Algorithmus aber recht einfach zu verstehen und umzusetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884506</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 18 Apr 2010 09:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Sun, 18 Apr 2010 10:57:34 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Antworten. Da werd ich das doch gleich mal ausprobieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1884525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1884525</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Sun, 18 Apr 2010 10:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Mon, 19 Apr 2010 16:34:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte nun die daten aus data[i] nach shuffled[map_random[ran&rsqb;&rsqb; kopieren und suche gerade nach einer anweisung also nach dem geeigneten befehl.</p>
<p>meine frage dazu ist, ob es richtig ist die daten mit v.push_back() zu kopieren und wenn ja möchte ich wissen wie ich ihm sage welchen datensatz er kopieren soll.</p>
<p>vielen dank im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885238</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Mon, 19 Apr 2010 16:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Mon, 19 Apr 2010 16:48:28 GMT]]></title><description><![CDATA[<p>Das macht man mit =. Also hier <code>shuffled[map_random[ran&rsqb;&rsqb; = data[i]</code></p>
<p>edit: Stell aber sicher, dass <code>shuffled[map_random[ran&rsqb;&rsqb;</code> auch vorhanden ist! Die Größe eines Vectors kann man mit resize() ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885254</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 19 Apr 2010 16:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 15:32:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe jetzt das Programm soweit ich es geschafft habe geschrieben, allerdings scheint es an mehreren Stellen fehlerhaft zu sein.</p>
<pre><code class="language-cpp">int main(void)
{  
// Daten im Vektor teilnehmer lesen
   ifstream teilnehmer;
    teilnehmer.open(&quot;teilnehmer.txt&quot;);

    if(teilnehmer.is_open()){

      vector&lt;char&gt; person;
       char line[max_length_of_line]; 
 while( file_in.good() &amp;&amp; !file_in.eof() )    
    {
        file_in.getline(line, max_length_of_line);
        person.push_back(char(line)); 
};
// Einen neuen, leeren Vector shuffled gleicher Größe erstellen 
Vector&lt;char&gt; shuffled;
// Einen Vector map_random mit Zahlen erstellen, jede Zahl steht für einen Index in shuffled. 
Vector&lt;int&gt; map_random;
for(int i=0;i&gt;=person.size();++i){
shuffled.push_back(i);
++v[i];
}
// Zählschleife mit i von 0 bis data.size():
for(i=0; i&gt;=person.size();++i)
{
// Zufallszahl ran aus [0,map.random.size()) ziehen
int ran = rand(0,map.random.size());
// Daten aus data[i] nach shuffled[map_random[ran&rsqb;&rsqb; kopieren
 shuffled[map_random[ran&rsqb;&rsqb; = data[i];
// map_random[ran] löschen
map_random[ran]=0;
}
} teilnehmer.close();
;
else cout&lt;&lt;&quot;Datei konnte nicht geöffnet werden!&quot;;
//shuffled ist nun der gewünschte zufällig angeordnete Container 
cout&lt;&lt; shuffled;
return 0;
}
</code></pre>
<p>Ich hoffe das mir jemand sagen kann welche prinzipiellen syntaktischen Fehler ich habe oder wo sich sonst noch fehler eingeschlichen haben.</p>
<p>PS: ich würde mich ja lieber selber in nochmal in ruhe damit befassen aber leider muss ich das programm noch heute per mail abgeben, darum wäre ich hilfe sehr verbunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>vielen dank im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885794</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Tue, 20 Apr 2010 15:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 15:45:19 GMT]]></title><description><![CDATA[<p>Elessarric91 schrieb:</p>
<blockquote>
<p>PS: ich würde mich ja lieber selber in nochmal in ruhe damit befassen aber leider muss ich das programm noch heute per mail abgeben, darum wäre ich hilfe sehr verbunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<ol>
<li>Code ordentlich einrücken, so ist das total unübersichtlich</li>
<li>Da sind richtig gravierende Fehler drin, wenn du Compiler Fehlermeldungen nicht verstehst poste sie hier</li>
<li>Hier macht normal niemand Hausaufgaben</li>
<li>Ich behaupte einfach mal du hast dir nichts zu den verwendeten Klassen durchgelesen, sonst kann ich mir kaum solche Sachen wie &quot;Vector&quot; erklären</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1885805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885805</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Tue, 20 Apr 2010 15:45:19 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 15:53:08 GMT]]></title><description><![CDATA[<p>1. Da fehlt #include &lt;fstream&gt; und using namespace std.<br />
Zeile 9: char ist ein einzelnes Zeichen, du suchst string.<br />
Zeile 10: Wo kommt max_length_of_line her? Zeile durch string line; ersetzen.<br />
Zeile 11: Wo kommet file_in her?<br />
Zeile 13: getline(teilnehmer,line);<br />
Zeile 14: char-Cast gehört weg.<br />
Zeile 17: Wieso auf einmal Vector, wenn du es davor schon richtig geschrieben hast?!<br />
Zeile 20: In die Mitte kommt die Bedingung, unter der der Schleifenrumpf ausgeführt wird. Das muss demnach &lt; anstatt &gt;= sein.<br />
Zeile 22: ...?</p>
<p>Was du beim Mischvorgang machst, verstehe ich ohnehin nicht.<br />
In jedem Fall eine bessere Variante: durch den vector gehen und jedes Element mit einem zufälligen Index tauschen (mit swap).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885812</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 20 Apr 2010 15:53:08 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 16:05:24 GMT]]></title><description><![CDATA[<blockquote>
<ol start="2">
<li>... wenn du Compiler Fehlermeldungen nicht verstehst poste sie hier</li>
</ol>
</blockquote>
<p>expected &quot;;&quot; before &quot;else&quot;</p>
<p>das heißt doch das ein semikolon vorm else erwartet wird oder? das versteh ich nicht weil vorm else ja bereits eins steht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885820</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Tue, 20 Apr 2010 16:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 16:10:10 GMT]]></title><description><![CDATA[<p>Das Semikolon muss da weg. Und teilnehmer.close(); auch.<br />
Nach dem if-Block muss sofort else folgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885825</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Tue, 20 Apr 2010 16:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 16:11:27 GMT]]></title><description><![CDATA[<p>Mit dem Programm wirst du durchfallen. Und zwar mit Krachen! Es enthält kaum vorstellbar viele Fehler.</p>
<p>Ich habe mal eine etwas verbesserte Version gemacht, die ich nicht getestet habe. Sie sollte aber funktionieren. Zumindest compiliert sie, was besser ist als dein Programm und außerdem habe ich über den Algorithmus nachgedacht, du nicht. Es fehlt eine Ausgabe des Ergebnisses. Deine Ausgabe war völlig falsch und hätte nicht funktioniert. Ich habe die Ausgabe nicht korrigiert, weil ich nicht alle deine Hausaufgaben machen will.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; // Fehlte
#include &lt;vector&gt;  // Fehlte
#include &lt;cstdlib&gt; // Fehlte
#include &lt;iostream&gt;// Fehlte
#include &lt;string&gt;  // Fehlte nicht, brauche ich aber zum Verbessern deiner Fehler

using namespace std;  // Fehlte

// const unsigned int max_length_of_line = 1000;  // Fehlte. Schlechter Stil. Dynamische Strukturen benutzen. Daher wird dies in der verbesserten Verison nicht benutzt.

int main()    // main(void) ist zwar nicht falsch, aber ungewöhnlicher Stil
{  
   ifstream teilnehmer;
    teilnehmer.open(&quot;teilnehmer.txt&quot;);

    if(teilnehmer.is_open()){

      //      vector&lt;char&gt; person;                 // SCHWERER FEHLER! char ist nur ein Zeichen! Außerdem: Schlecht gewählter Name
      vector&lt;string&gt; personen;                     // Das hier ist besser.
      // char line[max_length_of_line];            // Schlechter Stil. Dynamische Strukturen benutzen.
      string line;                                 // Das hier ist besser

      // Das Einlesen vorher war FEHLERHAFT, da nach fehlerhaftem Einlesen (Dateiende!) nicht abgebrochen wurde.
      // Außerdem SCHWERER FEHLER: file_in gibt es nicht. Das heißt teilnehmer!
      // SCHWERER FEHLER: Völliges Missverstehen von C-Strings!
      while( getline(teilnehmer, line))            // So passt der Programmablauf. Außerdem: Abbruchbedingung eleganter geschrieben, Lesen funktioniert
        personen.push_back(line);

      // Vector&lt;char&gt; shuffled;                    // Siehe oben. Außerdem: vector falsch geschrieben!
      vector &lt;string&gt; shuffled(personen.size());   // Außerdem. Soll shuffled wie unten benutzt werden, müssen vorher Elemente angelegt werden! Siehe unten.
      vector&lt;int&gt; map_random;                      // vector falsch geschrieben

      for(unsigned i=0;i&lt;personen.size();++i)      // FEHLER: Abbruchbedingung falsch
        {
          // shuffled.push_back(i);                // SCHWERER FEHLER: Algorithmus falsch! 
          map_random.push_back(i);                 // So ist es richtig
          // ++v[i];                               // FEHLER: Was ist v? Warum v[i] erhöhen?
        }

      for(unsigned i=0; i&lt;personen.size();++i)     // FEHLER: Abbruchbedingung falsch
        {
          //  int ran = rand(0,map.random.size()); // map_random falsch geschrieben. SCHWERER FEHLER: rand() nimmt keine Argumente!
          int ran = rand() % map_random.size();    // So ist es besser
          // shuffled[map_random[ran&rsqb;&rsqb; = data[i];  // SCHWERER FEHLER: shuffled hat noch gar keine Elemente. Siehe oben! FEHLER: Was ist data?
          shuffled[map_random[ran&rsqb;&rsqb; = personen[i]; // So ist es besser

          // map_random[ran]=0;                    // SCHWERER FEHLER! Inwiefern sollte Nullsetzen gleich Löschen sein?
          map_random.erase(map_random.begin()+ran);// So ist es besser
        }
      // teilnehmer.close();                       // Falsch positioniert. Ohnehin unnötig
    }
    // ;                                           // SCHWERER FEHLER: Syntax der if Abfrage nochmal lernen!
    else cout&lt;&lt;&quot;Datei konnte nicht geöffnet werden!&quot;;

    // cout&lt;&lt; shuffled;                            // SCHWERER FEHLER: So gibt man keinen vector aus! SCHWERER FEHLER: shuffled existiert hier nicht. ALGORITHMUS FEHLER: Was wenn die Datei nicht geöffnet werden konnte?

    return 0;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Merke: Wenn ich schreibe &quot;SCHWERER FEHLER&quot;, dann ist dies keine Übertreibung. Du hast an diesen Stellen schwerwiegende Mängel im grundlegenden Sprachverständis gezeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885828</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Apr 2010 16:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Einsteigerproblem: Textverarbeitung on Tue, 20 Apr 2010 16:26:54 GMT]]></title><description><![CDATA[<p>EDIT: ich bitte vielmals um entschuldigung die forenregeln missachtet zu haben und gehofft zu haben das mir hier jemand die hausaufgabe berichtigt aber die angst vor der 6 war etwas zu groß</p>
<p>vielen dank für die hilfe, jetzt sollte es funktionieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1885829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1885829</guid><dc:creator><![CDATA[Elessarric91]]></dc:creator><pubDate>Tue, 20 Apr 2010 16:26:54 GMT</pubDate></item></channel></rss>