<?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[wie lautet der algorithmus?]]></title><description><![CDATA[<p>es geht um folgenden quellcode:</p>
<pre><code class="language-cpp">C#include &lt;iostream&gt;
using namespace std;
int f1(int a);
int f2(int a);

void main (void)
{ int a=0;
  int b=1;
  for (int count =-10; count &lt;=0; ++ count)
  {b+=f1(a) + f2(a);
  cout &lt;&lt; b &lt;&lt; endl;
  }
}

int f1(int a)
{int b;
b=f2(a);
return (b);
}
int f2 (int a)
{static int b=-5;
b+=1;
return (b+a);
}
</code></pre>
<p>warum es 11 durchgägne gibt ist klar, aber ich versteh nicht ganz was genau da abläuft.<br />
b+= f1(a) + f2(a) bedeutet doch b= b+ f1 + f2 oder?<br />
doch was genau geschieht in de einzelnen funktionen?<br />
f1 setzt doch infach nur b als f2 gleich oder?<br />
wäre nett wenn mir einer den ersten durchlauf der &quot;-6&quot; ausgibt erklären kann <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/298101/wie-lautet-der-algorithmus</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 04:21:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/298101.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Jan 2012 14:50:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wie lautet der algorithmus? on Fri, 13 Jan 2012 14:50:46 GMT]]></title><description><![CDATA[<p>es geht um folgenden quellcode:</p>
<pre><code class="language-cpp">C#include &lt;iostream&gt;
using namespace std;
int f1(int a);
int f2(int a);

void main (void)
{ int a=0;
  int b=1;
  for (int count =-10; count &lt;=0; ++ count)
  {b+=f1(a) + f2(a);
  cout &lt;&lt; b &lt;&lt; endl;
  }
}

int f1(int a)
{int b;
b=f2(a);
return (b);
}
int f2 (int a)
{static int b=-5;
b+=1;
return (b+a);
}
</code></pre>
<p>warum es 11 durchgägne gibt ist klar, aber ich versteh nicht ganz was genau da abläuft.<br />
b+= f1(a) + f2(a) bedeutet doch b= b+ f1 + f2 oder?<br />
doch was genau geschieht in de einzelnen funktionen?<br />
f1 setzt doch infach nur b als f2 gleich oder?<br />
wäre nett wenn mir einer den ersten durchlauf der &quot;-6&quot; ausgibt erklären kann <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/2167666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167666</guid><dc:creator><![CDATA[Jln*]]></dc:creator><pubDate>Fri, 13 Jan 2012 14:50:46 GMT</pubDate></item><item><title><![CDATA[Reply to wie lautet der algorithmus? on Fri, 13 Jan 2012 15:04:23 GMT]]></title><description><![CDATA[<p>Schritt 1 - Aufräumen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int f1(int a);
int f2(int a);

int main (void)
{ 
	int a=0;

	int b=1;

	for (int count =-10; count &lt;=0; ++ count)
	{
		b+=f1(a) + f2(a);

		cout &lt;&lt; b &lt;&lt; endl;
	}

	return 0;
}

int f1(int a)
{
	int b;

	b=f2(a);

	return (b);
}

int f2 (int a)
{
	static int b=-5;

	b+=1;

	return (b+a);
}
</code></pre>
<p>Schritt 2 - Kürzen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int f1(int a);
int f2(int a);

int main (void)
{ 
	int a=0;

	int b=1;

	for (int count =-10; count &lt;=0; ++ count)
	{
		b+=f1(a) + f2(a);

		cout &lt;&lt; b &lt;&lt; endl;
	}

	return 0;
}

int f1(int a)
{
	return f2(a);
}

int f2 (int a)
{
	static int b=-5;

	b+=1;

	return (b+a);
}
</code></pre>
<p>Schritt 3 - Kürzen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int f1(int a);

int main (void)
{ 
	int a=0;

	int b=1;

	for (int count =-10; count &lt;=0; ++ count)
	{
		b+=f1(a) + f1(a);

		cout &lt;&lt; b &lt;&lt; endl;
	}

	return 0;
}

int f1 (int a)
{
	static int b=-5;

	b+=1;

	return (b+a);
}
</code></pre>
<p>Dann noch static nachschlagen und der Rest müsste eigentlich klar sein... Fakt ist, dass f1 ursprünglich nur f2 aufgerufen hat. Die Funktionen waren also gleich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167668</guid><dc:creator><![CDATA[jkhjk]]></dc:creator><pubDate>Fri, 13 Jan 2012 15:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to wie lautet der algorithmus? on Fri, 13 Jan 2012 15:08:27 GMT]]></title><description><![CDATA[<p>Variablen in Funktionen haben miteinander nichts zu tun, auch wenn sie den gleichen Namen haben. Ferner ist das Verhalten undefiniert. f2 hat Nebeneffekte. Da f1 auch f2 aufruft, hat auch f1 Nebeneffekte. Beide Funktionen f1 und f2 stehen gemeinsam in einem Ausdruck, dessen Auswertungsreihenfolge nicht festgelegt ist. edit: Da f1 aber sonst nichts macht, außer f2 aufzurufen und die Addition assoziativ ist, kommt trotzdem am Ende ein definiertes Ergebnis heraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167669</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 Jan 2012 15:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to wie lautet der algorithmus? on Fri, 13 Jan 2012 15:20:57 GMT]]></title><description><![CDATA[<p>Der Algorithmus erzeugt eine <a href="http://de.wikipedia.org/wiki/Arithmetische_Folge" rel="nofollow">arithmetische Folge</a> zweiter Ordnung.</p>
<p>Sei b_0=1 und b_1=-6 (-6 wird als erstes Ergebnis ausgegeben), so kann man die Folgeglieder entweder durch Rekursion bestimmen:<br />
b_(n+1)=2*b_n-b_(n-1)+4</p>
<p>oder durch ein Polynom zweiter Ordnung<br />
b_(n)=2*n^2 - 9*n + 1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2167679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2167679</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Fri, 13 Jan 2012 15:20:57 GMT</pubDate></item></channel></rss>