<?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[Rekursive Funktion Hilfe]]></title><description><![CDATA[<p>Halli Hallo,</p>
<p>ich bin gerade ein bisschen Ratlos mit Rekursiven Funktionen.<br />
Das Grundprinzip hab ich verstanden. Allerdings ist da ein kleines Problem, dem ich schon öfter begegnet bin und auf das ich mir keinen Rat weiß.</p>
<p>Ich hab dazu ein kleines Übungsprogramm zur Potenzberechnung geschrieben (Und ja ich weiß, dass es in der Aktuellen verfassung nicht das macht was es soll^^. Bevor ich allerdings das Problem nicht verstehe werde ich nicht weiter an der Aufgabe feilen):</p>
<pre><code>int potenz(int base,int expo){

    if(expo==1){
        return base;
    }
    return (base,expo-1);

}

int main() {

    int basis,exp;
    int ergebnis;

    cout &lt;&lt; &quot;Basis: &quot; , cin &gt;&gt; basis;
    cout &lt;&lt;endl;
    cout &lt;&lt; &quot;exponent: &quot;, cin &gt;&gt; exp;
    cout &lt;&lt;endl;
    ergebnis=potenz(basis,exp);
    cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt;ergebnis;

    return 0;
}
</code></pre>
<p>Also zu meinem eigenen Verständnis: Unten wird eine Basis und ein Exponent eingegeben. Die Basis sei z.B 4 und der Exponent 3. Diese werden in die Funktion übergeben. Die Funktion oben ruft sich so lange selbst auf, bis der Exponent=1 ist und gibt dann den Wert der Basis zurück was in diesem Falle 4 ist. Die Aufgerufene Stelle, welche die 4 dann zurückerhalten sollte, sollte die 4 dann wieder an die nächste Aufgerufene stelle zurückgeben usw, bis wir wieder beim Ausgang sind.<br />
Die Realität: Er gibt mir immer etwas anderes aus. In dem Beispiel mit 3 und 4 gibt er mir z.B ne 2 aus. Gebe ich als Basis 6 und als Exponent 2 ein, gibt er mir eine 1 aus...</p>
<p>Könnte mir bitte jemand erklären was da passiert und warum?<br />
Vielen Dank schonmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329963/rekursive-funktion-hilfe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 18:51:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329963.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Dec 2014 14:19:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:20:43 GMT]]></title><description><![CDATA[<p>Halli Hallo,</p>
<p>ich bin gerade ein bisschen Ratlos mit Rekursiven Funktionen.<br />
Das Grundprinzip hab ich verstanden. Allerdings ist da ein kleines Problem, dem ich schon öfter begegnet bin und auf das ich mir keinen Rat weiß.</p>
<p>Ich hab dazu ein kleines Übungsprogramm zur Potenzberechnung geschrieben (Und ja ich weiß, dass es in der Aktuellen verfassung nicht das macht was es soll^^. Bevor ich allerdings das Problem nicht verstehe werde ich nicht weiter an der Aufgabe feilen):</p>
<pre><code>int potenz(int base,int expo){

    if(expo==1){
        return base;
    }
    return (base,expo-1);

}

int main() {

    int basis,exp;
    int ergebnis;

    cout &lt;&lt; &quot;Basis: &quot; , cin &gt;&gt; basis;
    cout &lt;&lt;endl;
    cout &lt;&lt; &quot;exponent: &quot;, cin &gt;&gt; exp;
    cout &lt;&lt;endl;
    ergebnis=potenz(basis,exp);
    cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt;ergebnis;

    return 0;
}
</code></pre>
<p>Also zu meinem eigenen Verständnis: Unten wird eine Basis und ein Exponent eingegeben. Die Basis sei z.B 4 und der Exponent 3. Diese werden in die Funktion übergeben. Die Funktion oben ruft sich so lange selbst auf, bis der Exponent=1 ist und gibt dann den Wert der Basis zurück was in diesem Falle 4 ist. Die Aufgerufene Stelle, welche die 4 dann zurückerhalten sollte, sollte die 4 dann wieder an die nächste Aufgerufene stelle zurückgeben usw, bis wir wieder beim Ausgang sind.<br />
Die Realität: Er gibt mir immer etwas anderes aus. In dem Beispiel mit 3 und 4 gibt er mir z.B ne 2 aus. Gebe ich als Basis 6 und als Exponent 2 ein, gibt er mir eine 1 aus...</p>
<p>Könnte mir bitte jemand erklären was da passiert und warum?<br />
Vielen Dank schonmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433112</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:25:08 GMT]]></title><description><![CDATA[<p>In Zeile 6 rufst du nicht potenz auf, sondern rufst den Komma-Operator auf. Korrekt wäre potenz(base, expo - 1).<br />
Aber das wird dir dennoch nicht die Potenz geben. Über den Algo solltest du noch mal in Ruhe nachdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433113</guid><dc:creator><![CDATA[Jodocus]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:25:08 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:25:58 GMT]]></title><description><![CDATA[<p><s>return (base,expo-1);</s><br />
return potenz(base,expo-1);</p>
<p>Funktionsaufruf Syntax ist immer gleich:<br />
<em>funktionsname</em>(<em>argumente</em>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433114</guid><dc:creator><![CDATA[Singender Holzkübel]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:27:48 GMT]]></title><description><![CDATA[<p>Ah mann! <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="😃"
    /> Natürlich!<br />
Wie konnte ich das übersehen... dankesehr!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433115</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:27:48 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:30:01 GMT]]></title><description><![CDATA[<p>Cabooze schrieb:</p>
<blockquote>
<p>Ah mann! <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="😃"
    /> Natürlich!<br />
Wie konnte ich das übersehen... dankesehr!</p>
</blockquote>
<p>Man schreibt schon mal Blödsinn. Mit nem Debugger kommt man oft schnell dahinter ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433116</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:30:01 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:30:20 GMT]]></title><description><![CDATA[<pre><code>int potenz(int base, int expo){

    if(expo==1){
        return (base);
    }
    return base*potenz(base,expo-1);

}

int main() {

    int basis,exp;
    int ergebnis;

    cout &lt;&lt; &quot;Basis: &quot; , cin &gt;&gt; basis;
    cout &lt;&lt;endl;
    cout &lt;&lt; &quot;exponent: &quot;, cin &gt;&gt; exp;
    cout &lt;&lt;endl;
    ergebnis=potenz(basis, exp);
    cout &lt;&lt; &quot;Ergebnis: &quot; &lt;&lt;ergebnis;

    return 0;
}
</code></pre>
<p>So passt! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2433117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433117</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 14:31:17 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Cabooze schrieb:</p>
<blockquote>
<p>Ah mann! <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="😃"
    /> Natürlich!<br />
Wie konnte ich das übersehen... dankesehr!</p>
</blockquote>
<p>Man schreibt schon mal Blödsinn. Mit nem Debugger kommt man oft schnell dahinter ...</p>
</blockquote>
<p>Der Debugger von Netbeans funktioniert öfter nicht. Wie jetzt gerade auch... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> Krieg ständig ne fehlermeldung.<br />
Sonst hätt ich es längst gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433118</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 14:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 15:30:54 GMT]]></title><description><![CDATA[<p>Nebenbei als Anmerkung noch die Antwort auf die eigentliche Frage, auch wenn sie nicht mehr benötigt wird <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>Obwohl ich mich schon seit etlichen Jahren mit C++ befasse und ich eigentlich dachte, dass diese Sprache nicht mehr allzu viele Geheimnisse vor mir haben kann, habe ich mir die selbe Frage gestellt wie Cabooze: &quot;Was passiert da und warum?&quot;.</p>
<p>Man lernt bei C++ doch nie wirklich aus. Ich dachte tatsächlich immer solche durch Komma separierte Ausdrücke könnte man nur bei for-Schleifen verwenden - tatsächlich ist das Komma tatsächlich ein Operator, bei dem der linke und der rechte linke Ausdruck mit allen Nebeneffekten ausgewertet werden und der Gesamtausdruck den Wert des Ausdrucks rechts vom Komma erhält:</p>
<p><code>return (base,expo-1);</code></p>
<p>Wertet also <code>base</code> mit Nebeneffekten aus (Das hätte z.B. Relevanz wenn dort <code>base++</code> stünde und <code>base</code> global wäre. So wird es wahrscheinlich eh nur rausoptimiert) und gibt <code>expo-1</code> zurück. Womit sich auch die Rückgabewerte in der ersten Version erklären.</p>
<p>Da habe ich wieder etwas dazgelernt. Hab das Komma bei den &quot;anderen Operatoren&quot; wohl nie so richtig wahrgenommen... was mir allerdings ein wenig Angst macht, ist, dass man das Komma sogar überladen (!) kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Gruss,<br />
Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433121</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Tue, 16 Dec 2014 15:30:54 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 16:38:03 GMT]]></title><description><![CDATA[<p>Finnegan schrieb:</p>
<blockquote>
<p>Da habe ich wieder etwas dazgelernt. Hab das Komma bei den &quot;anderen Operatoren&quot; wohl nie so richtig wahrgenommen... was mir allerdings ein wenig Angst macht, ist, dass man das Komma sogar überladen (!) kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Ja, genau wie &amp;&amp; und || und Scott Meyers schreibt kapitelweise darüber, dass man es kann und wieso man es nicht machen sollte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433134</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 16 Dec 2014 16:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 17:04:30 GMT]]></title><description><![CDATA[<p>Übrigens bringt mich das Debugger Problem langsam auf die Palme. ich weiß auch gar nich unter welchem Thema ich das hier reinschreiben müsste wenn ich ein neuen Thread aufmachen wollte.<br />
Bei vielen (nicht bei allen) programmen die ich mit Neatbeans debuggen will kommt ein Error mit : C:/nutzer/dokumente/netbeansprojects/projektname/debug/cygwin_4.x-windows/projektname: no such file or directory.<br />
Was kann ich da machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433138</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 17:04:30 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 17:21:28 GMT]]></title><description><![CDATA[<p>Unter Windows ist die Visual Studi IDE ungeschlagen, was das Debugging betrifft, wie ich finde. Da kommt nix dran. Empfehle daher das Visual Studio. Allerdings ist der Microsoft Compiler nur so lala, alelrdigns oll, wie ich gehört habe, in der neuen Version die Toolchain austauschbar sein. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433140</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 16 Dec 2014 17:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 17:34:00 GMT]]></title><description><![CDATA[<p>Das bringt mir leider nix.<br />
Wir müssen Netbeans und Cygwin Compiler für die Uni benutzen. Ich brauch das ja auch auf meinem Laptop für die Praktikas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433145</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Tue, 16 Dec 2014 17:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to Rekursive Funktion Hilfe on Tue, 16 Dec 2014 19:42:23 GMT]]></title><description><![CDATA[<p>Cabooze schrieb:</p>
<blockquote>
<p>Übrigens bringt mich das Debugger Problem langsam auf die Palme. ich weiß auch gar nich unter welchem Thema ich das hier reinschreiben müsste wenn ich ein neuen Thread aufmachen wollte.</p>
</blockquote>
<p>Wie wäre es mit &quot;'no such file or directory' beim Debuggen mit Netbeans&quot; im Compiler &amp; IDE Forum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2433174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2433174</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 16 Dec 2014 19:42:23 GMT</pubDate></item></channel></rss>