Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Wert einer Funktion während der Laufzeit


Basti_von_der_rhs - Mi 16.03.05 20:28
Titel: Wert einer Funktion während der Laufzeit
folgendes Problem, ich bräuchte eine Funktion, die überprüft, nach welchem Zeitraum ein Kredit getilgt ist. Mein Problem ist jedoch, dass ich mit dem Beenden der Funktion nicht so zurecht komme, da die If-Schleife ja scheinbar so nicht funktioniert.
Über "zaehler" ist die Zahl der Jahre (global) (zu Beginn 0).
In edit2 steht der Zinssatz
In Edit4 steht die Tilgung
in Edit3 ist der Startkredit


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function Schulden:real;
begin
  If Schulden> 0 then     
  begin 
    inc(zaehler);
    Schulden:=(1+strtofloat(edit2.Text))*Schulden-strtoint(edit4.text);
  end
  else Schulden:=strtofloat(edit3.Text);
end;


Wer kann mir dazu was sagen? Ich komme irgendwie mit der Rekursion nicht so zurecht.
Dankeschön!

Moderiert von user profile iconMotzi: Code formatiert und Delphi-Tags hinzugefügt.


WeBsPaCe - Mi 16.03.05 21:21

Heu... ;)

Kann sein, dass meine Lösung rein mathematisch nicht stimmt... ;)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
var
Zinssatz, Kredit: Real;
Tilgung, Zeitschritte: Integer;
begin
Zinssatz := StrToFloat(InputBox('Wie hoch ist der Zinssatz? (in %)''Frage''1,8'));
Kredit := StrToFloat(InputBox('Wie viel Kredit wird aufgenommen? (in Euro)''Frage''10000'));
Tilgung := StrToInt(InputBox('Wie hoch ist die Tilgung pro Zeitschritt? (in Euro)''Frage''500'));
Zeitschritte := 0;
repeat
Kredit := Kredit + (Kredit * (Zinssatz / 100));
Kredit := Kredit - Tilgung;
Zeitschritte := Zeitschritte + 1;
until Kredit <= 0;
ShowMessage('Nach '+IntToStr(Zeitschritte)+' Zeitschritten ist der Kredit abbezahlt.');
end;


;)


Basti_von_der_rhs - Mi 16.03.05 21:31

Danke!
Wieso kompliziert, wenn's auch einfach geht.....