Zinsberechnung
-
Enfi schrieb:
Und genau da liegt oder lag ja das Problem
Ich zähle in der for Schleife z.b. von 2010-2220 hoch,je nachdem wie ich das ganze definiert habe
danach startkapital mal zinssatz rechnen nur wie bekomme ich die aktuellen Werte für das Jahr dann mit in die Berechnung...ich steh grad vllt. auch etwas auf dem Schlauch...
Wozu brauchst du das bei der Rechnung denn? Bei dem was du oben gesagt hast, hast du doch auch bloß das Kapital vom vorherigen Jahr gebraucht. Und das kannst du dir doch einfach merken.
-
Du brauchst nur die Formel X mal zu berechnen das hat doch nichts mit dem Schleifenzähler zu tuen... Weist du was eine Selbstzuweisung ist?
-
Mh aber wenn ich doch vom Benutzer Startkapital,Zinssatz,Anfangsjahr und Endjahr abfrage oder die Laufzeit,muss ich doch irgendwie vom Anfangsjahr zum Endjahr hochzählen,oder ist das falsch?
Pseudocodemäßig hatte ich mir das so vorgestellt:
Startkapital mal zinssatz
Ergebniss mal Zinssatz..
Ergebniss daraus mal Zinssatz...
solange bis ich vom Startjahr zum Endjahr komme...ich denke der Ansatz ist richtig nur wie schreib ich das in den Text...,da liegt das Problem

-
HighLigerBiMBam schrieb:
Du brauchst nur die Formel X mal zu berechnen das hat doch nichts mit dem Schleifenzähler zu tuen... Weist du was eine Selbstzuweisung ist?
Nein,hab ich bisher noch nicht gehört

-
Richtig und wie sieht das als Code aus? Selbstzuweisung!
Edit: Ergebnis = Ergebnis * Zinssatz
-
Ich hätte das nun eigentlich so geschrieben:
#include <iostream>
using namespace std;int main() {
double Anfangskapital, Zinssatz, Endkapital;
int Startjahr, Endjahr;cout << "Bitte Startkapital eingeben" << endl;
cin >> Anfangskapital;
cout << "Bitte Zinssatz eingeben(Prozent)" << endl;
cin >> Zinssatz;
cout << "Bitte Startjahr eingeben" << endl;
cin >> Startjahr;
cout << "Bitte Endjahr eingeben" << endl;
cin >> Endjahr;for (int i = Startjahr; i <= Endjahr; i++) {
Endkapital = Anfangskapital * Zinssatz / 100;
Endkapital = Endkapital * Zinssatz / 100;cout << Endkapital << endl;
}
}nun gibt er mir aber auch für das Startjahr schon Zinsen aus,jedes Jahr den selben Betrag und was am komischsten ist,absolut gar nicht das,was ich berechnen will---
Eingabe:
Startjahr:2010
Endjahr:2015
Anfangskapital:2000.00
Zinssatz:2.00Ausgabe:
0.8
0.8
0.8
0.8
0.8
0.8...
-
Du weißt in jedem Schleifendurchlauf dem Endkapital = Anfangskapital * Zinsen zu, also kommt immer dieses Ergebnis + nächste Zeile mal Zinse herraus.
-
Ok,Leerzeichen zwischen den Operatoren und den Deklarationen entfernt nun gibt er mir wenigstens das richtige aus..nue leider immer noch mit den 2 anderen Problemen..
Was hat das Leerzeichen dazwischen nun eigentlich bewirkt,das ich da nix vernünftiges rausbekam?
-
Leerzeichen bewirkt nichts, was hast du macht? Code?
pls Codetags benutzten
-
Also ganz komisch...
er gab mir gerade eben für die angegebenen Werte oben drüber immer 0.8 aus..
leerzeichen entfernt gab er mir auf einmal 2080 aus...wobei dies ja an sich auch nicht richtig wäre...Der Code schaut aktuell immer noch so aus:
#include <iostream> using namespace std; int main() { double Anfangskapital, Zinssatz, Endkapital; int Startjahr, Endjahr; cout << "Bitte Startkapital eingeben" << endl; cin >> Anfangskapital; cout << "Bitte Zinssatz eingeben(Prozent)" << endl; cin >> Zinssatz; cout << "Bitte Startjahr eingeben" << endl; cin >> Startjahr; cout << "Bitte Endjahr eingeben" << endl; cin >> Endjahr; for (int i = Startjahr; i <= Endjahr; i++) { Endkapital=Anfangskapital*Zinssatz/100; Endkapital=Endkapital*Zinssatz/100; cout << Endkapital << endl; } }
-
Schau dir doch das mal an:
Endkapital=AnfangskapitalZinssatz/100;
Endkapital=EndkapitalZinssatz/100;Errechnet man so das Kapital für 1 Jahr?
Warum wird jedes Jahr das Ergebnis wieder auf das Anfangsjahr zurückgesetztß
Warum berechnest du pro Jahr die Zinsen doppelt?
-
#include <iostream> using namespace std; int main() { double Anfangskapital, Zinssatz, Endkapital; int Startjahr, Endjahr; cout << "Bitte Startkapital eingeben" << endl; cin >> Anfangskapital; cout << "Bitte Zinssatz eingeben(Prozent)" << endl; cin >> Zinssatz; cout << "Bitte Startjahr eingeben" << endl; cin >> Startjahr; cout << "Bitte Endjahr eingeben" << endl; cin >> Endjahr; for (int i = Startjahr; i <= Endjahr; i++) { Endkapital=Anfangskapital*Zinssatz/100; Endkapital=Endkapital + Anfangskapital; cout << Endkapital << endl; } }so hab ich das fürs erste jahr schonmal,aber wie gehts weiter?
-
Es wird immer schlimmer!
Nun hast du als Endergebnis das Doppelte des Anfangskapitals + 1 mal Zinsen vom Anfangskapital.
mal in einer Formel was du da gerade rechnest:
Kapital = Startkapital + Startkapital + Zinsen erstes Jahres
Muss aber lauten:
Kapital = Kapital + Zinsen von Kapital
-
Aber der erste Schritt ist doch richtig oder?
Kapital=Anfangskapital*Zinssatz/100;
damit hab ich die Zinsen nach einem jahr
und nun im nächste SchrittKapital=Kapital +Kapital*Zinssatz/100 ?
-
Wenn Kapital=Anfangskapital*Zinssatz/100 ist, wieviel ist dann Kapital + Kapital*Zinssatz/100?
-
Mh rein theoretisch hab ich mit der ersten Rechnung die Zinsen vom Startkapital berechnet!
und mit der zweiten die Zinsen der zinsen vom Startkapital plus die Zinsen...woah was ein Brainfuck,ich glaub es ist einfach nur super trivial und ich stell mich recht dumm an gerade
-
Toll wenn man mitten in der Nacht wegen sowas wach wird und weiterknobelt

