<?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[Brauche Hilfe für folgende Übung]]></title><description><![CDATA[<p>Hallo allerseits!</p>
<p>Ich habe ein Problem mit folgender Aufgabe:</p>
<p>Betrachtet folgende Bildungsvorschrift einer Zahlenfolge:<br />
x k+1 <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="😞"
    /> 3xk + 1 falls xk ungerade und xk=2 falls xk gerade).<br />
wobei x0 &gt;= 0<br />
Unabhängig vom Startwert x0 nimmt die Folge nach endlich vielen Schritten periodisch die Werte (4; 2; 1) an. Beispiel:<br />
x0 = 5; x1 = 16; x2 = 8; x3 = 4 ; x4 = 2; x5 = 1; x6 = 4; x7 = 2; x8 = 1;....</p>
<p>Nun zur Aufgabe:</p>
<p>Programmiere mit Hilfe der while- und der if-Anweisungen ein Programm das die Folgenglieder dieser Folge zu einem festen x0 &gt;= 0 berechnet und am Bildschirm ausgibt.</p>
<p>Gehe bei der Lösung der Aufgabe folgendermaßen vor:</p>
<ol>
<li>
<p>Als Erstes deklariere zwei integer-Variablen x und k. In der Variablen x soll der aktuelle Wert xk und in k der Index von xk (Anzahl bereits ausgeführter Schritte) gespeichert werden.<br />
Initialisiere die beiden Variablen mit sinnvollen Werten, z.B. x0 = 27, k = 0.</p>
</li>
<li>
<p>Überlege aus obigen Angaben zum Konvergenzverhalten der Folge eine Abbruchbedingung für die while-Schleife, so dass die periodischen Werte nur ein Mal berechnet werden.</p>
</li>
<li>
<p>Programmiere in der Schleife die Berechnung der Folgenkomponenten xk.</p>
</li>
</ol>
<p>Nun ist meine Frage, wie die Lösung lautet?<br />
Ich bin ein Frischling auf dem Gebiet des c++ und nutze MS Visual Express.</p>
<p>Soweit bin ich gekommen:</p>
<p>#include&lt;iostream&gt;<br />
using namespace std;</p>
<p>int main()<br />
{<br />
int x=27;<br />
int k=0;</p>
<p>if (x &gt;= 0) // wenn x &gt;= 0<br />
{</p>
<p>}</p>
<p>Ist dieser Anfang überhaupt richtig? Ich weis nicht, wie ich weiterverfahren soll.</p>
<p>Es wäre wirklich sehr hilfreich, wenn jemand hier mehr weis und es vermag die Aufgabe zu lösen (mit Kommentaren wäre es natürlich super! Da ich ja auch etwas lernen möchte :-))</p>
<p>Vielen Dank schonmal im voraus! <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/topic/253891/brauche-hilfe-für-folgende-übung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 07:41:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253891.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Nov 2009 14:17:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 14:18:03 GMT]]></title><description><![CDATA[<p>Hallo allerseits!</p>
<p>Ich habe ein Problem mit folgender Aufgabe:</p>
<p>Betrachtet folgende Bildungsvorschrift einer Zahlenfolge:<br />
x k+1 <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="😞"
    /> 3xk + 1 falls xk ungerade und xk=2 falls xk gerade).<br />
wobei x0 &gt;= 0<br />
Unabhängig vom Startwert x0 nimmt die Folge nach endlich vielen Schritten periodisch die Werte (4; 2; 1) an. Beispiel:<br />
x0 = 5; x1 = 16; x2 = 8; x3 = 4 ; x4 = 2; x5 = 1; x6 = 4; x7 = 2; x8 = 1;....</p>
<p>Nun zur Aufgabe:</p>
<p>Programmiere mit Hilfe der while- und der if-Anweisungen ein Programm das die Folgenglieder dieser Folge zu einem festen x0 &gt;= 0 berechnet und am Bildschirm ausgibt.</p>
<p>Gehe bei der Lösung der Aufgabe folgendermaßen vor:</p>
<ol>
<li>
<p>Als Erstes deklariere zwei integer-Variablen x und k. In der Variablen x soll der aktuelle Wert xk und in k der Index von xk (Anzahl bereits ausgeführter Schritte) gespeichert werden.<br />
Initialisiere die beiden Variablen mit sinnvollen Werten, z.B. x0 = 27, k = 0.</p>
</li>
<li>
<p>Überlege aus obigen Angaben zum Konvergenzverhalten der Folge eine Abbruchbedingung für die while-Schleife, so dass die periodischen Werte nur ein Mal berechnet werden.</p>
</li>
<li>
<p>Programmiere in der Schleife die Berechnung der Folgenkomponenten xk.</p>
</li>
</ol>
<p>Nun ist meine Frage, wie die Lösung lautet?<br />
Ich bin ein Frischling auf dem Gebiet des c++ und nutze MS Visual Express.</p>
<p>Soweit bin ich gekommen:</p>
<p>#include&lt;iostream&gt;<br />
using namespace std;</p>
<p>int main()<br />
{<br />
int x=27;<br />
int k=0;</p>
<p>if (x &gt;= 0) // wenn x &gt;= 0<br />
{</p>
<p>}</p>
<p>Ist dieser Anfang überhaupt richtig? Ich weis nicht, wie ich weiterverfahren soll.</p>
<p>Es wäre wirklich sehr hilfreich, wenn jemand hier mehr weis und es vermag die Aufgabe zu lösen (mit Kommentaren wäre es natürlich super! Da ich ja auch etwas lernen möchte :-))</p>
<p>Vielen Dank schonmal im voraus! <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/1805176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805176</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 14:18:03 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 14:50:56 GMT]]></title><description><![CDATA[<p>Aleph1 schrieb:</p>
<blockquote>
<p>Ist dieser Anfang überhaupt richtig?</p>
</blockquote>
<p>Das ist richtig, was nicht schwer ist, weil da so gut wie nichts steht.</p>
<blockquote>
<p>Ich weis nicht, wie ich weiterverfahren soll.</p>
</blockquote>
<p>Jetzt machst du innerhalb des if Blocks eine while-Schleife. In der Schleife führst du die vorgegebene Berechnung durch. Als Abbruchbedingung für die while Schleife bietet sich ja der Moment an, indem die Folge periodisch wird. Also wenn x gleich 1 ist.</p>
<blockquote>
<p>Es wäre wirklich sehr hilfreich, wenn jemand hier mehr weis und es vermag die Aufgabe zu lösen (mit Kommentaren wäre es natürlich super! Da ich ja auch etwas lernen möchte :-))</p>
</blockquote>
<p>Siehe dazu den Thread &quot;Du brauchst Hilfe?&quot;. Hier machen wir keine Hausaufgaben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805185</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 08 Nov 2009 14:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 15:25:18 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Als Abbruchbedingung für die while Schleife bietet sich ja der Moment an, indem die Folge periodisch wird. Also wenn x gleich 1 ist.</p>
</blockquote>
<p>Diese Abbruchbedinung reicht nicht ganz aus, denn sie erfasst z.B. den Fall x<sub>0</sub> = 1 oder x<sub>0</sub> = 2 nicht und du müsstes somit nach der while-Schleife noch etwas hinfummeln. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Dann kommt mir gerade in denn Sinn wie man prüft ob eine Zahl gerade, also durch 2 teilbar ist. Ging doch irgendwie mit modulo, oder wie, oder was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805198</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Sun, 08 Nov 2009 15:25:18 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 16:27:08 GMT]]></title><description><![CDATA[<p>Danke erstmal für den Tipp!</p>
<p>Aber wie kriege ich eine while schleife da rein, sodass sie der Aufgabe entspricht?</p>
<p>Ich habe das hier versucht:</p>
<p>#include&lt;iostream&gt;<br />
using namespace std;</p>
<p>int main()<br />
{<br />
int x=27;<br />
int k=0;</p>
<p>if (x &gt;= 0)<br />
{<br />
while (x &gt;= 0; x=1; x*3+1)<br />
{<br />
//Befehl????<br />
}</p>
<p>}</p>
<p>Aber irgendwie ist es falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805236</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 16:27:08 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 16:56:52 GMT]]></title><description><![CDATA[<p>Reicht Deine Eigeninitiative nichtmal um nachzulesen wie eine while-Schleife funktioniert? Dazu gibt es nun wirklich MASSENHAFT Beispiele und tutorials nur einen Mausclick away von google... Kleiner Tipp: Das was Du da versuchst ist eine for-schleife...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805250</guid><dc:creator><![CDATA[loks]]></dc:creator><pubDate>Sun, 08 Nov 2009 16:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:08:47 GMT]]></title><description><![CDATA[<p>und noch nen toller tipp:<br />
es gibt hier C/C++ Tags(unter den smilies, das ding ganz links^^)</p>
<p>[ cpp]<br />
int main() {}<br />
[/cpp]<br />
ohne leerzeichen:</p>
<pre><code class="language-cpp">int main()
{}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805255</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:08:47 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:11:44 GMT]]></title><description><![CDATA[<p>Ups, danke für den Tip!</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

int main()
{
int x=27;
int k=0;

if (x &gt;= 0) 
{ 
	i = 1;
    while (x &gt;= 0) 
    {
        cout &lt;&lt; x &lt;&lt; endl;
        x*3+1; 
    }

}
</code></pre>
<p>so besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805256</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:22:18 GMT]]></title><description><![CDATA[<p>von der formatierung her ists schon sehr viel besser<br />
vom quelltext her leider nicht</p>
<p>ist noch immer fast 0 und das noch nicht korrekt<br />
was soll die zeile: <code>i = 1;</code> ?</p>
<pre><code class="language-cpp">while (x &gt;= 0) 
    {
        cout &lt;&lt; x &lt;&lt; endl;
        x*3+1; 
    }
</code></pre>
<p>was willst du hier machen?<br />
eine endlosschleife bauen, weil x nie ein anderer wert zugewiesen wird?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805266</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:29:49 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

int main()
{
int x=27;
int k=0;

if (x &gt;= 0) 
{ 

    while (x &gt;= 0) 
    {
        cout &lt;&lt; x &lt;&lt; endl;
        x*3+1; 
    }

}
</code></pre>
<p>Wie weise ich denn x etwas zu? Sodass es mir die Ergebnisse wie in der Aufgabenstellungt anzeigt?</p>
<p>Ich dachte nämlich:</p>
<p>x muss grösser als null sein, wenn dem ist dann soll x*3+1 angezeigt werden (so habe ich die Aufgabe zumindest verstanden) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805270</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:51:02 GMT]]></title><description><![CDATA[<p><strong>x=x*3+1;</strong><br />
<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/1805279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805279</guid><dc:creator><![CDATA[ohmann]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 17:54:09 GMT]]></title><description><![CDATA[<p>ohmann schrieb:</p>
<blockquote>
<p><strong>x=x*3+1;</strong><br />
<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>
<p>dir scheint es echt an den grundlagen zu fehlen...<br />
ich hab mir die aufgabe zwar nicht durchgelesen, aber du solltest bevor du sie löst, noch mal dein buch/deine mitschriften/... durchlesen - dann wirst du hoffentlich nen ansatz zu stande bringen, der mehr als 5 zeilen umfasst...</p>
<p>dann wird dir auch jmd richtig helfen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805280</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 18:30:41 GMT]]></title><description><![CDATA[<p>Aleph1 schrieb:</p>
<blockquote>
<p>x muss grösser als null sein, wenn dem ist dann soll x*3+1 angezeigt werden (so habe ich die Aufgabe zumindest verstanden) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
</blockquote>
<p>Ich fürchte du hast die Aufgabe falsch verstanden.</p>
<p>Für den Startwert der Zahlenfolge gilt er muss größer oder gleich 0 sein.</p>
<p>Also: X<sub>0</sub> &gt;= 0</p>
<p>Die Bildungsvorschrift für die restliche Zahlenfolge (X<sub>1</sub>, X<sub>2</sub>, X<sub>3</sub>, ...) lautet (<strong>vermutlich!</strong>):</p>
<pre><code>3 * X[t]k[/t] + 1 , falls X[t]k[/t] ungerade
X[t]k+1[/t] = 
        X[t]k[/t]/2, falls X[t]k[/t] gerade
</code></pre>
<p>Vermutlich deshalb, weil du oben</p>
<p><em>x k+1 <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="😞"
    /> 3xk + 1 falls xk ungerade und xk</em>*=*<em>2 falls xk gerade).</em></p>
<p>stehen hast. In meinen Augen macht das &quot;=&quot; da keinen Sinn. Wenn man allerdings stattdessen X<sub>k</sub>/2 annimmt, dann stimmt die Aussage mit der Unabhängigkeit vom Startwert nicht mehr, da für X<sub>0</sub> = 0 eine Nullfolge entsteht, ohne dass die Werte 4, 2, 1 auftauchen würden.</p>
<p>Hast du dich da vertippt, oder steht die Zeile<br />
<em>x k+1 <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="😞"
    /> 3xk + 1 falls xk ungerade und xk=2 falls xk gerade)</em><br />
wirklich genau so in der Aufgabenstellung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805292</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Sun, 08 Nov 2009 18:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 19:10:28 GMT]]></title><description><![CDATA[<p>Hallo Mitleid!</p>
<p>Ja das steht da wirklich so.<br />
Also bin ich jetzt soweit:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

int main()
{
int x=27;
int k=0;

if (x &gt;= 0) 
{ 
    while (x &gt;= 0) 
    {
        cout &lt;&lt; x &lt;&lt; endl;
        x=3*x+1; 

		if (3%2==1)
		{
 }
    }

}
</code></pre>
<p>Aber irgendwie scheint es noch immer nich richtig zu sein, kann mir einer bitte weiterhelfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805307</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 19:10:28 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 20:17:37 GMT]]></title><description><![CDATA[<p>Aleph1 schrieb:</p>
<blockquote>
<p>Ja das steht da wirklich so.</p>
</blockquote>
<p>Hm, dann würde ich mich nochmal erkundigen, was damit gemeint sein soll, denn das macht irgendwie keinen Sinn.</p>
<p>Aleph1 schrieb:</p>
<blockquote>
<p>Aber irgendwie scheint es noch immer nich richtig zu sein, kann mir einer bitte weiterhelfen?</p>
</blockquote>
<p>Es können und wollen dir sicher ein paar Leute helfen. Werner Salomon juckt es wahrscheinlich schon in den Fingern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Aber, was du bisher gezeigt hast legt die Vermutung nahe, dass du dich weder mit C++ noch mit der Aufgabenstellung richtig befasst hast. Und es wäre fahrlässig dich dieser Denk- und Fleißaufgaben zu berauben, denn nur so kommt ein Lernprozess in Gang.</p>
<p>Sieh dir die Sachen genauer an, mach dir klar was verlangt wird und stelle dann konkrete Fragen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Die Aufgabenstellung ist recht simpel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805333</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Sun, 08 Nov 2009 20:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 21:46:11 GMT]]></title><description><![CDATA[<p>Soweit bin ich nun liebe community!</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

int main()
{
int x=27;
int k=0;

if (x &gt;= 0)
{
while(k&lt;9)
{
cout &lt;&lt; x &lt;&lt; endl;
x=3*x+1;

if(k%2 != 0)
{
x=3*x+1;
}
}

}
</code></pre>
<p>Ich hab mir nun wirklich Mühe gegeben...ist es bis hierhin richtig?<br />
Wie sollte ich nun die Else-Abfrage konstruieren? Kann mir hier bitte einer helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805354</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Sun, 08 Nov 2009 21:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 22:38:31 GMT]]></title><description><![CDATA[<p>gucken wir erst noch mal die aufgabe durch und schauen, was dort so drin steht:</p>
<blockquote>
<p>Betrachtet folgende Bildungsvorschrift einer Zahlenfolge:<br />
x k+1 <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="😞"
    /> 3xk + 1 falls xk ungerade und xk=2 falls xk gerade).<br />
wobei x0 &gt;= 0<br />
Unabhängig vom Startwert x0 nimmt die Folge nach endlich vielen Schritten periodisch die Werte (4; 2; 1) an. Beispiel:<br />
x0 = 5; x1 = 16; x2 = 8; x3 = 4 ; x4 = 2; x5 = 1; x6 = 4; x7 = 2; x8 = 1;....</p>
</blockquote>
<p>ok, erst mal fertig durchlesen...</p>
<blockquote>
<p>Programmiere mit Hilfe der while- und der if-Anweisungen ein Programm das die Folgenglieder dieser Folge zu einem festen x0 &gt;= 0 berechnet und am Bildschirm ausgibt.</p>
</blockquote>
<p>-&gt; wir haben offensichtlich ein x0 &gt;= 0 gegeben. und sollen dann was damit machen</p>
<blockquote>
<ol>
<li>Als Erstes deklariere zwei integer-Variablen x und k. In der Variablen x soll der aktuelle Wert xk und in k der Index von xk (Anzahl bereits ausgeführter Schritte) gespeichert werden.<br />
Initialisiere die beiden Variablen mit sinnvollen Werten, z.B. x0 = 27, k = 0.</li>
</ol>
</blockquote>
<p><code>int k = 0;</code> anfang -&gt; index = 0<br />
<code>int x = gegebener_anfangs_wert;</code> ist klar, x0 sollte ja iwie gegeben sein...</p>
<blockquote>
<ol start="2">
<li>Überlege aus obigen Angaben zum Konvergenzverhalten der Folge eine Abbruchbedingung für die while-Schleife, so dass die periodischen Werte nur ein Mal berechnet werden.</li>
</ol>
</blockquote>
<p>klingt eigtl rel. einfach, nehmen wir einfach nen array mit ner länge von 3 und speichern dort die letzten 3 zahlen - gibt 2 möglichkeiten, wie wir das tun - entweder, indem wir uns den anfang merken oder indem wir immer hin und her kopieren... ich werds mal mit dem anfang merken versuchen...</p>
<blockquote>
<ol start="3">
<li>Programmiere in der Schleife die Berechnung der Folgenkomponenten xk.</li>
</ol>
</blockquote>
<p>ist klar, dass wir das tun wollen^^</p>
<p>also:</p>
<pre><code class="language-cpp">const int x0 = 27; //unser gegebener startwert hier als globale konstante, damit man ihn schnell ändern kann
//von einlesen steht nix in der aufgabe, also machen wir uns auch nicht mehr arbeit, als wir müssen

//wir bauen uns erst mal ne fkt, die nen array und den anfang übergeben bekommt und für uns checkt, ob wir abbrechen drüfen
bool convert(int *last_values, int index);

int main()
{
  int k = 0;
  int x = x0;

  int last_values[3] = {}; //0-initialisiert

  while(!convert(last_values, k))
  {
    if(k%2 == 0) //2 teilbar
    {
      x = 3*x +1;
      k = k+1;
    }
    else
    {
      x = x/2;
      k = k+1;
    }
    //unser merker für das konvergenz-verhalten muss noch aktualisiert werden:
    last_values[k%3] = x;
  }
}

bool convert(int *last_values, int index)
{
  int first = index%3,
    second = (index+1)%3,
    third = (index+2)%3;

  return (last_values[first] == 1) &amp;&amp; (last_values[second] == 2) &amp;&amp; (last_values[third] == 4);
}
</code></pre>
<p>und schon wären wir fertig...<br />
(also für den fall, dass hier keine fehler mehr drin wären^^)</p>
<p>ich würd es allerdings noch ein wenig anders schreiben...</p>
<pre><code class="language-cpp">const int starting = 27;

bool convert(int* last_values, int index)
{
  bool R = values[index%3] == 1;
  R &amp;= values[++index%3] == 2;
  R &amp;= values[++index%3] == 4;

  return R;
}

int main()
{
  int k = 0;
  int x = starting;

  int last_values[3] = {};

  while(!convert(last_values, k))
  {
    if(k%2 == 0)
    {
      x *= 3;
      ++x;
    }
    else
    {
      x /= 2;
    }
    ++k;

    last_values[k%3] = x;
  }
}
</code></pre>
<p>heißt nicht unbedingt, dass es so schöner ist, aber ich finds so übersichtlicher^^</p>
<p>ich hab zwar nicht mit absicht fehler reingemacht, aber das hat nix zu sagen ;o)</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805366</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 22:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 23:15:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a><br />
Das geht doch sicher noch schöner, oder?</p>
<p>Z.B. ohne dieses Array und die zusätzliche Funktion. Du willst doch Aleph1 nicht unnötig verwirren, was?</p>
<p>Übrigens würde der Startwert x0=0 bei dir zu einer Endlosschleife führen. Da ist aber auch die Aufgabenstellung recht schlampig formuliert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805375</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Sun, 08 Nov 2009 23:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 23:18:37 GMT]]></title><description><![CDATA[<p>Diese Folge ist die sogenannte <a href="http://de.wikipedia.org/wiki/Collatz-Problem" rel="nofollow">Collatz-Folge</a> und endet nach heutigen Kenntnisstand immer mit einer 1. Zudem ist sie ein schönes Beispiel für die Anwendung des <a href="http://www.boost.org/doc/libs/1_40_0/libs/iterator/doc/iterator_adaptor.html" rel="nofollow">boost.iterator_adaptor</a>s wie folgender Code zeigt:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt; // copy
#include &lt;iterator&gt; // ostream_iterator
#include &lt;iostream&gt;
#include &lt;boost/iterator/iterator_adaptor.hpp&gt;

template&lt; typename T &gt;
class basic_collatz : public boost::iterator_adaptor&lt; basic_collatz&lt; T &gt;, T, T, boost::forward_traversal_tag, const T &gt;
{
public:
    explicit basic_collatz( const T&amp; x )
        : iterator_adaptor( x )
    {}
    void increment()
    {
        if( base_reference() % 2 == 0 )
            base_reference() /= 2;
        else
            ++( base_reference() *= 3 );
    }
    T dereference() const { return base_reference(); }
};
typedef basic_collatz&lt; int &gt; Collatz;

int main()
{
    using namespace std;
    for( int x; cout &lt;&lt; &quot;&gt; &quot;, cin &gt;&gt; x &amp;&amp; x &gt; 0; )
    {
        copy( Collatz( x ), Collatz( 1 ), ostream_iterator&lt; int &gt;( cout &lt;&lt; &quot;Collatz-Folge: &quot;, &quot; &quot; ) );
        cout &lt;&lt; endl;
    }
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
<p>PS.: nein - dieser Beitrag war nicht für Aleph1 gedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805376</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 08 Nov 2009 23:18:37 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 23:19:31 GMT]]></title><description><![CDATA[<p>Es ist auch gar nicht nötig, sich drei Folgemitglieder zu merken. Da das aktuelle Glied nur vom Vorgänger abhängt, reicht es, auf 1 zu prüfen, denn wenn man erstmal bei der 1 ist, kommt danach immer 4,2,1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805377</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 08 Nov 2009 23:19:31 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Sun, 08 Nov 2009 23:23:45 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Es ist auch gar nicht nötig, sich drei Folgemitglieder zu merken. Da das aktuelle Glied nur vom Vorgänger abhängt, reicht es, auf 1 zu prüfen, denn wenn man erstmal bei der 1 ist, kommt danach immer 4,2,1.</p>
</blockquote>
<p>hmmm... richtig xD<br />
ok, hätte man auch von selbst drauf kommen können ;o)<br />
ich überleg gerade, ob ich wohl die ausrede mit der uhrzeit bringen kann... aber ich denke, ich geb einfach zu, dass ichs verkackt hab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805380</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 23:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Mon, 09 Nov 2009 15:14:46 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>...und endet nach heutigen Kenntnisstand immer mit einer 1. ...</p>
</blockquote>
<p>Man vermutet es endet immer mit der Folge 4,2,1. Der Beweis fehlt noch. Bei Fermat vermutete man zuerst auch - erst nachdem der Beweis nun da ist kann man sagen man weiß es tut <strong>immer</strong> so wie vermutet. Es sei denn man ist Anhänger von Popper ... <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>Werner Salomon schrieb:</p>
<blockquote>
<p>Zudem ist sie ein schönes Beispiel für die Anwendung des boost.iterator_adaptors wie folgender Code zeigt:</p>
</blockquote>
<p>Nein ist es nicht und nein zeigt er nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Da das aktuelle Glied nur vom Vorgänger abhängt, reicht es, auf 1 zu prüfen, denn wenn man erstmal bei der 1 ist, kommt danach immer 4,2,1.</p>
</blockquote>
<p>Wie oben bereits erwähnt musst du bei Prüfung auf 1 anschließend nochmal prüfen ob die 4 und die 2 bereits aufgetaucht sind und du es nicht z.B. mit einem Startwert von 1 oder 2 zu tun hattest. Die Folge 4,2,1 soll ja nur 1 Mal auftauchen. Prüfen auf 4 tut es bzw. prüfen auf 1 mit der Bedingung k&gt;1.</p>
<p>Nebenbei, so wie dieser Hausaufgabe-Thread abgelaufen ist, wage ich mal zu bezweifeln, dass das irgendjemandem geholfen hat. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805564</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Mon, 09 Nov 2009 15:14:46 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Mon, 09 Nov 2009 15:23:16 GMT]]></title><description><![CDATA[<p>Mitleid schrieb:</p>
<blockquote>
<p>Nebenbei, so wie dieser Hausaufgabe-Thread abgelaufen ist, wage ich mal zu bezweifeln, dass das irgendjemandem geholfen hat. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Also ich denke, mein Code ist verständlich genug, um ihm zu helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Und wenn er(sie?^^) dann noch die Kommentare zur Abbruchbedingung(von SeppJ etc) liest, sollte er es auch allein hinbekommen, wenn er zumindest den Willen hat, was zu verstehen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805568</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 09 Nov 2009 15:23:16 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Mon, 09 Nov 2009 16:13:58 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a><br />
Ich glaube ja es handelt sich bei Aleph1 weder um einen Er noch um eine Sie sondern um einen SpamBot. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Dennoch. Ob jemand, der noch nicht einmal eine Zuweisung hinbekommen hat deinen Code (Funktionen, Arrays, Zeiger) verstehen wird ist fraglich. Selbst wenn, hast du ihn nicht motiviert sich mit der Aufgabe auseinanderzusetzen, indem du die Lösung lieferst.</p>
<p>Ich kann ja verstehen warum manche Verzweifelte hier, kurz vor Abgabeschluß, ihre Hausaufgabe einstellen. Dennoch tut man ihnen keinen Gefallen wenn man ihnen die Arbeit abnimmt.</p>
<p>Möglicherweise bekommt Aleph1 jetzt die Punkte für die Aufgabe, gelernt hat er jedoch nichts.</p>
<p>Und wenn dann noch falsche Behauptungen gepostet werden, oder Beiträge nach dem Motto &quot;Seht her, was ich alles kann!&quot;, dann kostet das den Hilfesuchenden auch noch kostbare Zeit. Irgendwo muss man ja auch verantwortlich handeln.</p>
<p>P.S.: Wenn hier allerdings einer schreibt er braucht c++ nur für diese eine Aufgabe und sonst nie mehr, oder wenn es an dieser Aufgabe hängt, ob ein ganzes Semester den Bach runter geht, dann hätte ich (etwas Langeweile vorausgesetzt) auch keine Probleme damit eine Lösung hinzuschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805605</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Mon, 09 Nov 2009 16:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Tue, 10 Nov 2009 13:11:03 GMT]]></title><description><![CDATA[<p>Ihr verwirrt mich alle:</p>
<p>So ich habe es jetzt soweit:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
using namespace std;

int main()
{
int x=27;
int k=0;

if (x &gt;= 0)
{
while(k&lt;9)
{
cout &lt;&lt; x &lt;&lt; endl;
x=3*x+1;

if(k%2 != 0)
{
x=3*x+1;
}
else{
     x=x/2; 
}
k++;

}
}
}

}
</code></pre>
<p>Ist das so in Ordnung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806006</guid><dc:creator><![CDATA[Aleph1]]></dc:creator><pubDate>Tue, 10 Nov 2009 13:11:03 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Tue, 10 Nov 2009 13:16:52 GMT]]></title><description><![CDATA[<p>Unabhängig vom Problem solltest du dringend an deiner Einrückung arbeiten. So wirst du schnell die Übersicht verlieren (wenn nicht schon geschehen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> )...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806011</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 10 Nov 2009 13:16:52 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe für folgende Übung on Tue, 10 Nov 2009 14:57:26 GMT]]></title><description><![CDATA[<blockquote>
<p>Diese Folge ist die sogenannte Collatz-Folge und endet nach heutigen Kenntnisstand immer mit einer 1.</p>
</blockquote>
<p>Kannst du bitte eine Quelle angeben, wo dein <strong>immer</strong> bewiesen ist. Ansonsten ist der Kenntnisstand: Wir wissen es nicht.</p>
<p>Ausserdem wird es doch erst interessant, wenn man einige Probleme loesen kann. Z.b. welches n&lt;10^8 generiert die laengste Sequenz? Kann diese Frage dein Iterator beantworten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1806027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1806027</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 10 Nov 2009 14:57:26 GMT</pubDate></item></channel></rss>