![]() |
Zählschleife
Delphi-Quellcode:
Ich möchte mit dem Programm zu einem Startguthaben monatliche konstante Beiträge zahlen und die Zinsen sollen immer am ende des Jahres abgerechnet werden.
var
Form4: TForm4; Startguthaben, Endguthaben, Zinsen, monatlicherBetrag, Zinssatz, laufvariable: real; implementation {$R *.dfm} procedure TForm4.Button1Click(Sender: TObject); var b, Jahre, a: integer; begin Zinsen := 0; Startguthaben := StrToFloat(Edit1.Text); zinssatz := StrToFloat(Edit2.Text); monatlicherBetrag := StrToFloat(Edit3.Text); For b := 1 to Jahre do begin; For a := 1 to (12 * Jahre) do begin; Startguthaben := Startguthaben + monatlicherBetrag; Zinsen := 1/12 * Startguthaben/100 * Zinssatz + Zinsen; Endguthaben := Zinsen + Startguthaben; end; end; Label2.Caption := FloatToStr(Endguthaben); Label1.Caption := FloatToStr(Zinsen); end; end. Wie kann ich das machen das die Zinsen am Ende des Jahres erst wieder dazu addiert werden das ich dann weiterrechnen kann? bitte um hilfe |
Re: Zählschleife
Moin, Moin,
vielleicht die Zinsen in der äußeren Schleife addieren?
Delphi-Quellcode:
For b := 1 to Jahre do
begin; For a := 1 to (12 * Jahre) do begin; Startguthaben := Startguthaben + monatlicherBetrag; Zinsen := 1/12 * Startguthaben/100 * Zinssatz + Zinsen; //Endguthaben := Zinsen + Startguthaben; end; Endguthaben := Zinsen + Startguthaben; // << hier?! end; |
Re: Zählschleife
Zitat:
Xong |
Re: Zählschleife
HIHIHI,
das mit den wachsenden Monaten/Jahr war mir gar nicht aufgefallen - bringt aber echt tolle Zinsgewinne, sollte man vielleicht so lassen! |
Re: Zählschleife
Delphi-Quellcode:
So jetzt ist es soweit fertig
var
Form4: TForm4; Startguthaben, Endguthaben, Zinsen, monatlicherBetrag, Zinssatz, laufvariable: real; implementation {$R *.dfm} procedure TForm4.Button1Click(Sender: TObject); var a, b, Jahre: integer; begin Zinsen := 0; Startguthaben := StrToFloat(Edit1.Text); zinssatz := StrToFloat(Edit2.Text); monatlicherBetrag := StrToFloat(Edit3.Text); Jahre := StrToInt(Edit4.Text); For b := 0 to Jahre do begin; For a := 1 to 12 do begin; Startguthaben := Startguthaben + monatlicherBetrag; Zinsen := 1/12*Startguthaben/100*Zinssatz+Zinsen; end; Endguthaben := Zinsen + startguthaben; end; Label2.Caption := FloatToStr(Endguthaben); Label1.Caption := FloatToStr(Zinsen); end; end. ich war doch noch garnicht fertig ich hab doch auch noch überlegt aber ein kleines problem gibt es noch wenn ich 0 Jahre eingebe dann hab ich das Problem das er die Schleife trotzdem einmal durchlaufen lässt was kann ich tun und danke schon mal |
Re: Zählschleife
Delphi-Quellcode:
For b := 1 to Jahre do
|
Re: Zählschleife
danke
aber kannst du mir noch sagen wieso 0 to 0 nicht geht weil eigentlich dürfte er da ja auch nichts machen? |
Re: Zählschleife
Wieso sollte er nichts machen?
|
Re: Zählschleife
es liegt doch kein schritt zwischen 0 und 0 deshalb dürfte die schleife doch auch 0 mal durchgeführt werden? wieso ist das nicht so
|
Re: Zählschleife
Du kannst die Anweisung for x=n to m auch so lesen: Für jedes (natürliche) Element in dem Intervall [n,...,m] mache folgendes:...
Damit ist auch klar, dass eine Schleife for i:=3 to 2 nicht ausgeführt wird. Hier geht es um Element im Intervall [3,2] und dieses ist nach Definition Null. (es gibt keine Elemente mit 3<x<2, da "<" als totale Ordnung transitiv ist). Und dann ist genau die Null in der Menge [0]. Alternativ auch so: Setzt die Zählvariable auf die untere G, wenn sie dann noch nicht größer als die oberere Schranke ist, führe die Schleife aus, inkrementiere den Zähler, und vergleiche wieder mit der oberen Grenze. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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