Ich weiß genau was ich machen will..nur das verpacken in etwas sinvollen c++ code funktioniert nicht so recht..vielleicht hat ja jemand grad noch nen tipp parat..
-
Wenn es dich tröstet, wer immer die Aufgabe gestellt hat, versteht von Finanzmathematik nur unwesentlich mehr als du. Was da beschrieben wird, ist kein festverzinsliches Wertpapier, sondern eher ein Sparbuch - das Volumen eines festverzinslichen Wertpapiers ist konstant, und seine Wertentwicklung hängt ganz wesentlich von der Marktentwicklung ab. Als Anleger kriegst du jedes Jahr (bei jährlicher Zahlung) Geld quasi bar auf die Kralle, und es ist nicht gegeben, dass du die gezahlten Zinsen zum ursprünglichen Auszahlungskurs des Wertpapiers wieder in selbiges reinvestieren kannst.
Wie dem auch sei, ich denke, wonach du suchst, ist folgender Zusammenhang:
Wenn k = k + k * z, dann k = (1 + z) * k.
(Hierbei verstehe ich die Zinseingabe als Prozent, d.h. z = Eingabe / 100).
Für ein Jahr Laufzeit also:
e = (1 + z) * k
für zwei
e = (1 + z) * (1 + z) * k
und für n
e = (1 + z)n * k
In <cmath> gibt es eine Funktion std::pow, die Potenzen berechnet. Damit solltest du's eigentlich hinkriegen können.
-
Du hast 2 Möglichkeiten dies im Pseudocode darzustellen:
A: Mit zwei Variablen
Endkapital = Anfangskapital for(Anzahl Jahre) { Endkapital = Endkapital + Zinsen Endkapital //oder Endkapital = Endkapital * (1 + Zins/100) Ausgabe: Endkapital }B: Mit einer Variablen
for(Anzahl Jahre) { Anfangskapital = Anfangskapital + Zinsen Anfangskapital//oder Anfangskapital = Anfangskapital * (1 + Zins/100) Ausgabe = Anfangskapital }Dein Fehler ist die Zuweisung von Endkapital = Anfangskapital INNERHALB> der Schleife!