<?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 der While und do-while Schleife]]></title><description><![CDATA[<p>Guten Abend,<br />
Wir nehmen C++ in der Schule durch. Im Moment arbeiten wir an den Schleifen. While und do-while Schleifen um genau zu sein. Als hausaufgabe haben wir nun ein Programm zur Berechnung eines Tilgungsplans aufbekommen. Ich habe mittlerweile etliche Stunden drangesessen aber irgendwas scheint mit meinen Schleifen nicht zu stimmen. Die Formeln müssten Stimmen da sie vorgegeben waren, jedoch bin ich mir da nicht so sicher..</p>
<pre><code class="language-cpp">{ do
{
 // Bildschirm löschen
    system ( &quot;CLS&quot; );

    cout &lt;&lt; &quot;Kreditberechnung&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;================&quot; &lt;&lt; endl;
    cout &lt;&lt; endl;
    cout &lt;&lt; &quot;Kreditbetrag (in Euro): &quot; ;
    cin &gt;&gt; K;
    cout &lt;&lt; &quot;Disagio (in Prozent): &quot;;
    cin &gt;&gt; D;
    cout &lt;&lt; &quot;Kreditzins (in Prozent): &quot;;
    cin &gt;&gt; KreditZ;
    cout &lt;&lt; endl;

    cout &lt;&lt; &quot;Gew&quot; &lt;&lt; char(129) &lt;&lt; &quot;nschte monatliche Belastung (in Euro): &quot;;
    cin &gt;&gt; B;
    cout &lt;&lt; endl;
    monat=0;

 while (R&lt;=0)
{  
    // Berechnung 
    K=K-K*D/100;
    T=B-K*(KreditZ/(12*100));   
    R=K-T;
}
    monat=monat+1;
    RE=R*(-1);

    cout.precision (2);
    cout.setf (ios::fixed);

    // Ausgabe
    cout &lt;&lt; &quot;Ausgezahlter Kreditbetrag (in Euro): &quot; &lt;&lt; K &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Monatliche Belastung: &quot; &lt;&lt; B &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Laufzeit: &quot; &lt;&lt; monat &lt;&lt; &quot; Monate&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;R&quot; &lt;&lt; char(129) &lt;&lt; &quot;ckerstattung &quot; &lt;&lt; RE &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; endl;

    cout &lt;&lt; &quot;Eine weitere Berechnung ? (J/N)&quot;;
    cin &gt;&gt; Antwort;
}
while ((Antwort == 'j' ) || (Antwort == 'J'));
    return 0;
}
</code></pre>
<p>K= Kredit, D= Disagio, B= Belastung, T= Tilgung R= Restkredit, KreditZ= Kreditzins, Re= Rückerstattung.</p>
<p>Gebe ich beim Probedurchlauf Kreditbetrag 1000 ein, Disagio 2 %, Kreditzins 5.5 %, Belastung 50 Euro. Dann bekomme ich Als Ergebnisse: ausgezahlter Kreditbetrag: 980<br />
Belastung: 50<br />
Laufzeit 1 Monat<br />
Rückerstattung -934,49 Euro.<br />
Laufzeit sollte aber 22 Monate betragen und Rückerstattung -48,75 Euro.</p>
<p>Liegt der Fehler wirklich in der Schleife? Wenn ja würdet ihr mir bitte verate wo?<br />
Ich sag schon mal Dankeschön im Vorraus!<br />
Jolina</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/250422/probleme-mit-der-while-und-do-while-schleife</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 20:53:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/250422.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 17 Sep 2009 18:08:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 17 Sep 2009 18:08:50 GMT]]></title><description><![CDATA[<p>Guten Abend,<br />
Wir nehmen C++ in der Schule durch. Im Moment arbeiten wir an den Schleifen. While und do-while Schleifen um genau zu sein. Als hausaufgabe haben wir nun ein Programm zur Berechnung eines Tilgungsplans aufbekommen. Ich habe mittlerweile etliche Stunden drangesessen aber irgendwas scheint mit meinen Schleifen nicht zu stimmen. Die Formeln müssten Stimmen da sie vorgegeben waren, jedoch bin ich mir da nicht so sicher..</p>
<pre><code class="language-cpp">{ do
{
 // Bildschirm löschen
    system ( &quot;CLS&quot; );

    cout &lt;&lt; &quot;Kreditberechnung&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;================&quot; &lt;&lt; endl;
    cout &lt;&lt; endl;
    cout &lt;&lt; &quot;Kreditbetrag (in Euro): &quot; ;
    cin &gt;&gt; K;
    cout &lt;&lt; &quot;Disagio (in Prozent): &quot;;
    cin &gt;&gt; D;
    cout &lt;&lt; &quot;Kreditzins (in Prozent): &quot;;
    cin &gt;&gt; KreditZ;
    cout &lt;&lt; endl;

    cout &lt;&lt; &quot;Gew&quot; &lt;&lt; char(129) &lt;&lt; &quot;nschte monatliche Belastung (in Euro): &quot;;
    cin &gt;&gt; B;
    cout &lt;&lt; endl;
    monat=0;

 while (R&lt;=0)
{  
    // Berechnung 
    K=K-K*D/100;
    T=B-K*(KreditZ/(12*100));   
    R=K-T;
}
    monat=monat+1;
    RE=R*(-1);

    cout.precision (2);
    cout.setf (ios::fixed);

    // Ausgabe
    cout &lt;&lt; &quot;Ausgezahlter Kreditbetrag (in Euro): &quot; &lt;&lt; K &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Monatliche Belastung: &quot; &lt;&lt; B &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Laufzeit: &quot; &lt;&lt; monat &lt;&lt; &quot; Monate&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;R&quot; &lt;&lt; char(129) &lt;&lt; &quot;ckerstattung &quot; &lt;&lt; RE &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
    cout &lt;&lt; endl;

    cout &lt;&lt; &quot;Eine weitere Berechnung ? (J/N)&quot;;
    cin &gt;&gt; Antwort;
}
while ((Antwort == 'j' ) || (Antwort == 'J'));
    return 0;
}
</code></pre>
<p>K= Kredit, D= Disagio, B= Belastung, T= Tilgung R= Restkredit, KreditZ= Kreditzins, Re= Rückerstattung.</p>
<p>Gebe ich beim Probedurchlauf Kreditbetrag 1000 ein, Disagio 2 %, Kreditzins 5.5 %, Belastung 50 Euro. Dann bekomme ich Als Ergebnisse: ausgezahlter Kreditbetrag: 980<br />
Belastung: 50<br />
Laufzeit 1 Monat<br />
Rückerstattung -934,49 Euro.<br />
Laufzeit sollte aber 22 Monate betragen und Rückerstattung -48,75 Euro.</p>
<p>Liegt der Fehler wirklich in der Schleife? Wenn ja würdet ihr mir bitte verate wo?<br />
Ich sag schon mal Dankeschön im Vorraus!<br />
Jolina</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780671</guid><dc:creator><![CDATA[Jolina]]></dc:creator><pubDate>Thu, 17 Sep 2009 18:08:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 17 Sep 2009 18:31:24 GMT]]></title><description><![CDATA[<p>Vielleicht solltest du eher irgendwo fragen, wo man sich mit Krediten auskennt? Ich kann dir nur sagen, dass dein Programm genau das berechnet, was du da auch rausbekommst. Aber um den Fehler zu finden, müsste man sich</p>
<ol>
<li>auskennen wie die Berechnung von Disagio und so genau funktioniert und das wird wahrscheinlich niemand hier.</li>
<li>Selbst wenn der Fehler in der Rechnung offensichtlich ist, könnte man ihn wegen der kryptischen Abkürzungen nicht finden. Ich habe gerade mal versucht die Zeilen ohne Disagio nachzuprüfen, musste aber ständig in der Legende gucken, was was ist und habe entnervt aufgegeben.</li>
</ol>
<p>Wenn du uns die Formeln gibst, nach der die Rechnung erfolgen soll, können wir dir aber sagen, ob du sie richtig umgesetzt hast.</p>
<p>Und mindestens ein Fehler: Wenn der Anwender eine weitere Berechnung wünscht, wird diese nicht funktionieren, weil R beim zweiten Durchlauf immer noch den Wert vom vorherigen Durchlauf hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780678</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 17 Sep 2009 18:31:24 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 17 Sep 2009 18:36:56 GMT]]></title><description><![CDATA[<p>Die Rechnung mit dem Disagio wirdrichtig umgesetzt. Das Problem ist ja das er die Monate nicht mitzählt und ich nicht verstehe wo da der Fehler in meiner Schleife hängt.</p>
<p>Wenn der Benutzer noch eine Berechnung will startet das Programm ja wieder ganz neu, das heißt das er ja auch einen neuen Kredit eingeben muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780684</guid><dc:creator><![CDATA[Jolina]]></dc:creator><pubDate>Thu, 17 Sep 2009 18:36:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 17 Sep 2009 18:53:16 GMT]]></title><description><![CDATA[<p>Der Monat wird bei dir immer '1' sein, da du ja den Monat erst NACH der Schleife um 1 erhöhst.</p>
<p>Und bei der Rückerstattung (RE) hast du anscheinend ein ähnliches Problem.</p>
<p>Debugge doch einfach dein Programm oder laß dir in der Schleife die einzelnen Werte mal testweise ausgeben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780686</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 17 Sep 2009 18:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 17 Sep 2009 18:54:56 GMT]]></title><description><![CDATA[<p>Jolina schrieb:</p>
<blockquote>
<p>Die Rechnung mit dem Disagio wirdrichtig umgesetzt. Das Problem ist ja das er die Monate nicht mitzählt und ich nicht verstehe wo da der Fehler in meiner Schleife hängt.</p>
</blockquote>
<p>Das ist doch ganz einfach: monat wird innerhalb der Schleife nicht verändert. Soll monat=monat+1 vielleicht in der Schleife stehen?</p>
<blockquote>
<p>Wenn der Benutzer noch eine Berechnung will startet das Programm ja wieder ganz neu, das heißt das er ja auch einen neuen Kredit eingeben muss.</p>
</blockquote>
<p>Nein, tut es nicht. Bei 'j' springt das Programm dahin, wo es bei dir der Bildschirm gelöscht wird. R wird ab dieser Stelle nie geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1780687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1780687</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 17 Sep 2009 18:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Sat, 19 Sep 2009 18:19:39 GMT]]></title><description><![CDATA[<p>Also wenn der Monat in der Schleife steht bekomme ich auf keine andere Ausgabe.<br />
Jetzt sieht es folgendermaßen aus, aber die Ausgabe ändert sich nicht:</p>
<pre><code class="language-cpp">while (Restkredit&lt;=0)
{ 
    // Berechnung 
    ausgezahlterKredit=Kredit-Kredit*Disagio/100;
    Tilgung=Belastung-Kredit*(Kreditzins/(12*100));   
    Restkredit=Kredit-Tilgung;
    monat=monat+1;

    Rückerstattung=Restkredit*(-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1781522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781522</guid><dc:creator><![CDATA[Jolina]]></dc:creator><pubDate>Sat, 19 Sep 2009 18:19:39 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Sat, 19 Sep 2009 19:32:52 GMT]]></title><description><![CDATA[<p>AAAALSO ich hab mich auch grad ma dran gesetzt, ich hoffe du suchst immernoch nach ner lösung^^</p>
<p>deine whileschleife kann ja nur einmal ausgeführt werden, weil diese schleife ausgeführt wird solange der Restkredit kleiner gleich 0 ist.<br />
Wenn du jetzt mal alles mit dem taschenrechner nachrechnest wird der Restkredit nach der ersten rechnung den Betrag von 934,49€ sein. womit die schleifenbedingung nichtmehr erfüllt ist.<br />
Vielleicht hilft dir das ja^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1781547</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781547</guid><dc:creator><![CDATA[Xenos]]></dc:creator><pubDate>Sat, 19 Sep 2009 19:32:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Sat, 19 Sep 2009 20:30:03 GMT]]></title><description><![CDATA[<p>Also ich hab mal aus Langeweile und Interesse am Thema Kredit deinen Code studiert, ich glaube es nicht ein C++ Problem sondern eher ein Mathematisches:</p>
<p>Hier ist der lauffähige Code, gerechnet wird das Disagio über die gesamte Laufzeit fest, der Kreditzins wird monatlich berechnet:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt; // unter windows #include &lt;conio.h&gt; - für system()

using namespace std;

int main()
{
    double Kredit,Disagio,Belastung,Restkredit,Tilgung, Rueckerstattung , KreditZins;
    short Monat;
    char Antwort;
    do
    {
        // Bildschirm löschen
        // system ( &quot;clear&quot; ); // POSIX
        system (&quot;cls&quot;);
        cout &lt;&lt; &quot;Kreditberechnung&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;================&quot; &lt;&lt; endl;
        cout &lt;&lt; endl;
        cout &lt;&lt; &quot;Kreditbetrag (in Euro): &quot; ;                   cin &gt;&gt; Kredit;
        cout &lt;&lt; &quot;Disagio (Abschlag) (in Prozent): &quot;;           cin &gt;&gt; Disagio;
        cout &lt;&lt; &quot;Kreditzins (in Prozent): &quot;;                   cin &gt;&gt; KreditZins;
        cout &lt;&lt; &quot;----------------&quot; &lt;&lt; endl;
        cout &lt;&lt; &quot;Gewünschte monatliche Belastung (in Euro): &quot;; cin &gt;&gt; Belastung;
        cout &lt;&lt; endl;

        // Berechne jetzt den gesamt Kreditrahmen incl. des Disagios
        Restkredit= Kredit + Kredit * Disagio/100; // das Disagio ist Mehrwert der Bank und wird
                                                   // bei Kreditstellung voll berechnet, richtig ?
                                                   // allg. Bearbeitungskosten... ;)=

        // Berechne was dem Kunden tatsächlich ausgezahlt wird
        Kredit= Kredit - Kredit * Disagio/100; // das Disagio ist Mehrwert der Bank und wird
                                                   // bei Kreditstellung voll berechnet, richtig ?
                                                   // allg. Bearbeitungskosten... ;)=

        Monat=0;
        // Die Schleife solange durchlaufen bis kein Restkredit vorhanden ist
        while(Restkredit &gt; 0)
        {
            // Die relle Kredit-Tilgung ist Restkredit = Belastung  - monatl. KreditZins
            Tilgung     = Belastung - ( Restkredit * ( KreditZins/(12*100) ) );
            Restkredit -= Tilgung;  // Restkredit =  Restkredit - Tilgung
            Monat++;                // ein weiterer Monat-Laufzeit
        }
            Rueckerstattung = Restkredit * (-1); // zuviel bezahlt ? Wertmässiges saldo erfassen

            cout.precision (2);
            cout.setf (ios::fixed);

            // Ausgabe
            cout &lt;&lt; &quot;Ausgezahlter Kreditbetrag (in Euro): &quot; &lt;&lt; Kredit &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
            cout &lt;&lt; &quot;Monatliche Belastung: &quot; &lt;&lt; Belastung &lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
            cout &lt;&lt; &quot;Laufzeit: &quot; &lt;&lt; Monat &lt;&lt; &quot; Monate&quot; &lt;&lt; endl;
            cout &lt;&lt; &quot;Restkredit: &quot; &lt;&lt; Restkredit &lt;&lt; &quot; Euro,  daher eine Rückerstattung von: &quot; &lt;&lt; 
                     Rueckerstattung&lt;&lt; &quot; Euro&quot; &lt;&lt; endl;
            cout &lt;&lt; endl;

            cout &lt;&lt; &quot;Eine weitere Berechnung ? (J/N)&quot;;
            cin &gt;&gt; Antwort;
    } while ((Antwort == 'j' ) || (Antwort == 'J'));

    return 0;
}
</code></pre>
<p>Als Ausgabe erhalte ich folgendes:</p>
<pre><code>Kreditberechnung
================

Kreditbetrag (in Euro): 1000
Disagio (Abschlag) (in Prozent): 2
Kreditzins (in Prozent): 5.5
----------------
Gewünschte monatliche Belastung (in Euro): 50

Ausgezahlter Kreditbetrag (in Euro): 980.00 Euro
Monatliche Belastung: 50.00 Euro
Laufzeit: 22 Monate
Restkredit: -26.64 Euro,  daher eine Rückerstattung von: 26.64 Euro

Eine weitere Berechnung ? (J/N)
</code></pre>
<p>Wenn das Disagio monatlich berechnet werden soll muss dies natürlich in der while-Schleife geschehen. <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/1781561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1781561</guid><dc:creator><![CDATA[DeepCopy]]></dc:creator><pubDate>Sat, 19 Sep 2009 20:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der While und do-while Schleife on Thu, 24 Sep 2009 13:44:12 GMT]]></title><description><![CDATA[<p>Hallo,<br />
vielen Dank für deine Hilfe. Jetzt wo ich es sehe fällt mir der Fehler auch auf. Allerdings ist glaub ich noch ein Fehler in der Berechnung der &quot;Rückerstattung&quot; oder der Leherer hat einen Fehler gemacht.<br />
Morgen früh werde ich es erfahren. Ich werde dir seine Lösungen dann gerne einmal präsentieren.</p>
<p>Ein ganz großes Danke für die Hilfe!<br />
Liebe Grüße,<br />
Jolina</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1783590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1783590</guid><dc:creator><![CDATA[Jolina]]></dc:creator><pubDate>Thu, 24 Sep 2009 13:44:12 GMT</pubDate></item></channel></rss>