Для того чтобы подключить модуль к проекту, необходимо в меню Project выбрать опцию Add to Project… и выбрать файл, содержащий модуль. После этого в разделе Uses добавить имя подключаемого модуля – MatFu. Теперь в проекте можно использовать функции, содержащиеся в модуле.
Тексты модуля и вызывающей программы приведены ниже.
Текст модуля:
unit Matfu;
interface
Function Tg(x:extended) : extended; // Функция для вычисления тангенса
Function Ch(x:extended) : extended; // Функция для вычисления гиперболического синуса
Function Sin2(x:extended) : extended; // Функция для вычисления квадрата синуса
implementation
Function Tg;
begin
Result:=Sin(x)/Cos(x);
end;
Function Ch;
begin
Result:=(exp(x)-exp(-x))/2;
end;
Function Sin2;
begin
Result:=sqr(sin(x));
end;
end.
Текст вызывающей программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls,MatFu;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
RadioGroup1: TRadioGroup;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
fun = function(x:extended):extended; // Объявление типа функция
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0';
Edit2.Text:='3';
Edit3.Text:='0,3';
Memo1.Clear;
RadioGroup1.ItemIndex:=0;
end;
procedure Tabl(f:fun;xn,xk,h:extended); // Расчет таблицы
var x,y: extended;
begin
x:=xn;
repeat
y:=f(x);
Form1.Memo1.Lines.Add('x='+FloatToStrf(x,fffixed,8,3)+
' y='+FloatToStrf(y,fffixed,8,3));
x:=x+h;
until (x>xk);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var xn,xk,h : extended;
begin
xn:=StrToFloat(Edit1.Text); // Начальное занчение интервала
xk:=StrToFloat(Edit2.Text); // Конечное значение интервала
h:=StrToFloat(Edit3.Text); // Шаг расчета
case RadioGroup1.ItemIndex of // Выбор функции
0 : Tabl(tg,xn,xk,h);
1 : Tabl(ch,xn,xk,h);
2 : Tabl(sin2,xn,xk,h);
end;
end;
end.