Berechnung mit Zinseszins

Gefragt war nach einem Programm, welches ausgibt, nach welchen Jahren man mit einem bestimmten Sparbeitrag und gewähltem Zins man ein bestimmtes Kapital angespart hat.
Sieht so aus und funktioniert.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
float k,p,j,z,s,e;

// k=Kapital, p=Prozentsatz, j=Jahre, z=Zinsen s=Sparbeitrag, e=Endbetrag

printf("\n WIE LANGE MUSS MAN SPAREN?\n");
printf("\n Jaehrlicher Sparbetrag ");
scanf("%f", &s);
printf("\n Gewuenschter Endbetrag ");
scanf("%f", &e);
printf("\n Zinssatz in %% ");
scanf("%f", &z);

p=1+z/100;
j=log(e/s*(p-1)+1)/log(p)-1;

printf("\n%f\n",j);

system("PAUSE");
return 0;
}


Da das so gut geklappt hat, wollte ich aus lauter Eife gleichr noch eine Schleife einbauen, die das Kapital im Jahr x anzeigt.
Ich will übrigens nicht gleich das fertige Programm, bloss einen Ansatz.
Mein Schrott ist übrigens im Anhang zu Bestaunen :D
 
Wenn ich das richtig verstehe:

Kn=Ko*(1+(p/100)^n

d.h.

jahre=10
kapital=1000
zins=5
for jahr=1 to jahre:
print "Jahr", jahr, ":", kapital*(1+(zins/100)^jahr, "Euro"
 
So nicht ganz richtig.
Die Schleife soll zusätzlich die Jahre und das Kapital anzeigen.
Nicht bloss das Jahr, wo ich meine erste Million verdient habe.
 
Dann schau dir meinen Pseudocode nochmal an ;)

//edit: Es wird folgendes ausgegeben:

Jahr 0 : 1000.000000 Euro
Jahr 1 : 1050.000000 Euro
Jahr 2 : 1102.500000 Euro
Jahr 3 : 1157.625000 Euro
Jahr 4 : 1215.506250 Euro
Jahr 5 : 1276.281563 Euro
Jahr 6 : 1340.095641 Euro
Jahr 7 : 1407.100423 Euro
Jahr 8 : 1477.455444 Euro
Jahr 9 : 1551.328216 Euro
Jahr 10 : 1628.894627 Euro

Und dies entspricht deine Anfrage auf eine Schleife die folgendes erledigt:

"eine Schleife einbauen, die das Kapital im Jahr x anzeigt."
 
Ach so.
Ich dachte, Du meinst den Code ohne Schleife. Sorry.

Dann werde ich es mal versuchen. Scheint doch nicht so einfach zu sein ?( .
Ich nehme eine "for-Schleife". Richtig?
Meine Entscheidung wäre auf eine "do-while" Schleife gefallen. Dem Gefühl nach.
 
Du kannst es sowohl mit einer for-Schleife(siehe Pseudocode 1. Post von mir) als auch mit einer while Schleife machen. Da du nur einen Tipp und nicht gleich den ganzen Ansatz wolltest werd ich dir den Rest wohl selber überlassen. :)
 
Fast geschafft. :D
Muss ja langsam vorwärts gehen. Zwei Schleifen fehlen noch, aber das ist Kleinarbeit. Sieht nicht so elegant aus, aber mein Editor lässt irgendwie kein Einrücken zu.
Einrücken doch geschafft.

Grosser Dank an benediktibk.




Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
float k,p,j,z,s,e,i,c;
int jahr;

// k=Kapital, p=Prozentsatz, j=Jahre, z=Zinsen s=Sparbeitrag, e=Endbetrag, c= Kapital im Jahr x

printf("\n WIE LANGE MUSS MAN SPAREN?\n");
printf("\n WIE LANGE MUSS MAN SPAREN?\n");
do {
    printf("\n Jaehrlicher Sparbetrag   ");
    scanf("%f", &s);
} while (s<=0);
printf("\n Gewuenschter Endbetrag   ");
scanf("%f", &e);
printf("\n Zinssatz in %%   ");
scanf("%f", &z);


// Berechnung

p=1+z/100;
j=log(e/s*(p-1)+1)/log(p)-1;

printf("\n%f\n",j);
// while Schleife für ersparten Betrag pro Jahr
//Daten für die Schleife initialisieren

jahr=0; //laufendes jahr, beginn bei 0
c=s;    //angespartes kapital, fängt mit einem sparbetrag s an
        //s,e,p wurden oben festgelegt

printf("\n Jahr: %i,            Kapital: %.2f EUR",jahr,c); 
while(e>c)                      //abbruchbedingung
{ 
        jahr++;
        c=c*p+s; //angespartes kapital wird verzinst und um einen sparbetrag vergrössert
        printf("\n Jahr: %i,            Kapital: %.2f EUR",jahr ,c);  
}
 printf("\n");         


  system("PAUSE");	
  
  return 0;
}
 
Zurück
Oben