Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Für Fragen von Einsteigern und Programmieranfängern...
Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

Hallo zusammen!
Bin neu hier im Forum und zudem noch Programmieranfänger. Mein Problem ist folgendes: Beim füllen dieses Arrays gibt er mir folgende Fehlermeldung aus: "project project1 raised exception class 'External: SIGFPE'"!
und zwar genau an dieser stelle
...

Code: Alles auswählen

j[i*4-2,xx] := 20+b div 2-sqrt(z);
j[i*4-1,xx] := 20+b div 2-sqrt(w);
...

Über die Benutzeroberfläche kann man beispielsweise: h=40, b=40, r=10 eingeben.


hier nochmal die gesamte betroffene Füllschleife:

Code: Alles auswählen

j[1,xx] := 21 ;
j[1,yy] := 20+h/2-r ;  //Startkoordinaten 1.Quadrant ausfüllen
j[1,ee] := 0 ;
 
for i:=1 to r do
    begin
     j[i*2,yy] := j[i*2-1,yy];
     j[i*2+1,yy] := j[i*2,yy]+1;
     z := (r+1)*(r+1)-(20+h/2-j[i*4-2,yy])*(20+h/2-j[i*4-2,yy]);
     w := (r+1)*(r+1)-(20+h/2-j[i*4-1,yy])*(20+h/2-j[i*4-1,yy]);
     j[i*4,xx] := j[1,xx];
     j[i*4+1,xx] := j[1,xx];
     j[i*4-2,xx] := 20+b div 2-sqrt(z);
     j[i*4-1,xx] := 20+b div 2-sqrt(w);
 
     j[i*4-2,ee] := j[i*4-2,xx]-j[i*4-3,xx];
     j[i*4,ee] := j[i*4-1,xx]-j[i*4,xx];
     j[i*4+1,ee] := j[i*4,ee]+1;
     j[i*4-1,ee] := j[i*4-2,ee]+1;
    end;

Jedenfalls ist es zum verrückt werden und es wäre echt klasse wenn sich einer von euch Spezialisten mal über mein Problem hermachen würde.
Beste Grüße
Samson
Zuletzt geändert von Samson am So 27. Nov 2011, 17:57, insgesamt 1-mal geändert.

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Bauer321 »

bitte den Highlighter einfügen danke ;)

Code: Alles auswählen

so:[code=laz]
[/code]
www.mcpatcher.net | www.hoeper.me

Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

so...super tip! :mrgreen: danke!

Benutzeravatar
theo
Beiträge: 10872
Registriert: Mo 11. Sep 2006, 19:01

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von theo »

Könnte einen Division durch Null sein. Musst halt sicherstellen, dass das nicht passieren kann.

Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

Nene ich teile lediglich durch 2:

Code: Alles auswählen

j[i*4-2,xx] := 20+b/2-sqrt(z);
    j[i*4-1,xx] := 20+b/2-sqrt(w);
wäre das gleiche...Ich glaube das liegt an der Wurzel. Irgendwas stört ihn da und ein Syntaxfehler kann es ja nicht sein sonst hätts schon eher Probleme gegeben.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von mse »

Negatives w oder z?

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Bauer321 »

theo hat geschrieben:Könnte einen Division durch Null sein. Musst halt sicherstellen, dass das nicht passieren kann.
wenn z bzw w = 4 ist wäre das der Fall
www.mcpatcher.net | www.hoeper.me

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von mse »

Bauer321 hat geschrieben: wenn z bzw w = 4 ist wäre das der Fall
Punkt vor Strich gilt auch in Pascal. ;-)
Bei der Berechnung von z und w könnten Rundungsfehler zu einem leicht negativen Resultat statt Null führen.
Zuletzt geändert von mse am So 27. Nov 2011, 20:51, insgesamt 1-mal geändert.

Bauer321
Beiträge: 465
Registriert: Sa 21. Aug 2010, 21:30
OS, Lazarus, FPC: Windows 7 Ultimate (L 1.2.2 FPC 2.6.4 32-bit)
CPU-Target: 64-Bit
Wohnort: nahe Bremen
Kontaktdaten:

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Bauer321 »

mse hat geschrieben:
Bauer321 hat geschrieben: wenn z bzw w = 4 ist wäre das der Fall
Punkt vor Strich gilt auch in Pascal. ;-)
Bei der Berechnung von z und w könnte ein Rundungsfehler zu einem leicht negativen Resultat statt Null führen.
aso ja okay ich dachte durch das div ändert sich das irgendwie, weil eigentlich kann man ja auch / schreiben
www.mcpatcher.net | www.hoeper.me

Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

Wieso sollte durch rundungsfehler ein negatives Ergebnis zustande kommen?

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von MAC »

ok, du hast ein 2 Dimensionalen Array, aber in welchem bereich ist dieser ?
Ist dieser dynamisch ? Benutzt du setlength() ?
eine kleine beschreibung was du damit logisch erzwecken willst wäre hilfreich, ebenso wie welche bedeutung die variablen haben. h,b,r scheinen variablen zum eingeben sein, vlt so etwas wie höhe breite radius ? was machen xx,yy,ee.

Code: Alles auswählen

Signatur := nil;

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von mse »

Samson hat geschrieben:Wieso sollte durch rundungsfehler ein negatives Ergebnis zustande kommen?
Beispiel:

Code: Alles auswählen

z := (r+1)*(r+1)-(20+h/2-j[i*4-2,yy])*(20+h/2-j[i*4-2,yy]);
            ^                 ^
     1.00000000000000 - 1.00000000000001

Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

Also hier meine Startdefinitionen:

Code: Alles auswählen

procedure TForm1.Button2Click(Sender: TObject);        //create gcode
var
a:array[1..5, 1..3] of single;       //Rahmen koordiantenmatrix
f:array[1..680, 1..3] of single;    //Ausfüllen koordinatenmatrix
g:array[1..360, 1..3] of single;    //Kreis drucken
j:array[1..360, 1..3] of single;
 
 
 
i,h,b,t,v,vausfuellen,r,n,q:smallint;
hoehe, breite, temperatur, vorschub, check, radius:string ;
z,w: double;
const
xx=1  ;
yy=2  ;
ee=3  ;
Sprich Ich erzeuge einen statischen Array in den abhängig von den eingegebenen Variablen: H=Höhe, B=Breite, r=Radius kartesische Werte eingegeben werden.
Arraytabelle würde wie folgt aussehen:

Code: Alles auswählen

x-Wert      Y-Wert     e-Wert   
Schritt 1           xxx           yyy           eee
Schritt 2           xxx           yyy           eee
Schritt 3           xxx           yyy           ...
...
Wichtig zu erwähnen ist vielleicht noch, dass die Werte ausgehend von einer Startposition j[1,1..3] entstehen und über die Formeln
berechnet und abgespeichert werden.

Ich hoffe es ist klarer geworden was ich damit bezwecken will.
Danke schonmal für euer Interesse...

Samson
Beiträge: 11
Registriert: So 27. Nov 2011, 17:16

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von Samson »

Er rückt leider bei der letzten Tabelle die Spaltenbenennung nicht ein aber ich denke man versteht trotzdem was ich meine

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: Brauche dringend Hilfe! zu Fehler: 'External: SIGFPE'"!

Beitrag von u-boot »

Könnte es sein, dass du auf Datenmüll zugreifst und weiterrechnest ?
Wenn i=2.... dann greifst du für z auf j[6,yy] zu....kA ich sehe gerade nicht wo das in der Schleife vorher irgendwo j[6,yy] schon mal aufgetaucht sein soll?
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Antworten