<?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[problem mit Schleife&#x2F;Programmablauf]]></title><description><![CDATA[<p>Hallo,</p>
<p>vermutlich ist es leicht zu lösen, ich finde aber nicht die richtige Stelle zum Schleifenabbruch.</p>
<p>Ich habe einen Vektor, der Daten aus der Datenbank aufnimmt. Diesen Vektor möchte ich durchlaufen und zählen, wie oft jedes inhaltlich gleiche Element vorkommt. Die gleichen Elemente stehen immer hintereinamder.</p>
<p>z.B:<br />
1. Element des Vektos &quot;M&quot;<br />
2. &quot;M&quot;<br />
3. &quot;M&quot;<br />
4. &quot;A&quot;<br />
5. &quot;A&quot;</p>
<p>Bei meiner Lösung wird der ganze Vektor durchlaufen und ich gruppiere nicht nach &quot;inhaltsgleichen&quot; Elementen.</p>
<p>for (int k=0; k&lt; t.size(); k++) {<br />
strcpy(mainId, t[k]);</p>
<p>if (strcmp(mainId, oldMain) != 0) {<br />
numMainId = 1;<br />
strcpy(oldMain, mainId);<br />
// break;<br />
}<br />
else {<br />
numMainId ++;<br />
}</p>
<p>//hier sollte im ersten Schleifendurchlauf numMainId =3 (3xM), beim 2. schleifendurchlauf numMainId = 2 (2xA)</p>
<p>if (numMainId &gt; 1 ){<br />
do..<br />
}<br />
}</p>
<p>Im Voraus schon mal vielen Dank...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166231/problem-mit-schleife-programmablauf</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 07:43:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166231.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Nov 2006 12:22:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 12:22:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vermutlich ist es leicht zu lösen, ich finde aber nicht die richtige Stelle zum Schleifenabbruch.</p>
<p>Ich habe einen Vektor, der Daten aus der Datenbank aufnimmt. Diesen Vektor möchte ich durchlaufen und zählen, wie oft jedes inhaltlich gleiche Element vorkommt. Die gleichen Elemente stehen immer hintereinamder.</p>
<p>z.B:<br />
1. Element des Vektos &quot;M&quot;<br />
2. &quot;M&quot;<br />
3. &quot;M&quot;<br />
4. &quot;A&quot;<br />
5. &quot;A&quot;</p>
<p>Bei meiner Lösung wird der ganze Vektor durchlaufen und ich gruppiere nicht nach &quot;inhaltsgleichen&quot; Elementen.</p>
<p>for (int k=0; k&lt; t.size(); k++) {<br />
strcpy(mainId, t[k]);</p>
<p>if (strcmp(mainId, oldMain) != 0) {<br />
numMainId = 1;<br />
strcpy(oldMain, mainId);<br />
// break;<br />
}<br />
else {<br />
numMainId ++;<br />
}</p>
<p>//hier sollte im ersten Schleifendurchlauf numMainId =3 (3xM), beim 2. schleifendurchlauf numMainId = 2 (2xA)</p>
<p>if (numMainId &gt; 1 ){<br />
do..<br />
}<br />
}</p>
<p>Im Voraus schon mal vielen Dank...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182246</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Mon, 27 Nov 2006 12:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 12:34:48 GMT]]></title><description><![CDATA[<p>Was genau willst du herausbekommen? Den längsten Block gleicher Elemente? Oder die Anzahl verschiedener Blöcke?</p>
<p>(für letzteres könntest du mit unique_copy() über deinen Vector laufen und hinterher zählen, wieviele Werte rauskopiert wurden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182255</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Nov 2006 12:34:48 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 12:36:41 GMT]]></title><description><![CDATA[<p>Dein Ansatz ist schon mal gut!</p>
<p>Aber warum machst du es nicht so:<br />
Du speicherst das erste Element von &quot;t&quot; in einer Variable, sagen wir mal &quot;GrundElement&quot;. Dann gehst du in &quot;t&quot; solange vor, bis das aktuelle Element in &quot;t&quot; ungleich &quot;GrundElement&quot; ist, dabei erhöhst du immer eine Zählervariable. Denn dann wären in deinem Beispiel die 3 &quot;M&quot;s vorbei.<br />
Jetzt machst du was mit dieser Erkenntnis...<br />
Dann setzt du &quot;GrundElement&quot; auf das aktuelle Element von &quot;t&quot;, was dann ja 'A' wäre, und die Zählervariable auf 0. Du gehst wieder weiter vor, bis t[aktuell] != GrundElement und erhöhst wieder die Zählervariable. Dann wieder was damit machen usw.</p>
<p>Anschaulich erklärt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182259</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 27 Nov 2006 12:36:41 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 13:45:44 GMT]]></title><description><![CDATA[<p>Oh, vielen Dank für die schnelle Antwort.</p>
<p>Leider bin ich absoluter Anfänger und kann das, was Du (Badestrand) mir gepostet hast nicht in quelltext umsetzten. Aber von der Logik her ist es genau das, was ich möchte.</p>
<p>hier mein Versuch:</p>
<p>char old[10] = NULL;<br />
char mainId[10] = &quot;new&quot;;</p>
<p>for (int k=0; k&lt; t.size(); k++) {<br />
strcpy(old, t[0]-&gt;mainIdent);</p>
<p>while (strcmp(mainId, oldMain) == 0))<br />
{<br />
numMainId ++;<br />
}</p>
<p>// wie komme ich zurück zum Anfang der forSchleife??<br />
strcpy(old, t[i]);<br />
numMainId = 0;<br />
}</p>
<p>vielen Dank und sorry fürs erneute Fragen.. war anschaulich erklärt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182332</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Mon, 27 Nov 2006 13:45:44 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 13:59:37 GMT]]></title><description><![CDATA[<p>Erstmal sind wir hier in C++, da solltest du auch C++ Methoden verwenden. Und zweitens hast du meine obige Frage noch nicht beantwortet.</p>
<p>Mal ein Ansatz:</p>
<pre><code class="language-cpp">string tmp;
int oldi=0,blocksize=0;
for(i=0;i&lt;vec.size();++i)
{
  if(vec[i]!=tmp)
  {
    tmp=vec[i];
    if(blocksize&lt;i-oldi) blocksize=i-oldi;
    oldi=i;
  }
}
//jedes Mal, wenn ein neues Wort gefunden wird, wird der letzte Zähler ausgewertet und dann der Zähler neu gesetzt
//oldi speichert die Anfangsposition des Blocks, blocksize die bisherige Maximalgröße
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1182353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182353</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 27 Nov 2006 13:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 14:11:51 GMT]]></title><description><![CDATA[<p>gibt es kein while in c++??</p>
<p>Und vielen Dank, fürs antworten! Und das,obwohl ich nicht mehr geschrieben habe, was ich will.</p>
<p>Also:<br />
Ich möchte für jedes &quot;Wort&quot; die Anzahl haben. Also wissen, wieviele &quot;M&quot;'s, &quot;A&quot;'s etc. es gibt.</p>
<p>Und genau das macht Dein Bsp ja! Danke fürs Gedankenlesen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182373</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Mon, 27 Nov 2006 14:58:27 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>leider komme ich immer noch nicht weiter.</p>
<p>Also neuer Versuch zu erklären:<br />
Es gibt eine bestehende if Anweisung, welche mit einem bestimmten Kriterium einige Elemente von t löscht. Ich möchte aber sichergehen, dass jedes &quot;Wort&quot; mindestens 1x vorkommt. Dafür soll die besagte Schleife s.u. sein.</p>
<p>Daher möchte ich die Anzahl der gleichen Wörter in einer späteren if Anweisung verwenden.</p>
<p>Also :</p>
<p>Schleife {<br />
Ermittele die Anzahl des aktuellen Wortes, z.B: &quot;M&quot;</p>
<p>If ( Anzahl &quot;M&quot; &gt;= 1)<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182431</guid><dc:creator><![CDATA[*lt*---*gt*]]></dc:creator><pubDate>Mon, 27 Nov 2006 14:58:27 GMT</pubDate></item><item><title><![CDATA[Reply to problem mit Schleife&#x2F;Programmablauf on Tue, 28 Nov 2006 07:31:04 GMT]]></title><description><![CDATA[<p>Klar gibt es eine while()-Schleife (sogar zwei). Aber wenn ich über einen festen Speicherbereich zählen will, nehme ich üblicherweise for() <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>
<p>Zu deinem neuen Problem. In der Schleife kannst du mit den Blockgrößen alles machen, was dir einfällt. Anstatt dir nur den längsten Block zu merken (siehe mein Code), kannst du dir auch alle Blöcke in einen vector&lt;pair&lt;string,int&gt; &gt; oder eine map&lt;string,int&gt; packen und später weiterverarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1182834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1182834</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 28 Nov 2006 07:31:04 GMT</pubDate></item></channel></rss>