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.