AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ungültige Gleitkommaoperation bei Hausaufgabe
Thema durchsuchen
Ansicht
Themen-Optionen

Ungültige Gleitkommaoperation bei Hausaufgabe

Ein Thema von peterpan1 · begonnen am 31. Mai 2007 · letzter Beitrag vom 1. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
peterpan1

Registriert seit: 31. Mai 2007
4 Beiträge
 
#1

Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 19:40
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!!
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Programmierproblem

  Alt 31. Mai 2007, 19:45
eventuell hier:

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

soll wohl heißen

if (p/2)*(p/2)-q < 0 then
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#3

Re: Programmierproblem

  Alt 31. Mai 2007, 19:46
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 von Forenübersicht:
Fragen und Anregungen zur Delphi-PRAXiS
(z.B. Lob / Kritik / Anregungen / sonstige Fragen zum Forum)
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#4

Re: Programmierproblem

  Alt 31. Mai 2007, 19:48
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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
31. Mai 2007, 19:49
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

Registriert seit: 31. Mai 2007
4 Beiträge
 
#6

Re: Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 20:01
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?
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#7

Re: Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 20:04
guckst du hier

Zitat von peterpan1:
Delphi-Quellcode:
...

var p,q,l1,l2,v : real;
steht da v? aber wo steht x?
  Mit Zitat antworten Zitat
peterpan1

Registriert seit: 31. Mai 2007
4 Beiträge
 
#8

Re: Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 20:07
Ok, das v habe ich entfernt.

Es kommen trotzdem falsche Ergebnisse.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 20:07
Das ist kein Fehler, sondern ein Hinweis, das du die variablen nicht verwendest. Der Fehler steht noch ne Zeile tiefer
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
peterpan1

Registriert seit: 31. Mai 2007
4 Beiträge
 
#10

Re: Ungültige Gleitkommaoperation bei Hausaufgabe

  Alt 31. Mai 2007, 20:44
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 Uhr.
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