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 1 von 3  1 23      
Benutzerbild von Chegga
Chegga

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

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

  Alt 22. Mär 2005, 22:03
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:
procedure TForm1.Button23Click(Sender: TObject);
var e: Real;
begin
  e := (1 + 1/1000)^1000; // hier ist n z.B. 1000
  // weiterer Code...
end;
Dass das so nicht geht, ist mir völlig klar.
Vielleicht so irgendwie:
Delphi-Quellcode:
procedure TForm1.Button23Click(Sender: TObject);
var e: Real;
    Temp: String;
begin
  e := (1+1/1000);
  Str(sqr():3:1, Temp);
  // weiterer Code...
end;
Wie kann ich das sonst machen?

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:05
const My_E = 2.7182818284590452353602874713527
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:06
e := Power(1 + 1 / 1000, 1000);
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

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

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:14
Also so ginge es:
Delphi-Quellcode:
function GetEuler(n: Cardinal): Extended;
begin
  Result:= IntPower(1+1/n, n);//= (1+1/n)^n
end;
Allerdings kann es dabei ggf. zu einem Overflow kommen. Deshalb gibt es noch eine andere (allerdings langsamere) Methode:
Delphi-Quellcode:
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;
Je höher dort n angegeben wird, umso genauer ist das Ergebnis.

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
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:15
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
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

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

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:23
Hi,

thanks @ all!

Ich habe Binärbaums Lösung übernommen. (Klappt wunderbar!)

Zitat von sniper_w:
Code:
const My_E = 2.7182818284590452353602874713527
Ein reicht wohl.
Genau so wollte ich es nicht haben.
(Trotzdem thx)

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:27
Ich kenn ja deine Anwendung nicht aber eine const währ doch viel fixer kannst ja im Vorfeld deinen Rechner mal über nacht laufen lassen, um dein e genau genug zu bekommen (kannst ja dann wieder die zu genauen Kommastellen (niedriges n) wegkürzen )
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
IngoD7

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

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:29
Zitat von Binärbaum:
Allerdings kann es dabei ggf. zu einem Overflow kommen.
Wie das denn?

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.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

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

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:31
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.
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
IngoD7

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

Re: Die Zahl e, aber wie in Pascal?

  Alt 22. Mär 2005, 22:41
Zitat von 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.
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:36 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