Порядок выполнения задания. Задание: написать программу вывода на экран таблицы функции, которую, оформить в виде процедуры
Задание: написать программу вывода на экран таблицы функции, которую, оформить в виде процедуры. В качестве функции использовать по выбору Tg(x), Ch(x) и sin (x).
Создание модуля
Создавая модуль, следует обратить внимание на то, что он не должен иметь своей формы. Система DELPHI при начальной загрузке автоматически создает шаблон программы, имеющий в своем составе форму, файл проекта и т.д. Так как модуль состоит только из одного файла, то необходимо перед его созданием уничтожить заготовку файла проекта и форму. Для этого в меню File выбрать Close All, файл проекта не сохранять.
Для создания модуля в меню File выбрать File New, и затем в репозитории – пиктограмму. В результате будет создан файл с заголовком Unit Unit1. Имя модуля можно сменить на другое, отвечающее внутреннему содержанию модуля, например Unit Matfu;. Затем необходимо сохранить файл с именем, совпадающим с именем заголовка модуля: Matfu.pas. Следует обратить внимание на то, что имя файла должно совпадать с именем модуля, иначе DELPHI несможет подключить его к другой программе.
Подключение модуля
Для того чтобы подключить модуль к проекту необходимо в меню Project выбрать опцию Add to Project... и выбрать файл, содержащий модуль. После этого в разделе Uses добавить имя подключаемого модуля - MatFu. Теперь в проекте можно использовать функции, содержащиеся в модуле.
Панель диалога будет иметь следующий вид (фиг.7.1).
Фиг.7.1
Тексты модуля и вызывающей программы приведены ниже.
Текст модуля:
Unit Matfu;
Interface
Function Tg(x: extended) : extended;
//Функция для вычисления тангенса
Function Ch(x: extended) : extended;
//Функция для вычисления гиперболического синуса
Function Sin2(x: extended) : extended; //функция для вычисления
//квадрата синуса
Iplementation
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, MatFunc;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
RadioGroup1: TRadioGroup;
Procedure FormCreate(Sender: TObject);
Procedure Button1Click(Sender: TObject);
Procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
func = function(x:extended) : extended;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '0';
Edit2.Text := '2';
Edit3.Text := '0.2';
Memo1.Clear;
RadioGroup1.ItemIndex := 0;
end;
procedure Tabl(f: func; xn, xk, h: extended);
var
x, y : extended;
begin
x := xn;
Repeat
y := f(x);
Form1.Memo1.Lines.Add('x=' + FloatToStrF(x,fffixed, 8,2)+
' y=' + FloatToStrF(y,fffixed, 8,2));
x := x + h;
Until (x > xk);
end;
procedure TForm1.Button1Click(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);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Halt
end;
end.