<?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[Probleme mit einer C-Quelltext Aufgabe]]></title><description><![CDATA[<p>Hallo @ all,</p>
<p>Ich habe gerade mit meinem Ing. Studium begonnen und stehe nun vor einer mir unlösbaren Aufgabe.<br />
Folgender Quelltext wurde mir zur Verfügung gestellt:</p>
<p>//Aufgabe<br />
#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>float funk (int zahl); //defintion der Funktion für den Aufrauf<br />
void main()<br />
{<br />
int i;<br />
printf(&quot;\nEingabe&quot;);<br />
scanf (&quot;%d&quot;,&amp;i);<br />
cout&lt;&lt;&quot;i1:&quot;&lt;&lt;i&lt;&lt;endl;<br />
printf(&quot;\n \n Ausgabe (%d) = %f&quot;,i,funk(i));<br />
}</p>
<p>float funk (int zahl)<br />
{<br />
float erg=0.0;<br />
cout&lt;&lt; &quot;erg1:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl1:&quot;&lt;&lt;zahl&lt;&lt;endl;<br />
if (zahl&gt;0)</p>
<p>erg =zahl+funk(zahl/3) / funk(zahl-1);</p>
<p>else erg=1.0;<br />
cout&lt;&lt; &quot;erg2:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl2:&quot;&lt;&lt; zahl&lt;&lt;endl;<br />
return(erg);<br />
}</p>
<p>Die &quot;cout&quot; Ausgaben in diesem Quelltext habe ich mir selbst dazu geschrieben, in der Hoffnung das ganze bei der Ausführung zu verstehen.<br />
Die Frage lautet: Berechnen Sie das Ergebnis für die Eingabe i=5. Geben Sie dazu Schritt für Schritt in einer Tabelle die Werte für erg und zahl (bzw.i) an. Wodurch sind hier die Schritte bestimmt, d.h. an welcher Stelle im Programm verändern sich jeweils zahl und erg?</p>
<p>Leider komme ich hier nicht wirklich weiter. Mir ist schon noch klar, dass ich den Wert fünf in die Funktion funk übergebe. Die Formel ist eigentlich das, was mir Kopfzerbrechen bereitet. Zahl = 5 aber was bedeutet dann funk(zahl/3)? Wird da die Funktion nochmal aufgerufen mit dem Wert für %d = 1? Wäre schön wenn mir da jemand eine Antwort drauf geben könnte.</p>
<p>Aber bitte für einen DAU <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>Ist einfach nicht meine Welt diese C-Programmierung.</p>
<p>Thanks</p>
<p>Best regards</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238717/probleme-mit-einer-c-quelltext-aufgabe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 21:25:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238717.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Apr 2009 18:06:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 18:06:14 GMT]]></title><description><![CDATA[<p>Hallo @ all,</p>
<p>Ich habe gerade mit meinem Ing. Studium begonnen und stehe nun vor einer mir unlösbaren Aufgabe.<br />
Folgender Quelltext wurde mir zur Verfügung gestellt:</p>
<p>//Aufgabe<br />
#include &lt;iostream&gt;<br />
#include &lt;stdio.h&gt;<br />
#include &lt;string&gt;<br />
using namespace std;</p>
<p>float funk (int zahl); //defintion der Funktion für den Aufrauf<br />
void main()<br />
{<br />
int i;<br />
printf(&quot;\nEingabe&quot;);<br />
scanf (&quot;%d&quot;,&amp;i);<br />
cout&lt;&lt;&quot;i1:&quot;&lt;&lt;i&lt;&lt;endl;<br />
printf(&quot;\n \n Ausgabe (%d) = %f&quot;,i,funk(i));<br />
}</p>
<p>float funk (int zahl)<br />
{<br />
float erg=0.0;<br />
cout&lt;&lt; &quot;erg1:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl1:&quot;&lt;&lt;zahl&lt;&lt;endl;<br />
if (zahl&gt;0)</p>
<p>erg =zahl+funk(zahl/3) / funk(zahl-1);</p>
<p>else erg=1.0;<br />
cout&lt;&lt; &quot;erg2:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl2:&quot;&lt;&lt; zahl&lt;&lt;endl;<br />
return(erg);<br />
}</p>
<p>Die &quot;cout&quot; Ausgaben in diesem Quelltext habe ich mir selbst dazu geschrieben, in der Hoffnung das ganze bei der Ausführung zu verstehen.<br />
Die Frage lautet: Berechnen Sie das Ergebnis für die Eingabe i=5. Geben Sie dazu Schritt für Schritt in einer Tabelle die Werte für erg und zahl (bzw.i) an. Wodurch sind hier die Schritte bestimmt, d.h. an welcher Stelle im Programm verändern sich jeweils zahl und erg?</p>
<p>Leider komme ich hier nicht wirklich weiter. Mir ist schon noch klar, dass ich den Wert fünf in die Funktion funk übergebe. Die Formel ist eigentlich das, was mir Kopfzerbrechen bereitet. Zahl = 5 aber was bedeutet dann funk(zahl/3)? Wird da die Funktion nochmal aufgerufen mit dem Wert für %d = 1? Wäre schön wenn mir da jemand eine Antwort drauf geben könnte.</p>
<p>Aber bitte für einen DAU <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>Ist einfach nicht meine Welt diese C-Programmierung.</p>
<p>Thanks</p>
<p>Best regards</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695887</guid><dc:creator><![CDATA[Michael112]]></dc:creator><pubDate>Tue, 14 Apr 2009 18:06:14 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 18:19:45 GMT]]></title><description><![CDATA[<p>ja die funktion wird dann nochmal aufgerufen.</p>
<p>du musst aber beachten, dass int eine ganzzahl darstellt.<br />
Wenn du da also 1 hast und das durch 3 teilst dann kommt 0 dabei raus und nicht 0.33</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695894</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 14 Apr 2009 18:19:45 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 18:24:38 GMT]]></title><description><![CDATA[<p>Falsches Forum!</p>
<p>Hier werden Leute permanent genötigt c++ zu lernen. Sobald C-Code oder Dinge wie void main () {} auftauchen wetzen schon einige die Messer.</p>
<p>Du kannst nicht erwarten, dass ein heutiger C++ler der neuen Schule Funktionen wie scanf() oder printf() kennt. <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>Zum Problem:</p>
<p>Ja mit funk(zahl/3) ruft sich die Funktion selbst nochmal auf (Stischwort Rekursion) und zahl/3 bedeutet zahl wird durch 3 dividiert. Da zahl aber ein int ist fallen die Stellen hinter dem Komma einfach weg. Keine Rundung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695896</guid><dc:creator><![CDATA[Hoho]]></dc:creator><pubDate>Tue, 14 Apr 2009 18:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 18:26:39 GMT]]></title><description><![CDATA[<p>@daersc<br />
Du Schnelltipper!!! <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/1695899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695899</guid><dc:creator><![CDATA[Hoho]]></dc:creator><pubDate>Tue, 14 Apr 2009 18:26:39 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 18:58:31 GMT]]></title><description><![CDATA[<p>Und wie läuft das dann ab?<br />
Rechne ich dann 5+1/4 oder was?<br />
Ich kappiere da den Ablauf noch nicht so ganz.<br />
Wenn ich doch eine Funtion habe. In dieser Fkt habe ich eine Formel, dann muß ich die doch erst berechnen.<br />
und wenn ich eine Rekursion habe, muß die doch gegen einen Endwert laufen oder nicht.<br />
Die Rekursionsbeispiele die ich bisher hatte fielen mir erheblich einfacher.</p>
<p>Wieso mach ich so einen Blödsinn nicht mit einer Schleife?<br />
Da schreibe ich wenigstens meinen Stack nicht zu. Speicher ist Mangelwar bei mir <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>Naja, nochmal zum Thema: Ich lasse mein Fkt laufen. Habe als Zahl 5. Nun kommt die Rekursion. Müsste dann doch wieder 5+ erscheinen. Was passiert da genau? Oder schreibe ich bei der Rekursion nur den übernommenen Wert dann da in die Formel? Wie wird dann meine Variable zahl überschrieben. Dann müsste ja noch irgendwo sowas wie zahl=zahl/3 stehen!<br />
Und wann komme ich dann an den Punkt /funk(zahl-1)?</p>
<p>Ganzschön verwirrend!!!</p>
<p>P.S. @Hoho<br />
Ich würde sowas wie scanf und printf am liebsten auch nicht kennen. Aber in meinem beschränkten Hirn gibt es da nicht so große Unterschiede zu cout und cin <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>Aber das mit dem nötigen etwas zu lernen ist echt wahr!</p>
<p>Und es geht mir ja eigentlich nur um diese blöde Formel und nicht um das was in void main() steht!</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695922</guid><dc:creator><![CDATA[Michael112]]></dc:creator><pubDate>Tue, 14 Apr 2009 18:58:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 19:05:22 GMT]]></title><description><![CDATA[<pre><code>funk(0) = 1 
funk(1) = funk(1/3) / funk(1-1) = funk(0) / funk(0) = 1 / 1 = 1
funk(2) = funk(2/3) / funk(2-1) = funk(0) / funk(1) = 1 / 1 = 1
funk(3) = funk(3/3) / funk(3-1) = funk(1) / funk(2) = 1 / 1 = 1
...und so weiter.
</code></pre>
<p>diese tabelle sollste erstmal per hand machen. mindestens bis funk(5).<br />
und zeig sie dann mal, am besten bis mindestens func(10), denn ich bin total neugierig, wie die funktion weiter verläuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695926</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Apr 2009 19:05:22 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 19:59:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 
//#include &lt;stdio.h&gt; falscher header, nennt sich eigtl
#include &lt;cstdio&gt;
#include &lt;string&gt; 
using namespace std; 

float funk (int zahl); //defintion der Funktion für den Aufrauf
//nennt sich prototyp

//void main() 
int main()
{ 
//printf(&quot;\nEingabe&quot;);
cout &lt;&lt; endl &lt;&lt; &quot;Eingabe&quot;;
int i;
cin &gt;&gt; i;
cout &lt;&lt; &quot;i1:&quot; &lt;&lt; i &lt;&lt; endl;
//printf(&quot;\n \n Ausgabe (%d) = %f&quot;,i,funk(i));
cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; &quot;Ausgabe (&quot; &lt;&lt; i &quot;) = &quot; &lt;&lt; funk(i) &lt;&lt; endl;
} 

float funk (int zahl) 
{ 
float erg=0.0; 
cout&lt;&lt; &quot;erg1:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl1:&quot;&lt;&lt;zahl&lt;&lt;endl; 

if (zahl&gt;0) 
{
  erg = zahl+funk(zahl/3) / funk(zahl-1); 
}
else
{
  erg = 1.0;
}

cout&lt;&lt; &quot;erg2:&quot;&lt;&lt;erg &lt;&lt; &quot;zahl2:&quot;&lt;&lt; zahl&lt;&lt;endl; 

return erg; 
}
</code></pre>
<p>das erst mal, um es c++ nennen zu können...<br />
dann kannste jz ma das machen, was volkard gesagt hat <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="😛"
    /></p>
<p>bb</p>
<p>PS: Einrücken und ab und an auch mal auf die Leertaste wäre toll - also im Quelltext...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695945</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 14 Apr 2009 19:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 20:08:52 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<pre><code class="language-cpp">...
</code></pre>
</blockquote>
<p>das finde ich sehr schön, dem Michael112 so konstruktiv und schmerzlos den weg nach c++ zu weisen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1695951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695951</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 14 Apr 2009 20:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Tue, 14 Apr 2009 20:09:22 GMT]]></title><description><![CDATA[<p>Mit einer statischen Variable kannst du die Ausgabe so verschieben, dass die Reihenfolge der Aufrufe erkennbar wird. Im Code unten gekennzeichnet mit //*****</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;string&gt;
using namespace std;

float funk (int zahl); //defintion der Funktion für den Aufrauf
int main()
{
    int i;
    printf(&quot;\nEingabe&quot;);
    scanf (&quot;%d&quot;,&amp;i);
    cout&lt;&lt;&quot;i1:&quot;&lt;&lt;i&lt;&lt;endl;
    printf(&quot;\n \n Ausgabe (%d) = %f&quot;,i,funk(i));
    return 0;
}

float funk (int zahl)
{
    float erg=0.0;

    static int abstand=-2; // *****

    // Ausgabe
    abstand = abstand +2; // *****
    for (int n=0; n&lt;abstand; ++n)  // *****
        cout &lt;&lt; &quot; &quot;;
    cout &lt;&lt; &quot;funk(&quot; &lt;&lt; zahl &lt;&lt;&quot;)&quot; &lt;&lt; endl; // *****

    if (zahl&gt;0)
        erg =zahl+funk(zahl/3) / funk(zahl-1);
    else 
        erg=1.0;

    // Ausgabe 
    for (int n=0; n&lt;abstand; ++n)  // *****
        cout &lt;&lt; &quot; &quot;;
    cout &lt;&lt; &quot;return &quot; &lt;&lt; erg &lt;&lt; endl; //*****
    abstand = abstand - 2;  //*****

    return(erg);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1695952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1695952</guid><dc:creator><![CDATA[Hoho]]></dc:creator><pubDate>Tue, 14 Apr 2009 20:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit einer C-Quelltext Aufgabe on Wed, 15 Apr 2009 04:53:06 GMT]]></title><description><![CDATA[<p>Vielen Dank an alle!!!</p>
<p>Es ist zwar gerade noch etwas früh für mich, aber ich glaube es verstanden zu haben. Selbstverständlich werde ich demnächst auch mit space, tab etc arbeibten. Bin ja garnicht so.<br />
Was den C-Quellcode angeht, der war leider so vorgegeben.<br />
Vieleicht hätte ich mir wirklich die Mühe machen sollen ihn in C++ umzuschreiben. War wohl etwas Faul und dachte, was sich ja auch ziemlich bestätigt hat, dass Ihr mit beiden Sprachen zurecht kommt <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>Ich werde mich dann heute Abend nach der Arbeit gleich nochmla drüber her machen!!!</p>
<p>Thanks at all</p>
<p>Best regards</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696051</guid><dc:creator><![CDATA[Michael112]]></dc:creator><pubDate>Wed, 15 Apr 2009 04:53:06 GMT</pubDate></item></channel></rss>