Hallo,
kurze Info am Rande, in der Schule programmieren wir mit Delphi. Da ich Wirtschaftinformatik habe programmieren wir Fachgerechte Programme.
Beim Folgenden Programm möchte ich gerne bei einem Konto Betrag(Kapital: siehe Code), auf welches jährlich Zinsen in Prozent(Zinssatz: siehe Code) berechnet werden wissen, wie lange es dauerd bis ein Wunschbetrag, den ich definiere erreicht ist.
Beispiel:
Bild
{* Die Ausgabe wäre so als Frage zu stellen:
Wie lange dauerd es bis ein Betrag von mindestens oder der nächst höherer betrag "120" erreicht ist?
Wie viel betragen die Zinsen, die Anfallen?
Welcher Betrag kommt da raus?
*}
Delphi-Quellcode:
procedure TFormZinsrechnung.ButtonRechnenClick(Sender: TObject);
var Kapital, Zinsen, Wunschbetrag:double;
Jahre, Zinssatz: integer;
begin
TRY if StrToFloat (EditKapital.Text)< StrToFloat (EditWunschbetrag.Text)
then begin
Kapital := StrToFloat (EditKapital.Text);
Wunschbetrag := StrToFloat (EditKapital.Text);
Zinssatz := StrToInt (EditZinssatz.Text);
Jahre := 0;
REPEAT
Zinsen := Kapital/100*Zinssatz;
Jahre := Jahre+1;
Kapital := Zinsen+Kapital;
UNTIL Kapital>=Wunschbetrag;
EditNKapital.Text := FloatToStr (Kapital);
EditJahre.Text := IntToStr (Jahre);
EditZinsen.Text := FLoatToStr (Zinsen);
end
else
MessageDlg('Custom dialog',mtCustom,
[mbYes,mbAll,mbCancel], 0);
EXCEPT ShowMessage('Custom dialog');
END;
end;
Ich verstehe einfach nicht wieso für ihn die Bedingung nach einem Mal schon erfüllt ist? Denn Until sagt ja aus: "Sobald Kapital größer gleich dem Wunschbetrag ist, dann stoppe".