Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu Zinsberechnung [N00B] (https://www.delphipraxis.net/53404-frage-zu-zinsberechnung-%5Bn00b%5D.html)

Pr0gramm 15. Sep 2005 16:41


Frage zu Zinsberechnung [N00B]
 
Hallo,

ich benutze seit einer Woche Delphi (Schule), bin also noch absoluter Anfänger.

Nun habe ich mir zu Hause überlegt, dass ich doch mal ein Programm zur Zinsberechnung schreiben könnte. Ich habe mir im Internet noch ein wenig Wissen dazu angelesen.
Allerdings kann das Programm nun leider nur Zinssummen richtig ausrechnen, bei denen der Zinssatz mindestens 100% beträgt :roll:
Bei anderen Zinssätzen wird als Endkapital einfach das Startkapital wieder ausgegeben.

Der Code:

Delphi-Quellcode:
procedure TForm1.btEndeClick(Sender: TObject);
begin
close;
end;


procedure TForm1.Button1Click(Sender: TObject);

var Kapital, Zinssatz, Laufzeit : integer;
    Endkapital : real;


begin
Kapital := StrToInt (edKapital.Text);
Zinssatz := StrToInt (edZins.Text);
Laufzeit := StrToInt (edLaufzeit.Text);
EndKapital := StrToFloat (lbKapital.Caption);


Endkapital := Kapital * (Power ( (1 + (Zinssatz div 100)), Laufzeit));


lbKapital.Caption := FloatToStr (Endkapital);
lbJahre.Caption := IntToStr (Laufzeit);
end;
Ich denke mal, dass das Problem in der Zahlenausgabe liegt, bin mir aber nicht ganz sicher...

Danke im Vorraus.

Treffnix 15. Sep 2005 16:49

Re: Frage zu Zinsberechnung [N00B]
 
Das dürfte auch über 100 nicht richtig rechnen.

div rundet das Ergebnis. nimm stattdessen /

kiar 15. Sep 2005 16:54

Re: Frage zu Zinsberechnung [N00B]
 
hallo ausserdem solltest du auch den Zinssatz real machen.

zum testen, alles real machen und Treffnix / statt div und schon geht es.

raik

Grishnak 15. Sep 2005 17:33

Re: Frage zu Zinsberechnung [N00B]
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var Kapital, Zinssatz, Laufzeit : integer;
    Endkapital : real;


begin
Kapital := StrToInt (edKapital.Text);
Zinssatz := StrToInt (edZins.Text);
Laufzeit := StrToInt (edLaufzeit.Text);
EndKapital := StrToFloat (lbKapital.Caption); // <-----  Wozu brauchst du diese Zeile?


Endkapital := Kapital * (Power ( (1 + (Zinssatz / 100)), Laufzeit));

lbKapital.Caption := FloatToStr (Endkapital);
lbJahre.Caption := IntToStr (Laufzeit);
end;
Es reicht, wenn du das 'div' durch ein '/' ersetzt. Damit wird die ganze Berechnung ins real-Format konvertiert.
Dann musst du Kapital, Zinssatz und Laufzeit nicht auch als real deklarieren (integer ist vielleicht in der Aufgabenstellung vorgegeben!?)

Thanatos81 15. Sep 2005 17:33

Re: Frage zu Zinsberechnung [N00B]
 
Noch was nebenbei, schau dir mal StrToFloatDef und StrToIntDef an ;-)

Pr0gramm 15. Sep 2005 18:41

Re: Frage zu Zinsberechnung [N00B]
 
Danke euch allen, jetzt geht es. :???:

Ich habe doch noch alle Werte als "real" deklariert, damit man beispielsweise auch Zinssätze von x,x oder z.B. 1,5 Jahre eingeben kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz