Zahlen in Delphi

Mit "Longinteger" meinte ich Zahlen die in lineare Listen geschrieben werden und die können doch (teoretisch) beliebig lang sein!
 
Wenn du mehrere Integer in einer Liste aneinanderhängst (die natürlich in der Tat nur vom Speicher begrenzt wird), musst du deine eigene Bignum-Library schreiben. Die Arithmetik, die du brauchst, um mit diesen Zahlenlisten addieren, multiplizieren etc. zu können, existiert ja schließlich nicht von Haus aus.

Gawayn
 
Hallo, heir mal wieder eine Frage vom einem, der nich so viel weiß. Da hier das Thema Zahlen in Delphi ist und ich nix anderes gefunden habe, poste ich einfach mal hier rein. Es geht um folgendes:
Habe neulich ein Progrämmchen geschrieben, das u.a. eine Wurzelberechnung nach Heron vornimmt. Soweit funktionierte auch alles ganz gut. Bei bestimmten Zahlenwerten aber scheint das Programm in eine Endlosschleife zu geraten und ich erkenne nicht, wo. Aber hier erst mal der code:
begin
ListBox1.Clear;
a:=zahl;
b:=1;
fehler:=1;
position:=ScrollBar1.Position;
For i:=1 to position do {position 1...5}
begin
fehler:=0.1*fehler;
end; {for}
schritt:=0;
Repeat
a:=(a+b)/2;
b:=zahl/a;
ListBox1.Items.Add(FloatToStr(b));
inc(schritt);
Edit4.Text:=IntToStr(schritt);
until (a-b)< fehler;
Edit2.Text:=FloatToStr(b);
end;

Mal so als Beispiel: Mit der Zahl 30234 fährt die Scroll-Bar der Listbox ins unendliche und das Programm hängt sich auf (ausschließlich nur bei einem Fehler von position=5, also 10hoch-5, sonst geht´s) Bei 31345 z.B. ist bei gleicher Fehlergenauigkeit 5 alles i.O. Kann mir jemand sagen, warum?
 
Hmmm, ihr seid offensichtlich genauso ratlos wie ich. Hatte auch die Datentypen von a,b und fehler von single in double geändert, da ich zunächst dachte, es liegt am eingeschränkten Zahlenbereich vom single-Typ. War aber insofern quatsch, als dass ja die Fehlergenauigkeit auf 5 Kommastellen begrenzt ist. Rätsel über Rätsel......
 

Neue Beiträge

Zurück