Einzelnen Beitrag anzeigen

pyromane

Registriert seit: 5. Sep 2007
15 Beiträge
 
#1

neues Thema: Primfaktorzerlegung bricht mit exitcode 201 ab

  Alt 22. Apr 2008, 21:03
Hoi,
ich schreib grade eine "Algorithmen" Bibliothek, mit einer grafischen Benutzeroberfläche.
Ich hab schon die Berechnung des ggTs von 2 Zahlen über den Euklid'schen Algorithmus und die darauf basierende Berechnung des kgVs.
Jetzt schreib ich mehrere Verfahren zur Berechnung von Pi.
-> 1. Monte-Carlo-Verfahren.
Ich berechne dieses folgendermaßen:

Delphi-Quellcode:
function pi_montecarlo(n : int64):double; {Ermittlung von Pi mit der Monte Carlo Methode}
var
x,sy:double;
i: int64;
begin

sy:=0;
  for i:= 0 to n-1 do
    begin
      x:=Random;
      sy:=sy+sqrt(1-sqr(x));
    end;
  result:=(4*sy/n);

end;
und geb Pi mit
Delphi-Quellcode:

label5.caption:=floattostr(pi_montecarlo(n));
aus...
Warum bekomm ich dann immer Ungültige Gleitkommaoperation??
Unter Turbo Pascal funktioniert dieselbe Formel einwandfrei!

Delphi-Quellcode:
program MonteCarloRechteck;
uses crt;
var
  x: double; { Koordinaten }
  i,n: Longint;
  sy: double; { Summe der Fkt-Werte }          { Anzahl der Druchläufe }
begin
clrscr;
writeln('n : ');
readln(n);
  Randomize;
  sy := 0;
  for i := 0 to n-1 do begin
    x := Random;
    sy := sy + sqrt(1-sqr(x)) { y ausrechnen und addieren zu sy }
  end;
  WriteLn(4*sy/n); { ueber Flaecheninhalt in pi umrechnen }

Readln;
end.
mfg Pyromane


//Edit: es scheint, dass n immer 0 ist, da nach der Abfrage
Delphi-Quellcode:
if n=0 then result:=0
else result:=4*sy/n
immer 0 zur+ckgegeben wird. Das Erklärt auch die Ungültige Gleitkommaoperation (
Division durch 0)^^
Angehängte Dateien
Dateityp: zip algorithmen_915.zip (250,6 KB, 7x aufgerufen)