Ja schon, nur rechnest du immer mit dem gleichen Startkapital. Das erhöhte Kapital pro Jahr fließt ja gar nicht mit ein. Deswegen auch die Meldung vom Compiler, dass i nie benutzt wird.
Es müsste so aussehen:
Delphi-Quellcode:
function EndKapital(StartKapital, Zins: Double; Jahre: Integer): Double;
var
i: Integer;
EndKapital: Double;
begin
if Zins <= 0
then
Raise ERangeError.Create('
Zins ist kleiner/ gleich Null');
if StartKapital <= 0
then
Raise ERangeError.Create('
Startkapital ist kleiner/gleich Null');
if Jahre < 0
then
Raise ERangeError.Create('
Jahre ist kleiner Null');
EndKapital := 0.0;
for i := 1
to Jahre
do
EndKapital := EndKapital*(Zins/100)+StartKapital;
Result := EndKapital;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ShowMessage(FloatToStr(EndKapital(100, 2.3, -5)));
// 101,120413075641343
except
on E:
Exception do
ShowMessage(E.
Message);
end;
end;
Wobei ich mir bei der Formel nicht sicher bin, denn mit der Formel aus der Wikipedia bekomme ich den auskommentierten Wert raus.
Und was deine Fehler angeht, das sind einfache Syntaxfehler. Guck deinen Quelltext einfach noch mal genau an.
Und die Delphi-Tags bewirken, dass der Quelltext formatiert und somit leserlicher dargestellt wird.