Verständnisfrage



  • Hallo ich bin noch neu im Erlenen der C Sprache und habe eine Verstädnisfrage zum folgenden Code, der funktioniert einwandfrei, aber habe dazu eine Frage. Ich bedanke mich schon mal im Voraus. ( Frage unterm Code)
    int main()
    {
    float kapital;
    float jahre;
    float zinssatz;
    float jahr;

    printf("Bitte geben Sie ihr Startkapital an");
    scanf("%f", &kapital);

    printf("Bitte geben Sie den Zinssatz an");
    scanf("%f", &zinssatz);

    printf("Bitte geben Sie die Laufzeit der Jahre an\n");
    scanf("%f", &jahre);

    for (jahr = 1; jahr <= jahre; jahr= jahr +1)

    {
    kapital = (1 + zinssatz / 100) * kapital;
    }

    printf ("das abschliessende kapital: %.2f\n", kapital);

    return 0;
    }

    Der folgende Code berrechnet mein eingegebenes Kapital z.B 5000 mit dem eingegebenen Zinssatz z.B. 3.80 mit den eingegebenen Jahren z.B. 2 . Daraus kommt dann 5387,22.
    Meine Frage wieso nimmt das Programm die (1+ 3,80/100) hoch zwei und nicht das Kapital hoch zwei ? Ich kann am Programm die Verbindung zwischen Jahre und (1 + 3,80/100 nicht erkennen.



  • Mit der Zeile

    kapital = (1 + zinssatz / 100) * kapital;
    

    weist du kapital einen neuen Wert zu.
    Damit (mit dem neuen Wert) wird dann im nächsten Schleifendurchlauf weiter gerechnet.

    Hoch Zwei hast du auch nicht. Das sind kapital1,038



  • Wieso sollte er das Kapital potenzieren?
    Ich denke du gehst von der "normalen" Zineszinsformel aus:

    Kn=K0(1+p100)nK_{n} = K_{0} \cdot (1+ \frac{p}{100} )^{n}

    Dann stimmt doch alles?



  • marvan556 schrieb:

    for(jahr = 1; jahr <= jahre; jahr = jahr +1)
    {
        kapital = (1 + zinssatz / 100) * kapital;
    }
    

    Ich kann am Programm die Verbindung zwischen Jahre und (1 + 3,80/100 nicht erkennen.

    Die Verbindung ist die for - Schleife. Die Anweisung

    kapital = (1 + zinssatz / 100) * kapital;
    

    wird mehrmals hintereinander ausgeführt, und zwar abhängig von der Anzahl der eingegebenen Jahre.


Anmelden zum Antworten