Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Logarithmus in Delphi (https://www.delphipraxis.net/102423-logarithmus-delphi.html)

kischiman 28. Okt 2007 20:34

Re: Logarithmus in Delphi
 
Also genau so habe ich das jetzt auch stehen und bekomme das hier raus:
http://kischiman.de/delphi/bild1.JPG
Stimmt das etwa?

3_of_8 28. Okt 2007 20:37

Re: Logarithmus in Delphi
 
Nein, stimmt überhaupt nicht.

Du brauchst deutlich mehr als 1,3 Jahre, um bei 5% und 5000€ Startkapital auf 1 Mio. € zu kommen.

EDIT: Genaugenommen brauchst du etwa 108,59 Jahre.

Die Formel dafür:
Zeit=ln(Endsumme/Startkapital)/ln(1+Zinssatz)

Herleitung:
Endsumme=Startkapital*(1+Zinssatz)^Zeit
(1+Zinssatz)^Zeit=Endsumme/Startkapital
Zeit=log_(1+Zinssatz) (Endsumme/Startkapital)
Zeit=ln(Endsumme/Startkapital)/ln(1+Zinssatz)

Also in diesem speziellen Fall:
Zeit=ln(1000000/5000)/ln(1+5%)=ln(200)/ln(1.05)=108,59

In Delphi sieht das dann so aus:
Delphi-Quellcode:
zeit:=ln(endsumme/startkapital)/ln(1+zins/100);
Im Übrigen rate ich dir davon ab, deine Variablen "zahl1", "zahl2" usw. zu nennen. Gib ihnen sinnvolle Namen.

kischiman 28. Okt 2007 20:43

Re: Logarithmus in Delphi
 
Eben, und ich verstehe nicht, was an der Rechnung falsch ist, das ist das, was mich aufregt :wall:

3_of_8 28. Okt 2007 20:48

Re: Logarithmus in Delphi
 
Siehe Edit oben.

Im Übrigen ist der Fehler höchstwahrscheinlich, dass du den Zinssatz direkt übernimmst, d.h. du machst aus 5% einfach 5. Aber 5 entspricht dann einem Zinssatz von 400%. Du musst den eingegebenen Zinssatz in Prozent erst durch 100 teilen und dann 1 addieren, also einfach: 1+zins/100

kischiman 28. Okt 2007 21:17

Re: Logarithmus in Delphi
 
Argh, jetzt ist es eine andere Zahl, aber immer noch falsch >.<

Delphi-Quellcode:
begin
Speedbutton3.visible:=true;
Speedbutton4.visible:=false;
label6.visible:=true;
label7.visible:=true;
startkapital:=StrToFloat(Edit1.Text);
zinssatz:=StrToFloat(Edit2.Text);
zeit:=ln(1000000/startkapital)/ln(1+(zinssatz/100));
label6.caption:=floattoStrF(zeit,ffcurrency,7,2);
end;
Als Ergebnis zeigt er nun 3.10 an...

Khabarakh 28. Okt 2007 21:19

Re: Logarithmus in Delphi
 
Zitat:

Zitat von 3_of_8
Die Formel dafür:
Zeit=ln(Endsumme/Startkapital)/ln(1+Zinssatz)

Was nach den Logarithmengesetzen absolut äquivalent zur bisher gennanten Formel ist ;) . Schöner ist sie allerdings :mrgreen: .

3_of_8 28. Okt 2007 21:24

Re: Logarithmus in Delphi
 
Und - wenn ich mich jetzt grade beim Durchsehen der Math.pas nicht verschaut habe - ein kleines bisschen schneller. ;)

kischiman 29. Okt 2007 09:18

Re: Logarithmus in Delphi
 
Also ich verstehe nicht, was ich da falsch mache -.-
Wie muss ich denn die Variablen bestimmen? Also bei mir sind jetzt alle Real, aber damit ändert sich die Zahl nur auf ein paar Zehntel...
Ich hoffe, ihr könnt mir noch helfen! Ich danke euch aber trotzdem wirklich für die Hilfe, ihr habt mich auf jeden Fall weitergebracht, als ich war!

3_of_8 29. Okt 2007 09:52

Re: Logarithmus in Delphi
 
Du verwendest den Zinssatz als Startkapital und vice versa. ;)

Statt 5000€ zu 5% nimmst du 5€ zu 5000%.

kischiman 29. Okt 2007 13:55

Re: Logarithmus in Delphi
 
Ja!! Das hab ich jetzt auch gemerkt, Schande über mein Haupt! Danke euch allen vielmals!!! Es funktioniert jetzt, ich hab die Edit-Felder einfach umgetauscht und und schon funktioniert es! (Das ganze Projekt war eine Gruppenarbeit und das Design habe nicht ich gemacht und der Depp, der das gemacht hat, hat "zahl1" auf das "Edit2" zugewiesen und "zahl2" auf "Edit1", das brachte mich natürlich durcheinander -.-)
Daher, vielen Dank nochmal, dank euch verstehe ich jetzt das System der Logarithmen in Delphi!
:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr.
Seite 2 von 2     12   

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