Einzelnen Beitrag anzeigen

13Joe37

Registriert seit: 15. Okt 2008
9 Beiträge
 
#1

Problem mit überlauf bzw. division durch null

  Alt 20. Okt 2008, 14:55
Ahoihoi!!

ich sitz hier grad an nem kleinen Prog, das mir Pi "ausrechnet", nach folgender Methode: 1/1 + 1/4 + 1/9 + 1/16 + 1/25 + 1/36 .... 1/ n*n = Pi*Pi / 6
so, is auch alles kein Problem, bis ich n als ne sehr große zahl gesetzt hab, da bleibt das Program hängen bei ... + 1/65336 mit der fehlermeldung, ich solle doch bitte nicht durch null teilen ??

will ich doch garnich, zuerst dachte ich, dass die Zahl vllt zu groß ist, es geht aber nur mit 65336 net, mit größeren gehts (also zumindestens mal bis 99999)

Also mit dem Quelltext gehts:

Delphi-Quellcode:
var i, n: longint;
begin
n:=strtoint(edit1.text);
x:=0;
memo1.lines.Clear;
memo1.lines.Add(' 1/' + '');
for i:=2 to n do
  begin
  //memo1.lines.Add('+1/' + inttostr(i)+ '²');
    if i = 65536 then else x:=x+(1/(i*i));
  end;
x:=x+1;
memo1.lines.add('=' + floattostr(x));
end;
ohne die if zeile (also nur x:=x+(1/(i*i))) bleibt er halt hängen...

wird mich wirklich ma interessieren, woran das liegt...
hm.. vllt weil 65336 = 265² = 2^16... keine Ahnung

Vielen Dank

13Joe37
  Mit Zitat antworten Zitat