Порядок выполнения задания. Задание: написать программу вывода на экран таблицы функции, которую, оформить в виде процедуры

Задание: написать программу вывода на экран таблицы функции, которую, оформить в виде процедуры. В качестве функции использовать по выбору 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.