unit quadratisch;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Label5: TLabel;
    BitBtn1: TBitBtn;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var a, b, c, Diskriminante, Lsg1, Lsg2: Real;
    Spruch: String ;
procedure TForm1.Button1Click(Sender: TObject);
begin
     (* Eingabe und Übersetzung der Koeffizienten *)
     a := StrToFloat(Edit1.Text);
     b := StrToFloat(Edit2.Text);
     c := StrToFloat(Edit3.Text);

     (* Entscheidung, ob es überhaupt eine quadratische Gleichung ist *)
     if a = 0 then Spruch := 'Das ist keine quadratische Gleichung.'
     else            //Gleichung lösen
        begin
        Diskriminante := b*b - 4*a*c ;
        (* Entscheidung, ob es überhaupt eine Lösung gibt *)
        if  Diskriminante < 0
        then Spruch := 'Es gibt keine reelle Lösung.'
        else
                (* Entscheidung, ob es eine oder zwei Lösungen gibt *)
                if Diskriminante = 0
                then    //einzige Lösung berechnen
                  begin
                  Lsg1 := - b / (2*a);
                  Spruch := 'Die einzige Lösung ist ' + FloatToStr(Lsg1) + ' .';
                  end
                else    // zwei Lösungen berechnen
                  begin
                  Lsg1 := (- b + sqrt(Diskriminante)) / (2*a);
                  Lsg2 := (- b - sqrt(Diskriminante)) / (2*a);
                  Spruch := 'Die erste Lösung ist ' + FloatToStr(Lsg1) +
                  ' und die zweite Lösung ist ' + FloatToStr(Lsg2) + ' .';
                  end;  //Ende der zweiten und dritten if-then-else-Entscheidung
        end;            //Ende der ersten if-then-else-Entscheidung

     Label5.Caption := Spruch;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        Edit1.Text := '1';
        Edit2.Text := '0';
        Edit3.Text := '0';
end;

end.