Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ungültige Gleitkommaoperation bei Hausaufgabe (https://www.delphipraxis.net/93100-ungueltige-gleitkommaoperation-bei-hausaufgabe.html)

peterpan1 31. Mai 2007 18:40


Ungültige Gleitkommaoperation bei Hausaufgabe
 
Hallo,

Ich bin neu hier im Forum und habe direkt ein Problem.

Wir haben in Info als Hausaufgabe auf, ein Programm zur Lösung quadratischer Gleichungen zu programmieren.

Mein Programm:

Delphi-Quellcode:
...

var p,q,l1,l2,v : real;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 Close;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 p:=StrToFloat(PEdit.Text);
 q:=StrToFloat(QEdit.Text);

 if sqrt((p/2)*(p/2)-q)<0 then
   begin
    LEdit.Text:='Keine Lösung';
  end
else if
 sqrt((p/2)*(p/2)-q)=0 then
  begin
   LEdit.Text:='1 Lösung';
   l1:=-(p / 2) + sqrt((p/2)*(p/2) - q)
  end
 else
  begin
   LEdit.Text:='Zwei Lösungen';
   l1:=-(p / 2) + sqrt((p/2)*(p/2) - q);
   l2:=-(p / 2) - sqrt((p/2)*(p/2) - q);
  end;


L1Edit.Text:=FloatToStr(l1);
L2Edit.Text:=FloatToStr(l2);

end;

end.
Fehler :

Im Projekt1337.exe ist eine Exception der Klasse EInvalidOp aufgetreten. Meldung 'Ungültige Gleitkommaoperation'. Prozess wurde angehalten. ...

Wo liegt das Problem?

DANKE IM VORAUS!!

bttb930 31. Mai 2007 18:45

Re: Programmierproblem
 
eventuell hier:

if sqrt((p/2)*(p/2)-q)<0 then

soll wohl heißen

if (p/2)*(p/2)-q < 0 then

yankee 31. Mai 2007 18:46

Re: Programmierproblem
 
1. Willkommen in der DP!
2. Der Titel "Programierproplem" ist eher schlecht gewählt.. Über 90% alle Threads in diesem Forum behandeln Programmierprobleme.
3. Wann tritt die Exception denn genau auf? Klick mal in die Zeile, die als erstes ausgeführt wird (also wohl diese Zeile:
p:=StrToFloat(PEdit.Text);) und drück dann auf der Tastatur F5. Dann kompiliere und starte das Proghramm. Wenn das Programm an diese Stelel kommt, stoppt der Delphidebugger das Programm. Dann kannst du mit F7 immer eine Zeile weiterspringen. Das sollte helfen das Problem zu lokalisieren.

EDIT:
Fragen / Anregungen zur DP
ist nebenbei auch das gaaanz Falsche Forum für die Frage:
Zitat:

Zitat von Forenübersicht
Fragen und Anregungen zur Delphi-PRAXiS
(z.B. Lob / Kritik / Anregungen / sonstige Fragen zum Forum)


Phoenix 31. Mai 2007 18:48

Re: Programmierproblem
 
Hallo Peter.

Erstmal herzlich Willkommen hier in der Delphi-PRAXiS. Wenn Du neu bist, dann hast Du ja auch erst vor ganz kurzem unsere Regeln abgesegnet. Da steht unter anderem drin, dass man doch bitte

1.) Das richtige Forum wählen sollte,
2.) einen Aussagekräftigen Titel für seine Frage wählen sollte und
3.) idealerweise Quellcode auch als solchen formatieren sollte.

Wegen 1.) muss ich Deinen Beitrag erstmal in die richtige Sparte schieben.

2.) und 3.) korrigierst Du bitte selber: Du klickst rechts oben auf den 'Edit' - Knopf und änderst den Titel Deiner Frage bitte in etwas, das mit dem Inhalt zu tun hat. z.B. 'Ungültige Gleitkommaoperation bei Hausaufgabe' oder sowas, und dann legst Du bei der Gelegenheit auch noch bitte [ delphi ] [/ delphi ] - Tags (ohne die Leerzeichen freilich) um den geposteten Quellcode. Dann kann man den nämlich auch gescheit lesen und damit vielleicht auch noch helfen.

Danke ;-)

DP-Maintenance 31. Mai 2007 18:49

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Fragen / Anregungen zur DP" nach "Sonstige Fragen zu Delphi" verschoben.
Ist kein Thema, was die DP als solche betrifft.

peterpan1 31. Mai 2007 19:01

Re: Ungültige Gleitkommaoperation bei Hausaufgabe
 
Was ist denn hier los ?

Delphi-Quellcode:

q:=StrToFloat(QEdit.Text);
Schon direkt bei der "2." Zeile zeigt er mir einen Fehler:

Variable 'v' wurde deklariert, aber in 'Unit1' nicht verwendet.
Variable 'x' wurde deklariert, aber in 'Unit1' nicht verwendet.

Aber in der Zeile steht doch überhaupt kein v oder x ?

Im ganzen Programm habe ich diese Variablen nicht verwendet (oben bei Variablen ausgetragen).

EDIT : Jetzt läuft das Programm, aber bringt falsche Ergebnisse. Sind meine Rechnungen richtig?

bttb930 31. Mai 2007 19:04

Re: Ungültige Gleitkommaoperation bei Hausaufgabe
 
guckst du hier

Zitat:

Zitat von peterpan1
Delphi-Quellcode:
...

var p,q,l1,l2,v : real;

steht da v? aber wo steht x?

peterpan1 31. Mai 2007 19:07

Re: Ungültige Gleitkommaoperation bei Hausaufgabe
 
Ok, das v habe ich entfernt.

Es kommen trotzdem falsche Ergebnisse.

inherited 31. Mai 2007 19:07

Re: Ungültige Gleitkommaoperation bei Hausaufgabe
 
Das ist kein Fehler, sondern ein Hinweis, das du die variablen nicht verwendest. Der Fehler steht noch ne Zeile tiefer ;)

peterpan1 31. Mai 2007 19:44

Re: Ungültige Gleitkommaoperation bei Hausaufgabe
 
Delphi-Quellcode:

p:=StrToFloat(PEdit.Text);
 q:=StrToFloat(QEdit.Text);


 if ((p/2)*(p/2)-q)<0 then
   begin
    LEdit.Text:='Keine Lösung';
    L1Edit.Text:='';
    L2Edit.Text:='';
  end
else if
 ((p/2)*(p/2)-q)=0 then
  begin
   LEdit.Text:='1 Lösung';
   l1:=-(p / 2) + sqrt((p/2)*(p/2) - q)
  end
 else
  begin
   LEdit.Text:='Zwei Lösungen';
   l1:=-(p / 2) + sqrt((p/2)*(p/2) - q);
   l2:=-(p / 2) - sqrt((p/2)*(p/2) - q);
  end;

L1Edit.Text:=FloatToStr(l1);
L2Edit.Text:=FloatToStr(l2);

end;

end.
Das ist mein aktuelles Programm und ich komme nicht drauf, was an der Zeile

Delphi-Quellcode:

if ((p/2)*(p/2)-q)<0 then
falsch sein soll...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz