Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   kredittilgung (https://www.delphipraxis.net/110584-kredittilgung.html)

TechnikerHC 20. Mär 2008 12:40


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:
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.
folgende fehler werden bei start des programms angezeigt:
[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!)

Adrian112 20. Mär 2008 12:44

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?

DeddyH 20. Mär 2008 12:45

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;

TechnikerHC 20. Mär 2008 12:47

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

angos 20. Mär 2008 12:47

Re: kredittilgung
 
Hi,
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 // 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;
Gruß
angos

DeddyH 20. Mär 2008 12:48

Re: kredittilgung
 
Angos, das hab ich doch schon geschrieben ;)

angos 20. Mär 2008 12:48

Re: kredittilgung
 
oha, da fehlte der rote Kasten! :)

TechnikerHC 20. Mär 2008 12:55

Re: kredittilgung
 
wenn ich das end verschiebe(was wahrscheinlich richtig ist) kommt dann bla bla prozess angehlaten gleitkommüerlauf

Klaus01 20. Mär 2008 13:02

Re: kredittilgung
 
Hier werden Deine Zinsen immer größer.

Delphi-Quellcode:
Zinsen := (Kredit * zinsen) / (100 * 12);
Du sollte vielleicht zwei verschiede Variablen haben
eine für den Zins (Jahreszins) und eine für die Kreditsumme (kredit + Zinsen);

Grüße
Klaus

TechnikerHC 20. Mär 2008 13:04

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