Schulaufgabe (Zinsrechnung)

Ich brüte seit gestern über eine Schulaufgabe und finde keine Lösung...

Das Programm soll in C++ geschrieben werden. Es soll nachher wie folgt in der Konsole Aussehen. Werte die Eingegeben werden müssen sind unterstrichen:


Beispiel:
-----------------------------------------------------------

Anfangskapital: 100
Zinssatz: 10
Laufzeit Jahre: 3

Kapital am Ende von Jahr 1: 110
Kapital am Ende von Jahr 2: 121
Kapital am Ende von Jahr 3: 133,1

Das Kapital erhoehte sich waehrend der Laufzeit um 33.1 Euro

Drücken Sie eine beliebige Taste....

-------------------------------------------------------------

Bitte denkt nicht von mir, dass ich euch die Arbeit überlassen will und ich dann nachher nur noch stur abschreibe und mich freue, dass es läuft. Davon habe ich nichts.

Mein stand in der Aufgabe: (bitte bedenkt das ich erst seit 3 wochen c++ habe)

Anfangskapital (K0), Zinsatz (q) und Laufzeit (n) als Integer Deklariert.
Ich würde eine kopfgesteuerte Schleife programmieren die n-mal durchlaufen wird und dabei das n-te Jahr berechnet und ausgibt. Am ende jeden Durchlaufs wird n um 1 erhöht.

Meine Probleme: Wie schreibe ich die Formel in C++ (Kn=K0*q^n) Hab mir ergooglet das es eine Funktion pow (basis, eponent) gibt, die durch "#include <math.h> zur verfügung steht.

Könnte ihr mir weiterhelfen?
 
Da du das Kaptial für jedes Jahr ausgeben musst, kannst du das ganze rekursiv berechnen, und auf pow() verzichten. Nach dem Schema:

kapital = kaptial * zinssatz;

Falls du gar nicht weiterkommst, ich hab das ganze Prog mal komplett geschrieben und angehängt.

Code:
#include <iostream>
using namespace std;

int main()
{
    int laufzeit, jahr;
    float kapital, kapitalNeu, zinssatz;

    cout << "Anfangskaptial: ";
        cin >> dec >> kapital;
    cout << "Zinssatz: ";
        cin >> dec >> zinssatz;
    cout << "Laufzeit: ";
        cin >> dec >> laufzeit;
    cout << endl;

    zinssatz = zinssatz/100+1;
    kapitalNeu = kapital;

    for(int i=1; i<=laufzeit; i++){
        kapitalNeu = kapitalNeu * zinssatz;
        cout << "Kaptial am Ende von Jahr " << i << ":\t" << kapitalNeu << endl;
    }

    cout << endl << "Das Kaptial erhoete sich waehrend der Laufzeit um " << (kapitalNeu - kapital) << " Euro" << endl << endl;
    cout << "Druecken sie Enter ...";

    cin.sync(); cin.get();

    return 0;
}
 
am besten du schreibst komplett den quelltext mal hier hin, den du bereits hast. zu der formel hast du doch eigentlich schon alles was du brauchst. du könntest z.b.

exponent = pow(q,n);
kn = k0 * exponent;

machen. aber so wie du deine ausgabe brauchst, musst du die formel doch eigentlich gar nicht anwenden, da du doch direkt das endergebnis bekommst und nicht die ergebnisse für die einzelnen jahre.

da würde ich her in ner schleife immer das aktuelle kapital plus zinsen rechnen, da die exponentialfunktion meist recht rechenintensiv ist.

also eher so (eher pseudocode als korrekte c++ syntax!):

Code:
k0 = 100;
q = 10;
n = 3;
k_akt = k0;

for (int i = 0; i < n; i++)
{
     k_akt += k_akt*q/100;
    dann deine ausgabe;
}

dann noch ausgabe von k_akt - k0


--- edit ---

na toll, war wohl einer schneller ;)
 
hmmm, magst du nicht mal ein wenig selber recherchieren? gucke doch einfach, bei welchem typ das verwendet wird (string) und google mal selber oder schau mal in einem entsprechenden buch nach. wenn wir hier alles verraten lernst du doch nix. daher hatte ich das ganze auch eigentlich nur in pseudocode gemacht ;)

ach und es heißt \t das ist wichtig!!! gibt zum beispiel auch noch \n (so als tip)
 
\n kenn ich schon. das macht ja nen seitenumbruch. Ich hab gestern und heute schon gegooglet das es raucht, glaub mir^^.

Ich war echt am verzweifeln. Ich will es ja lernen, macht mir auch super spaß. Aber ich empfinde es schon als persönliche Niederlage hier um Hilfe zu bitten....

--edit--

apropos Buch, kannst mir ein gutes empfehlen? Kann man da auch mist kaufen?
 
na wenn du \n kennst (ist übrigens nur ein zeilenumbruch, kein seitenumbruch), dann wirst du \t auch selber rausfinden ;)

und naja, du solltest es nicht als niederlage ansehen, wenn du um hilfe bitten musst. niemand ist allwissend, es muss also jeder immer mal wieder fragen. letztendlich hast du aber selber viel mehr davon, wenn du deine konkreten zwischenergebnisse präsentierst, so dass man genau darauf eingehen kann.

zu dem buch kann ich dir selber leider nichts sagen, aber die suchfunktion hätte dir dies hier gefunden: c++ Tutorial
 
Ich hab hier noch "Die C++ Programmiersprache" von Bjarne Stroustroup rumliegen. Das hatte mir am Anfang gut geholfen... "Thinking in C++" ist auch gut...
 
#include <iostream>
using namespace std;
#include <math.h>

double kap;
double p;
double n;
double kapneu;
double kapdiff;

int main()
{
// Eingaben
cout << "Anfangskapital" << "\t" << " = ? ";
cin >> kap;
cout << "Zinssatz (%)" << "\t" << " = ? ";
cin >> p;
cout << "Laufzeit (Jahre) = ? ";
cin >> n;
// Zinsformel = Kn = K0 * ( 1 + p/100)^n , math.h exponential: pow(zahl, exponent)
cout << "\n";

for(int i=1;i<=n;i=i+1){
kapneu = kap * (pow(1+p/100, i));
cout << "Kapital am Ende von Jahr "<<i<<": "<<kapneu<< " EURO" << "\n";
}

kapdiff = kapneu - kap;
cout << "\n" << "Das Kapital erhoehte sich waehrend der Laufzeit um "<<kapdiff<<" EURO\n\n";
return 0;
}

das is genau die loesung, sach ma biste auf der FH Aachen im ersten Semester beim Siepmann? ;P

Link zur Aufgabenstellung:
Praktikumsaufgabe Nr. 3


Meine "Nachschlage"werke sind:

http://de.wikibooks.org/wiki/C++-Programmierung


und noch eine für grundlagen:
http://www.highscore.de/cpp/einfuehrung/titelseite.html
 
Zurück
Oben