AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fakultät berechnen

Ein Thema von Lehmar · begonnen am 14. Okt 2005 · letzter Beitrag vom 26. Dez 2005
Antwort Antwort
Seite 1 von 3  1 23   
Lehmar
(Gast)

n/a Beiträge
 
#1

Fakultät berechnen

  Alt 14. Okt 2005, 14:11
Ich wollte ein Programm schreiben bei dem man eine Zahl eingeben kann
und was dann auf Button druck die Fakultät berechnet bei nietregen
Zahlen funktioniert es ganz gut, doch bei Zahlen über 70 bekomme ich nur ne
Fehlermeldung von wegen „Gleitkommazahl“ kann mir jemand helfen hier ist der
Quellcode.

Delphi-Quellcode:
var
  Form1: TForm1;
  n : integer;
  F : Double;
  k : Integer;
implementation

{$R *.DFM}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

function Fakult1(k : integer): Double;
var
i : Integer;
a : Integer;
begin
result := 1;
a := i;
for a := 2 to k do
result := a*result;
end;

function Fakult2(k : integer): Double;
begin
if k = 0 then
Fakult2 := 1 else Fakult2 := k*Fakult2(k-1);
end;

procedure Fakult3(k: Integer; var f : double);
begin
if k=0 then f:=1 else
begin
Fakult3(k-1,f);
f:=k*f;
end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
k := Spinedit1.Value;
Fakult1(k);
Fakult2(k);
Fakult3(k,f);
Edit1.Text := Floattostr(F);
end;
[edit=alcaeus]Delphi-Tags eingefuegt. Spaet, aber doch... Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:15
Umklammer deinen Quelltext bitte zunächst mit  und Danke!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Lehmar
(Gast)

n/a Beiträge
 
#3

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:18
Wenn es denn hilft...


Delphi-Quellcode:
var
  Form1: TForm1;
  n : integer;
  F : Double;
  k : Integer;
implementation

{$R *.DFM}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
close;
end;

function Fakult1(k : integer): Double;
var
i : Integer;
a : Integer;
begin
result := 1;
a := i;
for a := 2 to k do
result := a*result;
end;

function Fakult2(k : integer): Double;
begin
if k = 0 then
Fakult2 := 1 else Fakult2 := k*Fakult2(k-1);
end;

procedure Fakult3(k: Integer; var f : double);
begin
if k=0 then f:=1 else
begin
Fakult3(k-1,f);
f:=k*f;
end;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
k := Spinedit1.Value;
Fakult1(k);
Fakult2(k);
Fakult3(k,f);
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:20
Es hätte gereicht wenn du den ersten Beitrag editiert hättest...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#5

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:23
Die Fakultät von 70 ist eine 101-stellige Zahl.

Dann wird wohl dein Ergebnis einfach zu groß sein.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#6

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:23
HiHo,

aus von flomei genanntem Grund habe ich mir die Berechnung deiner Fakultäten nicht auf Richtigkeit hin angesehen, aber beim Dechiffrieren des unformatierten Codes fiel mir auf, dass du
  1. nichts mit den ersten beiden Funktionen anstellst, ausser sie aufzurufen, und
  2. 70! schon so groß sein dürfte, dass Double das Ergebnis nicht mehr aufnehmen kann.

Mit vielen Grüßen (aus dem Krankenbett )

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat
Lehmar
(Gast)

n/a Beiträge
 
#7

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:28
Meint ihr echt es wäre zu groß...
Aber irgendwie muss es gehen mit dem Taschenrechner (unter Zubehör) geht es ja auch
und das Ergebnis des Rechenaufwandes ist einfach faszinierend!
Habt ihr mit ihm schon einmal 100000000 Fakultät (n!) gerechnet?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:33
Zitat von Lehmar:
100000000 Fakultät (n!) gerechnet?
Ich bin doch nicht bescheuert unsterblich
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#9

Re: Fakultät berechnen

  Alt 14. Okt 2005, 14:40
Okey, Double geht bis irgendwas mit 10^300. 70! ist aber nur etwas größer als 10^100. Sollte also eigentlich passen. An dieser Stelle wäre also die genaue Fehlermeldung von Vorteil.
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#10

Re: Fakultät berechnen

  Alt 14. Okt 2005, 15:08
Stimmt, Double kann einen Wert zwischen 5.0x10^-324 und 1.7x10^308 annehmen.
Aber wenns mit kleineren Zahlen funzt, wirds wohl in irgendeiner Weise an der größe der Zahl liegen.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:44 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