![]() |
Logarithmus in Delphi
Hallo!
Ich bin hier ganz neu im Forum und habe eine ziemlich wichtige und dringende Frage. Eine Antwort auf sie, die ich auch praktisch nachvollziehen kann habe ich bisher nirgendwo gefunden, daher schreibe ich mein Problem hier mal rein: Also ich habe eine Aufgabe, die die folgende Gleichung vorsieht: lg A - lg B ------------ = D lg C Nun weiß ich zwar (u.a. aus ![]() ![]() Ich habe ein Programm zur Aufgabe, welches aus dem Zinssatz und dem Startkapital die Zeit berechnen soll, in der man auf das Endkapital (= 1.000.000) kommt. Es gibt zwei Eingabefelder (Zinssatz und Starkapital) und einen Auslösebutton. Aber das ist ja kein Problem, mein Problem ist die Rechnung, die dabei geschehen muss... Jeder Tipp ist super-hilfreich, ich hoffe also, ihr könnt mir helfen! Danke! :dp: kischiman |
Re: Logarithmus in Delphi
Herzlich willkommen hier im Forum,
leider verstehe ich nicht, was du nicht verstehst... Wo hast du die Formel her? Was ist A, B, C und D? Ln ist der natürliche Logarythmus, mit der Basis e. e ist die Eulersche Zahl und hat den Wert 2,718... ln(e) ist dementsprechend wieder 1. Und die Umkehrfunktion ist in dem Fall die Exponentialfunktion e^x. |
Re: Logarithmus in Delphi
In deinem Fall wäre eher der Logarithmus zur Basis 10 der richtige:
![]()
Delphi-Quellcode:
d := (log10(a) * log10(b)) / log10(c);
|
Re: Logarithmus in Delphi
Wenn du die Math-Unit nicht einbinden willst kannst du auch den natürlichen Logarithmus nehmen...
Code:
also
lg10(x) = ln(x) / ln(10)
Delphi-Quellcode:
Gruss
function D(a,b,c:real):real;
function lg10(x:real):real; begin Result:=ln(x) / ln(10); end; begin Result:=(lg10(a) - lg10(b)) / lg10(c); end; Thorsten |
Re: Logarithmus in Delphi
Wow!
Ihr seid schneller, als ich erwartet habe! Vielen Dank für die Antworten! Ich habe das Math-Unit eingebunden und es so gemacht, wie mkinzler beschrieben hat. Das ganze sieht bei mir jetzt so aus:
Delphi-Quellcode:
Wobei aus der Gleichung oben
zahl1:=StrToFloat(Edit1.Text);
zahl2:=StrToFloat(Edit2.Text); gesamt:=(log10(1000000) * log10(zahl1)) / log10(zahl2); label6.caption:=floattoStrF(gesamt,ffcurrency,7,2); a = 1000000 b = zahl1 c = zahl2 d = gesamt entspricht. Ich habe es erst bloß mit Variablen abgekürzt, damit es für euch einfacher zu verstehen ist. Doch irgendwie habe ich das Gefühl, dass irgendwas nicht richtig funktioniert. Ich versuche es nochmal auf die Art, wie omata es beschrieb, also mit dem ln, vielleicht führt das zu realistischeren Ergebnissen... Wer sich die Mühe machen und sich das ansehen will, ich habs auf meinen Server hochgeladen: ![]() Ich danke euch nochmal vielmals für die Hilfe!!! EDIT: Also wenn ich das jetzt mit dem Logarithmus Naturalis mache, meckert Delphi bei function. (Anweisung erwartet, aber function gefunden) Ich habs bestimmt falsch hingesetzt, aber egal wo, es passt ihm nicht... |
Re: Logarithmus in Delphi
Zitat:
Zitat:
|
Re: Logarithmus in Delphi
Also wenn in dieser Rechnung:
Delphi-Quellcode:
zahl1 = 5000
gesamt:=(log10(1000000) * log10(zahl1)) / log10(zahl2);
zahl2 = 5 ist, bekomme ich als gesamt 1,13 als Ergebnis... Ich hab jetzt leider keine Möglchkeit, das mathematisch zu überprüfen, aber schau dir doch bitte, wenn es keine Umstände macht, das Programm an: ![]() (Form2 ist die entscheidende, bzw. die "Zeitberechnung") Danke dir! |
Re: Logarithmus in Delphi
Wenn du uns nicht verrätst was die formel macht, kann man dir auch nicht sagen, ob die Rechnung richtig ist.
|
Re: Logarithmus in Delphi
Oh, achso, entschuldigt...
Also es geht um Zinsrechnung. Das Programm soll berechnen, wie lange man braucht, um auf 1.000.000€ zu kommen, mit dem gewünschten Startkapital (zahl1) und Zinssatz (zahl2). Mathematisch ausgedrückt würde die Formel so aussehen: t=(lg(1.000.000) - lg (Startkapital)) / lg (Zinssatz + 1) t ist logischwerweise die Zeit, also das Ergebnis... Ou man, ich dreh durch, ich blick das überhaupt nicht durch in Delphi... :/ |
Re: Logarithmus in Delphi
Sorry hatte dein . als * gelesen, muß also:
Delphi-Quellcode:
heißen.
gesamt:=(log10(1000000) - log10(zahl1)) / log10(zahl2);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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