Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem: 'ungültige Gleitkommaoperation' (https://www.delphipraxis.net/166937-problem-ungueltige-gleitkommaoperation.html)

gammatester 7. Mär 2012 08:43

AW: Problem: 'ungültige Gleitkommaoperation'
 
VIelleicht solltet Ihr bei der ganzen aufgeregten Diskussion nicht vergessen, mal den Code zu testen. Alle vorgestellten Implementation liefern falsche Ergebnisse! Für a = 2, b =-6 und c= 4 sollen die Lösungen angeblich -1 und -2 sein.

C0M3T 7. Mär 2012 08:45

AW: Problem: 'ungültige Gleitkommaoperation'
 
Naja, das Progi ist einzig dazu gedacht, quadratische Gleichungen der Form 0=ax^2+bx+c zu lösen. Demnach muss, bzw. darf man auf die Formel keinen Einfluss haben. Eine Überprüfung der Variablen erscheint mir sinnvoll, mal sehen, ob ich das noch einbaue.

Bummi 7. Mär 2012 09:00

AW: Problem: 'ungültige Gleitkommaoperation'
 
Delphi-Quellcode:
Function SolveQuad(a,b,c:Double;Var x1,x2:Double;ShowErr:Boolean=false):Boolean;
var
 uw:Double;
begin
  Result := false;
  uw := b * b - 4 * a * c;
  try
  if a<>0 then
    begin
      if uw>0 then
        begin
          x1 := (-b + Sqrt(uw)) / (2 * a);
          x2 := (-b - Sqrt(uw)) / (2 * a);
          Result := true;
        end
      else if ShowErr then Messagedlg('Negative Wurzel',mtWarning,[mbok],0);
    end
   else if ShowErr then Messagedlg('Division durch 0',mtWarning,[mbok],0);
  except
    on E:Exception do if ShowErr then Messagedlg(E.Message,mtError,[mbok],0);
  end;

end;


procedure TForm2.Button1Click(Sender: TObject);
var
 a,b,c,d,e:Double;
begin
   if TryStrToFloat(Edit1.Text,a) then
      if TryStrToFloat(Edit2.Text,b) then
           if TryStrToFloat(Edit3.Text,c) then
             if SolveQuad(a,b,c,d,e,true) then
                begin
                  Edit4.Text := FloatToStr(d);
                  Edit5.Text := FloatToStr(e);
                end;
end;

gammatester 7. Mär 2012 09:04

AW: Problem: 'ungültige Gleitkommaoperation'
 
Zitat:

Zitat von C0M3T (Beitrag 1154968)
Naja, das Progi ist einzig dazu gedacht, quadratische Gleichungen der Form 0=ax^2+bx+c zu lösen. Demnach muss, bzw. darf man auf die Formel keinen Einfluss haben.

Häh :?: Was sind denn die Ergebnisse, wenn Du 0 = 2x^2 - 6x + 4 mit Deiner Methode löst? Und wenn Du Deine abgeblichen Lösungen mal einsetzt, was kommt dann raus?

Ihr (Edit: Ausnahme Bummi) benutzt schlicht und einfach die falsche Formel!

TiGü 7. Mär 2012 09:16

AW: Problem: 'ungültige Gleitkommaoperation'
 
Zitat:

Zitat von gammatester (Beitrag 1154978)
Zitat:

Zitat von C0M3T (Beitrag 1154968)
Naja, das Progi ist einzig dazu gedacht, quadratische Gleichungen der Form 0=ax^2+bx+c zu lösen. Demnach muss, bzw. darf man auf die Formel keinen Einfluss haben.

Häh :?: Was sind denn die Ergebnisse, wenn Du 0 = 2x^2 - 6x + 4 mit Deiner Methode löst? Und wenn Du Deine abgeblichen Lösungen mal einsetzt, was kommt dann raus?

Ihr (Edit: Ausnahme Bummi) benutzt schlicht und einfach die falsche Formel!

Bevor jetzt alle anfangen mit Taschenrechner und Tafelwerk zu hantieren:
http://www.wolframalpha.com/input/?i...x^2%2B-6*x%2B4

C0M3T 7. Mär 2012 15:49

AW: Problem: 'ungültige Gleitkommaoperation'
 
@Gammatester:

Also mit meiner Formel kommen die beiden richtigen Ergenisse raus. (1&2)
eingesetzt in die Gleichung ergeben beide 0. So soll es sein.:-D

gammatester 7. Mär 2012 17:18

AW: Problem: 'ungültige Gleitkommaoperation'
 
Sorry! Das ist richtig, beim nochmaligem Überfliegen, sieht es so aus, als wenn ab Popov's Teil 2 in #18 wurde mit b/(2a) +- gearbeitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.
Seite 3 von 3     123   

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