![]() |
Zinseszins
Hallo,
ich wusst nicht ob das das richtige Forum ist aber ich versuchs mal hier. Ich würde gerne mit Delphi den Zinseszins ausrechnen. Das Programm soll so aussehen, dass der Anwender folgendes eingibt: Grundwert: Prozentsatz: Jahre: und er bekommt dann von em Programm gesagt wieviel Geld er später hat. Die Formel an sich ist ganz einfach( ![]() endwert= grundwert* (1+zinssatz) Das ist für ein Jahr. Für 2 wäre es dann so: endwert= grundwert * (1+zinssatz) * (1+zinssatz) durch die eingabe des user, wieviele jahre er ausgerechnet haben will soll er für jedes jahr ein * (1+zinssatz) in die rechnung dabei schreiben... wie lös ich das am besten? Danke :angle: rossinie :angle: |
Re: Zinseszins
Hi rossinie,
die formel sieht so aus, als ob man das so machen könnte: endwert= grundwert * ((1+zinssatz)^jahre). Aber nagel mich da nicht fest. war in mathe noch nie so doll... :roll: manuel |
Re: Zinseszins
Sorry, ich bin heute morgen noch nicht so ganz auf der Höhe, ich hab mir meinen Code grad noch mal angesehen und gesehen dass er so nicht funzen kann.
Sorry, Toxman |
Re: Zinseszins
ergebnis := grundwert ((1+(zins/100))^jahre);
das will er irgendwie nicht :-( kennt delphi überhaupt den ^ ? der link geht nicht weil er so aussieht. ![]() ihr müsstet das erste http:// weg machen... danke :angle: rossinie :angle: |
Re: Zinseszins
Nein Delphi kennt kein ^
guck dir mal die Power-Funktion an |
Re: Zinseszins
so nächster Versuch:
Herzlich willkommen in der DelphiPraxis Du kannst es mit einer For-Schleife machen:
Delphi-Quellcode:
Schau dir mal für die Idee von Manuel 'Power' an.
var
i,k: integer; // Anzahl der Jahre, Zähler endwert,grundwert,zinssatz: Real; begin i:= strtoint(edit1.text); // Edit in dem du die anzahl der Jahre eingeben kannst endwert :=grundwert * (1+zinssatz); // Konto nach dem ersten Jahr For k:=1 to i-1 do begin endwert:=endwert * (1+zinssatz) end; Toxman Edit: [Delphi-Tags gesetzt] |
Re: Zinseszins
er meitne als fehler:
pointer typ required |
Re: Zinseszins
Sorry, nein Delphi kennt ^ nicht.
Das ist nur das Hoch-Zeichen, wenn man am PC sonst nix anderes hat. hätte ich dazuschreiben müssen. mit der Power-Funktion sollte es aber klappen gruß manuel |
Re: Zinseszins
power funktion?
sorry arbeite erst ein paar wochen mit delphi |
Re: Zinseszins
Geh unter Menüpunkt "Hilfe" bzw. "Help" dort
den Menüpunkt "Delphi Hilfe" bzw. "Delphi Help" es öffnet sich ein Dialog dort die Registerkarte Index auswählen und in das Suchfeld Power eintippen dann bei den Ergebnissen auf Power Function ein klick ausführen.. |
Re: Zinseszins
Hi!
Zitat:
|
Re: Zinseszins
dh:
ich hab noch nie mit dieser o.ä. gearbeitet, wie solln das später aussehen? kann mit jmd eine musterlösung geben? Danke :angle: rossinie :angle: |
Re: Zinseszins
Die Power-Funktion sieht so aus:
Delphi-Quellcode:
und so müsste dann eigentlich die Rechnung aussehen:
Power(Base, Exponent: Extended)
Delphi-Quellcode:
Hab hier grad kein Delphi installiert, sonst könnte ichs ausprobieren,
Result:=grundwert * Power(1+zinssatz, jahre);
sollte aber eigentlich funktionieren. Die unit Math muss noch eingebunden werden. ciao manuel |
Re: Zinseszins
zu Power:
schreib mal in Delphi Power , markier das ganze und drücke F1. Dann öffnet sich die Hilfe und du kannst alle mögliche infos über diese Funktion erfahren. F1 funktioniert so ziemlich immer, z.B. auch wenn du auf irgendeine Komponente geklickt hast, kannst du auch F1 drücken und erfährst so ziemlich alles, was du wissen musst. Noch was wichtiges: Oben in deiner Unit stehen folgende Zeilen(oder so ähnlich):
Code:
Das solltest du noch math dazuschreiben:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls ;
Code:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, math ; Das math steht bei dir wahrscheinlich noch nicht drin. Du musst es reinschreiben, sonst wird power nicht erkannt. Toxman |
Re: Zinseszins
ja das hab ich gemacht auch power gelesen.
hat jmd ne musterlösung für mich? |
Re: Zinseszins
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Ist zwar jetzt nicht mit power, rechnet aber auch den Zinseszins aus,m vielleicht hilft es dir ja. Der Zinssatz ist in dem Programm abhängig von der Einzahlungssumme, aber das lässt sich ja leicht ändern. Ciao fkerber |
Re: Zinseszins
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
hab da mal was gebastelt... Vieleicht hilft es dir ja weiter... Gruss little-wolf Nachtrag: Ou, schon wieder nicht gesehen, dass es da noch ne zweite Seite hatte... sorry... :oops: Naja, lasse die Source mal noch drauf... |
Re: Zinseszins
Ich glaube nicht, dass es viel bringt, wenn jetzt alle, fertige Programme posten. Tipps sind sinnvoll und der Zweck der DP. Aber wenn man nur nach fertigen Lösungen fragt und die sofort bekommt, lernt man auch nichts mehr.
Toxman |
Re: Zinseszins
Hi!
Ich denke er hat ja einige Tipps bekommen. Und mein Programm funktioniert ja auch nicht direkt nach dem gewünschten System. Und ich poste niemals ein Programm wenn jemand direkt nach nem fertigen Programm fragt. Aber er hat sich ja mit dem Problem und den vorgeschlagenen Lösungen auseinandergesetzt. Und mein Programm erfüllt auch nicht direkt seine Vorgaben (Eingabe des Zinssatzes). Insofern muss er es überarbeiten und setzt sich so schon mit dem Problem auseinander. Ich sehe den Code als Anregung und nicht als Lösung an. Ciao fkerber |
Re: Zinseszins
An Toxman
Zitat:
verwirrenden Code Postet (so wie du mit deiner For-Schlaufe) dann ist das auch nicht unbedingt hilfreich... Gruss little-wolf |
Re: Zinseszins
Hi!
Bitte geht doch nicht so grob miteinander um. Sicher, die For-Schleife ist nicht in Ordnung, aber Fehler passieren und die Idee mit der For-Schleife an sich ist nicht schlecht (so habe ich es auch gelöst). Und mal nen Fehler zu schreiben hat ja nix mit dem Posten "fertiger" Programme zu tun. Also lasst doch euren Privatkrieg. Jeder hat halt ne andere Auffassung Und nun back to Topic :cheers: Ciao fkerber |
Re: Zinseszins
Warum soll die Schleife verwirrend sein? Es ist die genaue Umsetzung der Frage:
Zitat:
Auch das PRogramm von fkerber ist nach der Idee aufgabaut. Er hat nur noch die Betragsabhängige Verzinsung mit drin, aber sonst seh ich grad keine Unterschiede.
Delphi-Quellcode:
und
for i:=2 to laufzeit do
begin auszahlung:=auszahlung*((zinssatz+100)/100); end;
Delphi-Quellcode:
sehen eigentlich ganz gleich aus.
For i:=1 to i-1 do
begin endwert:=endwert * (1+zinssatz) end; Toxman |
Re: Zinseszins
Hi!
Ich weiß ja nicht, aber:
Delphi-Quellcode:
Heißt das nicht eigentlich:
For i:=1 to i-1 do
Delphi-Quellcode:
Vielleicht ist es echt dasselbe, aber ich glaube du verwendest i doppelt, als Zählvariable und für die Jahreszahl.
For i:=1 to 0 do // weil du i=1 setzt und dann 1-1=0!
Ciao fkerber |
Re: Zinseszins
:oops: Da hst du recht. Ich hab anscheinend als Zähler die faksche variable angegeben. Ich hab das ganze aber auch implementiert gehabt und da hats geklappt, wahrscheinlich ist da was beim Kopieren schief gegangen ich werds mal in
Delphi-Quellcode:
ändern. Dann dürfte es auch so klappen.
for k:=1 to i-1
:duck: Toxman |
Re: Zinseszins
Hi!
Jepp, dann müsste es gehen, es entpsricht ja dann auch meinem Ansatz und der geht auch. Ciao fkerber |
Re: Zinseszins
Delphi-Quellcode:
Also wenn ich das nur für ein jahr mache berechnet der das irgendwie falsch!
begin
grundwert := strtofloat (edit1.text); zins := strtofloat (edit2.text); label9.caption := floattostr (ergebnis); ergebnis := grundwert * (1+ zins); end; wenn ich dann berechne und wieder berechne klicke kommen unterschiedliche werte raus... ?! wie kann ich denn die ausgabe auf max 10 zahlen und max 2 nachkommastellen begrenzen? Irgendwas wie: abel9.caption := floattostrf (ergebnis, fffixed 10,2); oder sowas?! :angle: rossinie :angle: |
Re: Zinseszins
Hi!
Also für das Formatieren wie schon von dir erwähnt
Delphi-Quellcode:
Und was deinen Quellcode-Auszug angeht:
Floattostrf(ergebnis,FFfixed,10,2)
Ich würde zuerst Ergebnis berechnen lassen und dann ausgeben, nicht umgekehrt. Was dein konkretes Problem angeht, ohne den Berechnungs-Code kann ich es nicht nachvollziehen. Machst du es mit Power oder mit der For-Schleife? Falls du es mit der For-Schleife machst, schau dir mal mein Prog an. Ciao fkerber |
Re: Zinseszins
vertausche mal die letzten beiden zeilen in deinem code.
Du weist das ergebnis dem Label zu bevor es berechnet wird... |
Re: Zinseszins
angenommen, das ist dein OnClick-Ereigniss:
Delphi-Quellcode:
Tausch mal die Zeilen aus
Source:
begin grundwert := strtofloat (edit1.text); // Hier liest du ein zins := strtofloat (edit2.text); // Hier liest du ein label9.caption := floattostr (ergebnis); // Hier gibst du aus ??? ergebnis := grundwert * (1+ zins); // Hier verarbeitest du ??? end; Toxman |
Re: Zinseszins
Ups, hatte das gleiche gepostet. ;)
|
Re: Zinseszins
cool danke, funktioniert.
Ich kann mir nur so schlecht merken wann . wann , kommt... :-( Aber mein programm funzt. Habs mit 1jahr gemacht dann ist auch gut. DANKE! |
Re: Zinseszins
Hi!
Zitat:
Ciao fkerber |
Re: Zinseszins
Hallo,
Ich mische mich nun auch noch ein, denn ich habe gesehen, dass irgendwas komisch ist an deiner Berechnung. Bist du dir sicher, dass dies funktioniert ? So wie du es dort hast kannst du aber nicht mit einem richtigen Prozentsatz rechnen. Diesen würdest du nämlich beispielsweise mit 9% angeben. Ist dies der Fall kann eigentlich nur das falsche herauskommen, denn dann wäre ...
Delphi-Quellcode:
... ja eingesetzt ...
ergebniss := grundwert * (1+ zins);
Delphi-Quellcode:
... und somit kann dabei nicht das richtige Ergebniss kommen. Du musst aufpassen dass du den Zinswert vorher noch durch 100 teilst, denn nur so ist es stimmig :
ergebniss := grundwert * (1+9);
Delphi-Quellcode:
Gruss
ergebniss := grundwert * (1+ zins/100);
Urba |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 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