![]() |
kredittilgung
moin leute!
Ich muss im Unterricht ein programm zu kredittilgung ( mit stringgrid) schreiben. Ich hab das auch soweit hinbekommen, aber irgendwie läuft es nich...bitte um hilfe! so siehts bis jetzt aus:
Delphi-Quellcode:
folgende fehler werden bei start des programms angezeigt:
procedure TForm1.Button1Click(Sender: TObject);
var i, Jahr, m : Integer ; kredit, zinsen, Rate, Tilgung, Restschuld : real ; begin Kredit:=strtofloat(edit1.text); zinsen:=strtofloat(edit4.text); Jahr:=strtoint(edit3.text); rate:=strtofloat(edit2.text); m:=jahr*12; i:=1; for i:=1 to m do begin Zinsen:=(Kredit*zinsen)/(100*12); Tilgung:= Rate-Zinsen; Restschuld:=Kredit-Tilgung; end; with form1.StringGrid1 do begin cells[0,i]:=inttostr(i); cells[1,i]:=floattostr(zinsen); cells[2,i]:=floattostr(tilgung); cells[3,i]:=floattostr(restschuld); Kredit:=restschuld; rowcount:=m; end; end; procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0,0]:='Monat'; StringGrid1.Cells[1,0]:='Zinsen'; StringGrid1.Cells[2,0]:='Tilgung'; StringGrid1.Cells[3,0]:='Restschuld'; end; procedure TForm1.Button2Click(Sender: TObject); begin form1.close end; end. [Hinweis] Unit1.pas(65): Auf 'kredit' zugewiesener Wert wird niemals benutzt [Warnung] Unit1.pas(60): FOR-Schleifenvariable 'i' kann nach Durchlauf undefiniert sein [Hinweis] Unit1.pas(51): Auf 'i' zugewiesener Wert wird niemals benutzt [Warnung] Unit1.pas(62): Variable 'Tilgung' ist möglicherweise nicht initialisiert worden [Warnung] Unit1.pas(63): Variable 'Restschuld' ist möglicherweise nicht initialisiert worden (hab mir schon posts zu diesem thema durchgelesen, die führn mich aber leider nich zur lösung meines problems!) |
Re: kredittilgung
Hi,
hast hallt Variablen definiert die du nirgends verwendest. Läuft es denn? Müsste eigendlich sind ja nur Warnungen und Hinweise, keine Fehler? |
Re: kredittilgung
Ich habe es jetzt nicht im Einzelnen nachvollzogen, aber IMHO steht ein end an der falschen Stelle. Versuch es mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i, Jahr, m : Integer ; kredit, zinsen, Rate, Tilgung, Restschuld : real ; begin Kredit:=strtofloat(edit1.text); zinsen:=strtofloat(edit4.text); Jahr:=strtoint(edit3.text); rate:=strtofloat(edit2.text); m:=jahr*12; i:=1; for i:=1 to m do begin Zinsen:=(Kredit*zinsen)/(100*12); Tilgung:= Rate-Zinsen; Restschuld:=Kredit-Tilgung; //end; <-- nicht hier with form1.StringGrid1 do begin cells[0,i]:=inttostr(i); cells[1,i]:=floattostr(zinsen); cells[2,i]:=floattostr(tilgung); cells[3,i]:=floattostr(restschuld); Kredit:=restschuld; rowcount:=m; end; end; //sondern hier end; |
Re: kredittilgung
laufen tut es aber leider bleibt die stringgrid leer....
edit: wenn ich das end verschiebe(was wahrscheinlich richtig ist) kommt dann bla bla prozess angehlaten gleitkommüerlauf |
Re: kredittilgung
Hi,
Delphi-Quellcode:
Gruß
procedure TForm1.Button1Click(Sender: TObject);
var i, Jahr, m: Integer; kredit, zinsen, Rate, Tilgung, Restschuld: real; begin Kredit := strtofloat(edit1.text); zinsen := strtofloat(edit4.text); Jahr := strtoint(edit3.text); rate := strtofloat(edit2.text); m := jahr * 12; i := 1; for i := 1 to m do // Diese for-Schleife geht nur bis.... begin Zinsen := (Kredit * zinsen) / (100 * 12); Tilgung := Rate - Zinsen; Restschuld := Kredit - Tilgung; end; // <----- ... HIER ... with form1.StringGrid1 do begin cells[0, i] := inttostr(i); // ...aber hier greifst du auf i zu. cells[1, i] := floattostr(zinsen); cells[2, i] := floattostr(tilgung); cells[3, i] := floattostr(restschuld); Kredit := restschuld; rowcount := m; end; // Die schleife sollte bis hier gehen end; angos |
Re: kredittilgung
Angos, das hab ich doch schon geschrieben ;)
|
Re: kredittilgung
oha, da fehlte der rote Kasten! :)
|
Re: kredittilgung
wenn ich das end verschiebe(was wahrscheinlich richtig ist) kommt dann bla bla prozess angehlaten gleitkommüerlauf
|
Re: kredittilgung
Hier werden Deine Zinsen immer größer.
Delphi-Quellcode:
Du sollte vielleicht zwei verschiede Variablen haben
Zinsen := (Kredit * zinsen) / (100 * 12);
eine für den Zins (Jahreszins) und eine für die Kreditsumme (kredit + Zinsen); Grüße Klaus |
Re: kredittilgung
jut danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 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