Thema: Delphi Nullstellen

Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Nullstellen

  Alt 2. Okt 2009, 20:55
Ich würde das Ganze noch mit Out-Parametern und Anzahl der Lösungen aufhübchen:
Delphi-Quellcode:
function BerechneNullstellen(a{*x^2 + }, b{*x + }, c: Double; out Null1,Null2:Double):integer;
var
  discrim : double;
begin
  if a = 0.0 then
  begin
    if b = 0.0 then
    begin
      if c = 0.0 then
        result := 4 // unendlich viele Nullstellen
      else
        result := -1; // keine Lösung
    end
    else
    begin
      Null1 := -c / b; // Funktion ist eine Gerade
      result := 1; // mit einer Nullstelle
    end;
  end
  else
  begin


  //Variablen durch a teilen, damit PQ-Formel anwendbar
  b := b / a;
  c := c / a;

  discrim := sqr(b/2)-c;
  //Prüfen, ob Diskriminante > 0
  if discrim > 0.0 then
  begin
    //Nullstellen ausrechnen
    Null1 := (-b/2.0) + Sqrt(discrim);
    Null2 := (-b/2.0) - Sqrt(discrim)
    result := 2; // 2 Lösungen
  end
  else if discrim < 0.0 then
    result := 0; // keine Lösung bzw. Lösung ist im komplexen Zahlenraum
  else
  begin
    Null1 := -b/2.0;
    Null2 := Null1;
    result := 1; // doppelte Nullstelle
  end;
  end;
end;
fork me on Github
  Mit Zitat antworten Zitat