Квадратное уравнение

Previous  Top  Next

    
 

 

Code:

unit SqRoot_;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleCtrls;

 

type

TForm1 = class(TForm)

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Label4: TLabel;

   Button1: TButton;

   Label5: TLabel;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

private

   { Private declarations }

public

   { Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

// решает квадратное уравнение

 

procedure SqRoot(a, b, c: real; var x1, x2: real; var ok: boolean);

   { a,b,c - коэффициенты уравнения

     x1,x2 - корни уравнения

     ok = True  - решение есть

     ok = False - решения нет }

var

d: real; // дискриминант

begin

d := Sqr(b) - 4 * a * c;

if d < 0

   then

   ok := False // уравнение не имеет решения

else

begin

   ok := True;

   x1 := (-b + Sqrt(d)) / (2 * a);

   x2 := (b + Sqrt(d)) / (2 * a);

end;

end;

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var

k1, k2: real; // корни уравнения

rez: boolean; // True - решение есть, False - решения нет

mes: string; // сообщение

begin

SqRoot(StrToFloat(Edit1.Text), StrToFloat(Edit2.Text),

   StrToFloat(Edit3.Text), k1, k2, rez);

if rez then

   mes := 'Корни уравнения' + #13 +

     'x1=' + FloatToStrF(k1, ffGeneral, 4, 2) + #13 +

     'x2=' + FloatToStrF(k2, ffGeneral, 4, 2) + #13

else

   mes := 'Уравнение не имеет решения';

 

label5.Caption := mes;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

winhelp(Form1.Handle, 'sqroot.hlp', HELP_CONTEXT, 1);

end;

 

end.

©Drkb::04094

http://delphiworld.narod.ru/

DelphiWorld 6.0