Иллюстрированный самоучитель по Delphi 7 для начинающих

Использование процедуры. Повторное использование функций и процедур.

Листинг 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.

Повторное использование функций и процедур

Разработав некоторую функцию, программист может использовать ее в другой программе, поместив текст этой функции в раздел implementation. Однако этот способ неудобен, т. к. приходится набирать текст функции заново или копировать его из текста другой программы.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.