Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Zinsberechnung mit For Do Schleife (https://www.delphipraxis.net/157335-zinsberechnung-mit-do-schleife.html)

JuPi2904 8. Jan 2011 13:39

AW: Zinsberechnung mit For Do Schleife
 
meine fehler codes:
  • [Hinweis] Unit1.pas(46): Auf 'i' zugewiesener Wert wird niemals benutzt
  • [Fehler] Unit1.pas(55): Deklaration erwartet, aber Dateiende gefunden
  • [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

JuPi2904 8. Jan 2011 13:40

AW: Zinsberechnung mit For Do Schleife
 
was verändern eigentlich die delphi tags???

Luckie 8. Jan 2011 13:45

AW: Zinsberechnung mit For Do Schleife
 
Kann es sein, dass auch die Formel nicht stimmt?

Weil das ist ja Unsinn:
Delphi-Quellcode:
var
  i: Integer;
  EndKapital: Double;
begin
  EndKapital := 0.0;
  for i := 1 to Jahre do
    EndKapital := StartKapital*(Zins/1000)+StartKapital;
  Result := EndKapital;
end;

Dann hätte ich in fünf Jahren bei 2,3 Prozent Zinsen und einen Startkapital von 100 Euro nur 23 Cent Zinsen bekommen. Und wo Fließen bei dir da die Jahre ein?

JuPi2904 8. Jan 2011 13:48

AW: Zinsberechnung mit For Do Schleife
 
möglich, das problem ist ja aber mehr das er das programm gar nicht startet, auch wenn die formel nicht stimmt müsste das programm gestartet werden...das werde ich dann später noch mal überprüfen.

Ich wüsste zur zeithalt nurgern wie ich die fehler behebn kann???

JuPi2904 8. Jan 2011 13:49

AW: Zinsberechnung mit For Do Schleife
 
die jahre sind dazu da wie oft die schleife durchlaufen soll..das 1000 müsste natürlich durch 100 ersetzt werden(schreibfehler)

Luckie 9. Jan 2011 04:55

AW: Zinsberechnung mit For Do Schleife
 
Ja schon, nur rechnest du immer mit dem gleichen Startkapital. Das erhöhte Kapital pro Jahr fließt ja gar nicht mit ein. Deswegen auch die Meldung vom Compiler, dass i nie benutzt wird.

Es müsste so aussehen:
Delphi-Quellcode:
function EndKapital(StartKapital, Zins: Double; Jahre: Integer): Double;
var
  i: Integer;
  EndKapital: Double;
begin
  if Zins <= 0 then
    Raise ERangeError.Create('Zins ist kleiner/ gleich Null');
  if StartKapital <= 0 then
    Raise ERangeError.Create('Startkapital ist kleiner/gleich Null');
  if Jahre < 0 then
    Raise ERangeError.Create('Jahre ist kleiner Null');
  EndKapital := 0.0;
  for i := 1 to Jahre do
    EndKapital := EndKapital*(Zins/100)+StartKapital;
  Result := EndKapital;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    ShowMessage(FloatToStr(EndKapital(100, 2.3, -5)));
    // 101,120413075641343
  except
    on E: Exception do
      ShowMessage(E.Message);
  end;
end;
Wobei ich mir bei der Formel nicht sicher bin, denn mit der Formel aus der Wikipedia bekomme ich den auskommentierten Wert raus.

Und was deine Fehler angeht, das sind einfache Syntaxfehler. Guck deinen Quelltext einfach noch mal genau an.

Und die Delphi-Tags bewirken, dass der Quelltext formatiert und somit leserlicher dargestellt wird.

Hansa 9. Jan 2011 05:47

AW: Zinsberechnung mit For Do Schleife
 
Ersetze den letzten
Delphi-Quellcode:
;
durch :
Delphi-Quellcode:
.
Ob die Rechnung so stimmt ?? Nachrechnen.

Matze 9. Jan 2011 10:46

AW: Zinsberechnung mit For Do Schleife
 
Zitat:

Zitat von Luckie (Beitrag 1073360)
Ja schon, nur rechnest du immer mit dem gleichen Startkapital. Das erhöhte Kapital pro Jahr fließt ja gar nicht mit ein. Deswegen auch die Meldung vom Compiler, dass i nie benutzt wird.

Nö, die kommt sicher daher, dass i mit 0 initialisiert wird:
Delphi-Quellcode:
i:=0;
 for i:= 1 to jahre do
Das ist überflüssig und wieso grad 0 ist mir auch schleierhaft. Dieser Wert Null wird jedenfalls nie benutzt. Ob i in der Schleife verwendet wird oder nicht, wird meines Wissens nicht angezeigt. Es ist ja lediglich eine Laufvariable, die man nicht zwingend innerhalb der Schleife nutzen muss.

Luckie 9. Jan 2011 10:48

AW: Zinsberechnung mit For Do Schleife
 
OK, aber trotzdem ändert sich der Endwert in der Schleife nicht.

Matze 9. Jan 2011 10:52

AW: Zinsberechnung mit For Do Schleife
 
Jo, das stimmt.
Es ist übrigens auch überflüssig, den Edit-Text innerhalb der Schleife zuzuweisen. Es steht am Ende sowieso nur der Wert des letzten Schleifendurchlaufs drin. Das würde ich daher außerhalb der Schleife zuweisen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 Uhr.
Seite 2 von 4     12 34      

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