Registriert seit: 31. Mai 2009
1.198 Beiträge
Turbo Delphi für Win32
|
Re: Quadratische Gleichungen vollständig lösen
24. Jul 2009, 18:21
Zitat von stoxx:
ich meinte keine neue Unit, sondern eine ausgelagerte Funktion reicht vollkommen, ...
Wenn wir schon dabei sind
Delphi-Quellcode:
type
TDoubleArr = Array of Double;
function SolveQuadraticEquation( A, B, C: Double ): TDoubleArr;
var
d: Double; // diskriminante (das was unter SQRT steht)
begin
// ax² + bx + c = 0
if A = 0 then
Exit;
B := B / A;
C := C / A;
// Diskriminante berechnen
d := SQR(B/2) - C;
if d > 0 then
begin // zwei Lösungen
SetLength( Result, 2 );
Result[0] := -B/2 + SQRT( d );
Result[1] := -B/2 - SQRT( d );
end else
if d = 0 then
begin // eine Lösung
SetLength( Result, 1 );
Result[0] := -B/2;
end;
// else -> keine Reelle Lösung
end;
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
|