![]() |
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.
|
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.
|
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; |
AW: Problem: 'ungültige Gleitkommaoperation'
Zitat:
Ihr (Edit: Ausnahme Bummi) benutzt schlicht und einfach die falsche Formel! |
AW: Problem: 'ungültige Gleitkommaoperation'
Zitat:
![]() |
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 |
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 03:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz