![]() |
AW: Zinsberechnung mit For Do Schleife
Zitat:
|
AW: Zinsberechnung mit For Do Schleife
Zitat:
|
AW: Zinsberechnung mit For Do Schleife
entschuldigt die antwort aber der quelltext ist mir n bisschen zu schwer, dafür fehlt mir einfach das wissen, könnt ihr vlt. mein so bearbeiten das er stimmt?? danke
|
AW: Zinsberechnung mit For Do Schleife
Wer lesen kann, ist klar im Vorteil:
Zitat:
|
AW: Zinsberechnung mit For Do Schleife
In Luckies Code ist mMn ein Denkfehler (mathem. gesehen):
Das Endkapital im nullten Jahr ist das Startkapital. Somit die Zeile
Delphi-Quellcode:
ändern in
EndKapital := 0.0;
Delphi-Quellcode:
EndKapital := Startkapital;
Anschließend ist in jedem Jahr das (neue) Startkapital das Endkapital des Vorjahres, somit:
Delphi-Quellcode:
ändern zu:
for i := 1 to Jahre do
EndKapital := EndKapital*(Zins/100)+StartKapital;
Delphi-Quellcode:
dann sollte es doch stimmen??? Zinsrechnung ist schon so lange her...
for i := 1 to Jahre do
begin Startkapital:=Endkapital; EndKapital := EndKapital*(Zins/100)+StartKapital; end; |
AW: Zinsberechnung mit For Do Schleife
Der Denkfehler stammt aber nicht von mir. Ich habe einfach nur den Code übernommen.
Damit kommt jetzt auch was sinnvolles raus:
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 := StartKapital; for i := 1 to Jahre do begin Startkapital:=Endkapital; EndKapital := EndKapital*(Zins/100)+StartKapital; end; Result := EndKapital; end; procedure TForm1.Button1Click(Sender: TObject); begin try ShowMessage(FloatToStr(EndKapital(100, 2.3, 5))); except on E: Exception do ShowMessage(E.Message); end; end; |
AW: Zinsberechnung mit For Do Schleife
Wenn man für "Jahre" einen vorzeichenlosen Typ nimmt, spart man eine Prüfung ein. Und die Variable EndKapital ist überflüssig, da sie genauso wie die Funktion heißt und somit als Result fungiert (wie in seligen TP-Zeiten).
|
AW: Zinsberechnung mit For Do Schleife
Oh, ist mir gar nicht aufgefallen mit dem Funktionsnamen. Und mit dem vorzeichenlosen Integer ist das so eine Sache. Denn was passiert, wenn der Benutzer einen negativen Wert eingibt? ;)
Delphi-Quellcode:
function ZinsesZins(StartKapital, Zins: Double; Jahre: Integer): Double;
var i: Integer; 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'); Result := StartKapital; for i := 1 to Jahre do begin Startkapital := Result; Result := Result*(Zins/100)+StartKapital; end; end; |
AW: Zinsberechnung mit For Do Schleife
mMn kann man die Prüfungen ganz weglassen.
Negativen Zinssatz nennt man Inflation und negatives Startkapital entspricht dem Inhalt meines Bankkontos. :-D Da das erst mein 4. oder 5. Post hier ist und ich die Sitten noch nicht so kenne, hoffe ich das gelegntlich etwas Humor mal erlaubt ist :?: |
AW: Zinsberechnung mit For Do Schleife
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 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 by Thomas Breitkreuz