Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls, XPMan;
type
TForm1 = class(TForm)
EditP: TEdit;
EditQ: TEdit;
FvonXLabel: TLabel;
XplusLabel: TLabel;
x1Label: TLabel;
x2Label: TLabel;
CalculateBtn: TButton;
EditX1: TEdit;
EditX2: TEdit;
ClearBtn: TButton;
CopyLabel: TLabel;
EditXQ: TEdit;
xQuadLabel: TLabel;
FormatLabel: TLabel;
procedure CalculateBtnClick(Sender: TObject);
procedure ClearBtnClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
var
xq ,p ,p1 ,p2 ,q ,q1 ,q2 ,q3 ,q4 , x1 ,x2 : Extended; { Variablen als "Extended" deklarieren }
{$R *.dfm}
{$R manifest.res}
procedure TForm1.CalculateBtnClick(Sender: TObject);
begin
xq := StrToFloat(EditXQ.Text); { xq aus EditXQ holen }
p := StrToFloat(EditP.Text); { p aus EditP holen }
q := StrToFloat(EditQ.Text); { q aus EditQ holen }
p1 := p / xq; { Auf Normalform dividieren falls nötig }
q1 := q / xq;
p2 := - p1 / 2; { Zahl vor der Wurzel ausrechnen }
q2 := sqr( p1 / 2 ); { p/2 Quadrat unter der Wurzel }
q3 := (q2 - q1); { q2 ist q1+q (zusammenrechnen) }
Application.Title := 'Negativer Radikant!'; { Fenstertitel von ShowMessage }
if ( q3 < 0 ) then { Wenn q2 kleiner als 0 ist (negativ) dann... }
begin
ShowMessage('Rechnung nicht möglich!'+#13#10+'Aus einer negativen Zahl kann keine Wurzel gezogen werden!');
Exit;
end
else
q4 := sqrt(q3); { Wurzel aus q2 }
x1 := p2 + q4; { x1 ist p1+q3 }
x2 := p2 - q4; { x2 ist p1-q3}
EditX1.Text := FloatToStr(x1); { x1 ausgeben }
EditX2.Text := FloatToStr(x2); { x2 ausgeben }
end;
procedure TForm1.ClearBtnClick(Sender: TObject); { Edit Felder clearen }
begin
EditXQ.Text := '';
EditP.Text := '';
EditQ.Text := '';
EditX1.Text := '';
EditX2.Text := '';
end;
end.