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

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

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.
DelphiWorld 6.0

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...