Hallo zusammen!
Da ich in der Suche und mit google nicht weitergekommen bin, frage ich mal hier...vielleicht könnt ihr mir ja helfen.
Ich habe folgendes Problem bei meinem Programm: Ich bekomme an einer Stelle im Programm immer die Fehlermeldung 'Gleitkommaüberlauf'. Dieser Fehler tritt auf, seit ich an einer anderen Stelle etwas verändert habe.
Ich poste mal den entsprechenden Teil des Quelltextes:
Delphi-Quellcode:
procedure zaehleschritte (crf,cif:real);
begin
zaehler:=0;
zrp := 1;
zip := 1;
vergleich := 0;
abweichung := 0;
while zrp < 600 do
begin
while zip < 600 do
begin
if form1.button2.caption = 'Starte' then
begin
zrf := zrp/(form1.image1.width/diffxf)+x2f;
zif := zip/(form1.image1.height/diffyf)+y2f;
end
else
begin
zrf := zrp/(form1.image1.width/h3)+h2;
zif := (zip/(form1.image1.height/h4)+h1)*-1;
end;
repeat
inc(zaehler);
ergreal := sqr(zrf) - sqr(zif) + crf; // an dieser Stelle tritt beim neunten Durchlauf die Fehlermeldung auf
ergimag := (cif + 2*zrf*zif);
zrf := ergreal;
zif := ergimag;
betragerg := sqrt(sqr(ergreal) + sqr(ergimag));
abweichung := vergleich - betragerg; (*)
if abweichung < 0 then abweichung := -abweichung; (*)
vergleich := betragerg; (*)
until (abweichung <= 0.0001) or (zaehler = maxzaehler); (**)
zeichne(zaehler,zrp,zip);
zaehler:=0;
zip := zip + 1;
end;
zrp := zrp + 1;
zip := 1;
end;
ende := now;
zeit := ende-start;
form1.edit4.text:=timetostr(zeit);
end;
Das Fehlermeldung kommt, seit ich die mit (*) gekennzeichneten Zeilen hinzugefügt und die mit (**) gekennteichnete geändert habe.
Ich habe vorher alle Variablen in Formcreate initialisiert (auf null gesetzt).
MfG, watzi