![]() |
Die Zahl e, aber wie in Pascal? [Erledigt!!]
Hi,
ich programmiere gerade einen Taschenrechner. Nun will ich die Zahl e (2,7182...) nach einem Button.Click in einem Panel anzeigen lassen. Die mathematische Formel für e ist: e = ( 1 + 1/n)^n Um so größer n ist, desto genauer wird e. Wie setze ich das jetzt in Pascal um?
Delphi-Quellcode:
Dass das so nicht geht, ist mir völlig klar. :wink:
procedure TForm1.Button23Click(Sender: TObject);
var e: Real; begin e := (1 + 1/1000)^1000; // hier ist n z.B. 1000 // weiterer Code... end; Vielleicht so irgendwie:
Delphi-Quellcode:
Wie kann ich das sonst machen? :gruebel:
procedure TForm1.Button23Click(Sender: TObject);
var e: Real; Temp: String; begin e := (1+1/1000); Str(sqr():3:1, Temp); // weiterer Code... end; MfG Marc |
Re: Die Zahl e, aber wie in Pascal?
Delphi-Quellcode:
:???:
const My_E = 2.7182818284590452353602874713527
|
Re: Die Zahl e, aber wie in Pascal?
Delphi-Quellcode:
e := Power(1 + 1 / 1000, 1000);
|
Re: Die Zahl e, aber wie in Pascal?
Also so ginge es:
Delphi-Quellcode:
Allerdings kann es dabei ggf. zu einem Overflow kommen. Deshalb gibt es noch eine andere (allerdings langsamere) Methode:
function GetEuler(n: Cardinal): Extended;
begin Result:= IntPower(1+1/n, n);//= (1+1/n)^n end;
Delphi-Quellcode:
Je höher dort n angegeben wird, umso genauer ist das Ergebnis.
function GetEuler(n: Cardinal): Extended;
function Fakultaet(x: Cardinal): Int64; var c: Cardinal; begin Result:=2; for c:= 3 to x do Result:= Result*c; end; var i: Integer; begin Resuult:= 2; for i:= 2 to n do Result:= Result + 1/Fakultaet(i); end; MfG Binärbaum |
Re: Die Zahl e, aber wie in Pascal?
Würde dir auch raten, e als Konstante zu hinterlegen, da es dir vermutlich nciht um Näherungsverfahren selber geht.
Erstmal kann es Problemem mit zu hohen Potenzen geben und zweites kannst du dir so ein wenig Rechenpower sparen :) |
Re: Die Zahl e, aber wie in Pascal?
Hi,
thanks @ all! Ich habe Binärbaums Lösung übernommen. :thumb: (Klappt wunderbar!) Zitat:
Genau so wollte ich es nicht haben. :wall: (Trotzdem thx) MfG Marc |
Re: Die Zahl e, aber wie in Pascal?
Ich kenn ja deine Anwendung nicht aber eine const währ doch viel fixer :gruebel: kannst ja im Vorfeld deinen Rechner mal über nacht laufen lassen, um dein e genau genug zu bekommen :mrgreen: (kannst ja dann wieder die zu genauen Kommastellen (niedriges n) wegkürzen :duck: )
|
Re: Die Zahl e, aber wie in Pascal?
Zitat:
Bei n=1 ist das Ergebnis 2. Bei n=unendlich ist das Ergebnis e (also 2,71828..). Ich denke doch, dass bestimmte Delphi-Zahlentypen einen Wert zwischen 2 und 2,718.. aufnehmen können. :twisted: :wink: |
Re: Die Zahl e, aber wie in Pascal?
Wenn es einfach nur um eine simple Rechnung geht, dann ist die Varainte, e als Konstante zu deklarieren und damit zu rechnen, am einfachsten (weil schnellste). Aber bei Näherungsverfahren für e kommt man um längere Berechnungen nun mal nicht herum.
MfG Binärbaum @IngoD7 Es ist mir schon klar, dass bei n=1 kein genauer Wert für e errechnet wird. Ich habe ja auch extra dazugeschrieben, dass die Werte nur genau sind, wenn n ziemlich groß ist. Und n=1 ist halt keine große Zahl. :roll: |
Re: Die Zahl e, aber wie in Pascal?
Zitat:
Achte bitte drauf, was gemeint war. Ich hatte deine Aussage mit dem Overflow zitiert und wollte darlegen, dass es dazu nicht kommen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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