Основы языка Delphi


Листинг 6 6 Решение квадратного



Листинг 6.6. Решение квадратного уравнения (использование процедуры)


unit SqRoot_; interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForml = class(TForm)

Editl: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabe1;

Label2: TLabe1;

Label3: TLabe1;

Label4: TLabe1;

Button1: TButton;

Label5: TLabel;

procedure ButtonlClick(Sender: TObject); private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

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

procedure SqRoot(a,b,c : real; var xl, 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;

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

end;

end;

procedure TForml.ButtonlClick(Sender: TObject);

var

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

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

string; // сообщение begin

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

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

if rez then

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

'x1='+FloatToStrF(kl,ffGeneral,

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

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

end;

end.












Начало  Назад  Вперед