AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kreditendwert wird negativ

Ein Thema von GericasS · begonnen am 13. Feb 2008 · letzter Beitrag vom 13. Feb 2008
Antwort Antwort
GericasS

Registriert seit: 13. Feb 2008
27 Beiträge
 
#1

Kreditendwert wird negativ

  Alt 13. Feb 2008, 11:23
Gute Morgen nocheinmal,

ich weiß nicht genau ob es hier auch so geregelt ist, 1 Frage 1 Topic wie beim DelphiForum ?
Aber nach meinem gmv bin ich schon der Meinung


Nach der super Hilfe von eben gerade, funktioniert alles super !

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  kredit,zinsen,zinssatz,rate,ende : real ;
begin
  kredit := StrToFloat(edit1.Text);
  rate := StrToFloat(edit2.Text);
  zinssatz := StrToFloat(edit3.Text)/100;
  i := 0 ;
  while kredit > 0 do
    begin
      inc(i);
    StringGrid1.RowCount:=(i+1);
  zinsen := kredit*zinssatz/12 ;
  ende := kredit-rate+zinsen ;
    StringGrid1.Cells[0,i]:=IntToStr(i);
    StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2);
    StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2);
    StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2);
  kredit:=ende ;
      if ende < 0 then break ;
    Panel1.Caption := IntToStr(i);
      Panel2.Caption := FloatToStr(i/12);
      Panel4.Caption := FloatToStrF(ende,ffFixed,10,2);
Jetzt besteht nurnoch das folgende Problem, wenn meine Rechnunug den letzten Monat erreicht ( also wenn der Kredit 0 € erreicht ), zeigt das StringGrid noch einen weiteren Monat an, wo der Kreditbetrag (ende) negativ wird...
Dies hab ich schon versucht zu unterbinden in dem ich folgendes gemacht habe...

if ende < 0 then kredit := 0 Was aber leider entweder den effekt hatte, das sich gar nichts tat oder in meinem Panel der anzeigt was noch zu zahlen sei im letzten montag 0 stand.

Ich hoffe ich konnte das Problem verständlich schildern


LG

GericasS
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Kreditendwert wird negativ

  Alt 13. Feb 2008, 11:38
Hi GericasS,

ganz verstanden habe ich es nicht, aber vielleicht hilft Dir so etwas:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  kredit,zinsen,zinssatz,rate,ende : real ;
begin
  kredit := StrToFloat(edit1.Text);
  rate := StrToFloat(edit2.Text);
  zinssatz := StrToFloat(edit3.Text)/100;
  i := 0 ;
  Ende := 0; // <--
  while (Kredit > 0) and (Ende >= 0) do // <--
  begin
    inc(i);
    StringGrid1.RowCount:=(i+1);
    zinsen := kredit*zinssatz/12 ;
    ende := kredit-rate+zinsen ;
    StringGrid1.Cells[0,i]:=IntToStr(i);
    StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2);
    StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2);
    StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2);
    kredit:=ende ;
    if ende < 0 then break ; // <-- das kann dann raus
    Panel1.Caption := IntToStr(i);
    Panel2.Caption := FloatToStr(i/12);
    Panel4.Caption := FloatToStrF(ende,ffFixed,10,2);
    ...
stahli
  Mit Zitat antworten Zitat
GericasS

Registriert seit: 13. Feb 2008
27 Beiträge
 
#3

Re: Kreditendwert wird negativ

  Alt 13. Feb 2008, 11:47
Hey stahli,

ersteinmal danke für die schnelle hilfe, aber...
das hat bei mir den Effekt, das es einen Wert in dem Panel anzeigt, aber dieser ist wieder negativ.
Gibt es keine Möglichkeit, sobald der Wert von "ende" < 0 ist einfach aufzuhören und den letzten Wert von der Variable Kredit auszugeben ?

Ich hoffe dies erläutert mein Problem besser



LG
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Kreditendwert wird negativ

  Alt 13. Feb 2008, 11:57
Ich weiß ja nicht, was Du im Rest Deines Begin-End-Blockes noch machst...

Du könntest evtl. eine Hilfsvariable einführen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  kredit,zinsen,zinssatz,rate,ende : real ;
  NextEnde: Real; // <--
begin
  kredit := StrToFloat(edit1.Text);
  rate := StrToFloat(edit2.Text);
  zinssatz := StrToFloat(edit3.Text)/100;
  i := 0 ;
  NextEnde := 0; // <--
  while (Kredit > 0) and (NextEnde >= 0) do // <--
  begin
    inc(i);
    StringGrid1.RowCount:=(i+1);
    zinsen := kredit*zinssatz/12 ;
    ende := kredit-rate+zinsen ;
    StringGrid1.Cells[0,i]:=IntToStr(i);
    StringGrid1.Cells[1,i]:=FloatToStrF(kredit,ffFixed,10,2);
    StringGrid1.Cells[2,i]:=FloatToStrF(zinsen,ffFixed,10,2);
    StringGrid1.Cells[3,i]:=FloatToStrF(ende,ffFixed,10,2);
    kredit:=ende ;
    if ende < 0 then break ; // <-- das kann dann raus
    Panel1.Caption := IntToStr(i);
    Panel2.Caption := FloatToStr(i/12);
    Panel4.Caption := FloatToStrF(ende,ffFixed,10,2);
    ...
    NextEnde := ... // <-- schon mal schauen, was als nächstes kommt
  end; // <-- nächste While-Prüfung
Evtl. kannst Du dafür auch die Variable Kredit nehmen, müsstest sie aber dann vor dem While initialisieren (0 zuweisen).

stahli
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Kreditendwert wird negativ

  Alt 13. Feb 2008, 12:26
Hallo,

eventuell könnte man es auch so angehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  kredit,zinsen,zinssatz,rate : real ;

begin
  kredit := StrToFloat(edit1.Text);
  rate := StrToFloat(edit2.Text);
  zinssatz := StrToFloat(edit3.Text)/100;
  i := 0 ;

  while (Kredit - rate) > 0 do
  begin
    inc(i);
    zinsen := kredit*zinssatz/12 ;
    kredit := kredit-rate+zinsen ;
    Memo1.Lines.Add(format('%.2d %5.2f %5.2f',[i,kredit,zinsen])); // das hier war nur für mich zum Testen

    Panel1.Caption := IntToStr(i);
    Panel2.Caption := FloatToStr(i/12);
    Panel4.Caption := FloatToStrF(kredit,ffFixed,10,2);
  end;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
GericasS

Registriert seit: 13. Feb 2008
27 Beiträge
 
#6

Re: Kreditendwert wird negativ

  Alt 13. Feb 2008, 12:38
Zitat von Klaus01:
Hallo,

eventuell könnte man es auch so angehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  kredit,zinsen,zinssatz,rate : real ;

begin
  kredit := StrToFloat(edit1.Text);
  rate := StrToFloat(edit2.Text);
  zinssatz := StrToFloat(edit3.Text)/100;
  i := 0 ;

  while (Kredit - rate) > 0 do
  begin
    inc(i);
    zinsen := kredit*zinssatz/12 ;
    kredit := kredit-rate+zinsen ;
    Memo1.Lines.Add(format('%.2d %5.2f %5.2f',[i,kredit,zinsen])); // das hier war nur für mich zum Testen

    Panel1.Caption := IntToStr(i);
    Panel2.Caption := FloatToStr(i/12);
    Panel4.Caption := FloatToStrF(kredit,ffFixed,10,2);
  end;
end;
Grüße
Klaus

vielen vielen Danke Klaus hat super funktioniert

LG GericasS
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz