AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Die Zahl e, aber wie in Pascal? [Erledigt!!]
Thema durchsuchen
Ansicht
Themen-Optionen

Die Zahl e, aber wie in Pascal? [Erledigt!!]

Ein Thema von Chegga · begonnen am 22. Mär 2005 · letzter Beitrag vom 23. Mär 2005
Antwort Antwort
Seite 2 von 3     12 3      
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#11

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 23:49
[quote="IngoD7"]
Zitat von Binärbaum:
Und was hat das mit meinem Posting zu tun?
Achte bitte drauf, was gemeint war. Ich hatte deine Aussage mit dem Overflow zitiert und wollte darlegen, dass es dazu nicht kommen kann.
Das Problem ist trotzdem die begrenzte Genauigkeit von Standarddatentypen. Wenn du dir die bekannte Formel (1+(1/n))^n anschaust, siehst du, dass 1/n für große n sehr klein wird. Und irgendwann wird aus 1/n dann eben faktisch 0, weil die Fließkommadarstellung keine kleineren Zahlen erlaubt. Und dann ist (1+1/n)^n für "n = sehr sehr hoch" eben 1, und nicht e.
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 00:23
Zitat:
Nun will ich die Zahl e (2,7182...) nach einem Button.Click in einem Panel anzeigen lassen.
Zitat:
Zitat:
const My_E = 2.7182818284590452353602874713527
Genau so wollte ich es nicht haben. ouch!
warum wilst du eine Konstante nicht haben? Du willst doch einen Taschenrechner programmieren und kein Programm, dass die 2 Millionste Stelle von PI berechnet. Nimm doch die Konstante, dass ist am schnellsten.


André
André
  Mit Zitat antworten Zitat
chkdsk
(Gast)

n/a Beiträge
 
#13

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 00:35
Auch wenn es wahrscheinlich nur noch begrenzt sinnvoll ist, hier die Eulersche Zahl auf 200 Nachkommastellen genau:

Zitat:
2,718281828459045235360287471352662497757247093699 9595749669676277240766303 53547594571382178525166427427466391932003059921817 41359662904357290033429526059563 073813232862794349076323382988075319525101901
Oder noch genauer: http://wikisource.org/wiki/E_to_10%2C000_places


Also wenn es nicht um mathematische Herleitung geht, sondern rein darum, die Zahl zu benutzen, dann sind Konstanten wohl immer vorzuziehen.

[edit=sakura] Mal ein paar Umbrüche zugelassen Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 01:19
Es ist wohl kaum sinnvoll, e auf 200 oder mehr Stellen anzugeben, da die Floating-Point-Datentypen in Delphi nur auf ca. 10-15 Stellen genaue Werte speichern können (siehe OH zu den Datentypen Single, Real, Double, Extended).
Außerdem ging es dem Threadersteller auch um ein Näherungsverfahren und nicht darum, welches die 200. Stelle von e ist.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#15

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 06:31
Manchmal wundere ich mich ueber die Fantasielosigkeit der Programmierer:

Delphi-Quellcode:
var
  e: Extended;
//...
e := Exp(1);
Die Delphi-Hilfe haette euch gesagt:
function Exp(X: Real): Real;

Description

In Delphi code, Exp returns the value of e raised to the power of X, where e is the base of the natural logarithms.


Wenn also Exp den Wert von e^x gibt, dann ratet mal was wohl e^1 ist

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 07:32
Wenn man n als Konstante angibt dann kann man auch gleich e als Konstante benutzen da die Formel eh immer den gleichen Wert errechnet.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 08:20
Zitat von alcaeus:
Manchmal wundere ich mich ueber die Fantasielosigkeit der Programmierer:
Delphi-Quellcode:
var
  e: Extended;
//...
e := Exp(1);
Hier wird aber auch eine Konstante benutzt.

Die FPU des Prozessors bietet eine Konstante FLDL2E.

FLDL2E entspricht log2(e)

Exp(1) macht also "nur" ein 2^log2(e)
-> also 2 ^ FLDL2E-Konstante

(Anmerkung: ^ = hoch bzw Power() )

Ich perönlich bevorzuge da eine Konstante wie schon weiter oben beschrieben.

Das ist der ASM Code von Exp()
Delphi-Quellcode:
asm
        {       e**x = 2**(x*log2(e))   }

        FLDL2E { y := x*log2e;      }
        FMUL
        FLD ST(0) { i := round(y);     }
        FRNDINT
        FSUB ST(1), ST { f := y - i;        }
        FXCH ST(1) { z := 2**f          }
        F2XM1
        FLD1
        FADD
        FSCALE { result := z * 2**i }
        FSTP ST(1)
end;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#18

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 10:34
Zitat von MagicAndre1981:
Zitat:
Nun will ich die Zahl e (2,7182...) nach einem Button.Click in einem Panel anzeigen lassen.
Zitat:
Zitat:
const My_E = 2.7182818284590452353602874713527
Genau so wollte ich es nicht haben. ouch!
warum willst du eine Konstante nicht haben?
Du willst doch einen Taschenrechner programmieren und kein Programm,
dass die 2 Millionste Stelle von PI berechnet.
Nimm doch die Konstante, dass ist am schnellsten.
Ich wollte einfach wissen, wie ich das in Pascal umsetze, da ich nicht
einfach nur eine Konstante nehmen wollte.
(Sonst hätte ich diesen Thread erst gar nicht eröffnen müssen. )

MfG Marc

P.S.: Danke noch mal für alle Antworten!
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 13:07
Zitat von Oxmyx:
Zitat von IngoD7:
Und was hat das mit meinem Posting zu tun?
Achte bitte drauf, was gemeint war. Ich hatte deine Aussage mit dem Overflow zitiert und wollte darlegen, dass es dazu nicht kommen kann.
Das Problem ist trotzdem die begrenzte Genauigkeit von Standarddatentypen. [...] Und dann ist (1+1/n)^n für "n = sehr sehr hoch" eben 1, und nicht e.
Dem stimme ich zu. Aber auch das hat nichts mit Overflow zu tun. Ein Overflow der Ergebnisvariable tritt schlicht nicht auf. Mehr wollte ich nicht ausgedrückt haben.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Die Zahl e, aber wie in Pascal?

  Alt 23. Mär 2005, 13:32
@Chegga : Warum möchtest du keine Konstante verwenden?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz