![]() |
Annuitätendarlehn programmieren
Hallo,
ich habe ein Programm erstellt, wo nach Eingabe der Schulden, des Zinsens, der Tilgung und der Jahre, die Schulden nach einer bestimmter Jahresanzahl errechnet werden. Hier der Quelltext:
Delphi-Quellcode:
meine Fragen:
procedure TForm1.BBerechnenClick(Sender: TObject);
var kb,ts,zs,Ekb,Z,T,An,Ekb1,P: real; var n,i,a:integer; begin kb:=strtofloat(Edit1.Text); zs:=strtofloat(Edit2.Text); ts:=strtofloat(Edit3.Text); n:=strtoint(Edit4.Text); //berechnen a:=0; // variable Z:=kb*zs/100; // Zinsenberechnung T:=kb*ts/100; // Tilgung An:=Z+T; // Annuität Ekb:=kb-T; // Endkapital am Jahresende a:=a+1; // Anzahl der Jahre stringgrid1.Cells[0,1]:=inttostr(a); stringgrid1.Cells[1,1]:=floattostrf(kb,fffixed,10,2); // Ausgabe der Daten in einer Tabelle stringgrid1.Cells[2,1]:=floattostrf(Z,fffixed,10,2); stringgrid1.Cells[3,1]:=floattostrf(T,fffixed,10,2); stringgrid1.Cells[4,1]:=floattostrf(An,fffixed,10,2); stringgrid1.Cells[5,1]:=floattostrf(Ekb,fffixed,10,2); kb:=Ekb ; // Kredibetrag wird Endkreditbetrag zugewiesen // neue Schleife (es beginnt eine andere Rechnung) For i:=1 TO n-1 DO begin P:=Ekb1+Z; // endkapital + zinsen Z:=Ekb*zs/100; // zinsenberechnung T:=An-Z; // tilgung An:=Z+T; // annuität Ekb1:=Ekb-T; // endkapital neu a:=a+1; // variable für Ausgabe (also Jahre) stringgrid1.Cells[0,a]:=inttostr(a); stringgrid1.Cells[1,a]:=floattostrf(Ekb,fffixed,10,2); stringgrid1.Cells[2,a]:=floattostrf(Z,fffixed,10,2); stringgrid1.Cells[3,a]:=floattostrf(T,fffixed,10,2); stringgrid1.Cells[4,a]:=floattostrf(An,fffixed,10,2); stringgrid1.Cells[5,a]:=floattostrf(Ekb1,fffixed,10,2); Ekb:=Ekb1 ; end; //ausgabe stringgrid1.RowCount:=n+1 ; end; 1. was muss ich machen, dass ausgerechnet wird (ohne eingabe der jahre), wann die schulden abbezahlt sind? 2. die schleife soll aufhören, wenn P kleiner als die im vorherigen Jahr vorzufindene Annuität ist. Und die Annuität beträgt dann: das letzte anfangskapital + Zinsen(damit bei der letzten ausgabe des endkapitals '0' erscheint,da P - P gerechnet wird). Wie funktioniert dies? Ich hoffe das Ihr eine Lösung dafür wisst. Ich bedanke mich für eure Hilfe !!! |
Re: Annuitätendarlehn programmieren
Du solltest dir zuerst die mathematischen Formeln und Hintergründe aneignen:
![]() Dann solltest du diese Formeln als Delphi Funktionen in den Sourcecode aufnehmen.
Delphi-Quellcode:
Ist dir aufgefallen, dass du sehr oft Folgendes geschrieben hast: ?
function berechneAnuitaet(S0, i:Extended; n : integer):Extended;
Delphi-Quellcode:
Daraus kann man (sollte man !!) ebenfalls eine Funktion machen.
floattostrf(x,fffixed,10,2)
|
Re: Annuitätendarlehn programmieren
Was ist denn floattostrf, wenn nicht eine Funktion?
|
Re: Annuitätendarlehn programmieren
Shima meint sowas:
Delphi-Quellcode:
Und anstatt FloattStrF aufzurufen, rufst Du eben FTSF auf. Hat den Vorteil, wenn sich einmal ein Paramter (die 10 oder die 2) ändert, gleich alle anderen angepasst sind. Dann brauchst Du das eben nur einmal ändern und nicht 10 mal.
function FTSF(Value: Double): String;
begin Result := floattostrf(Value,fffixed,10,2); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz