Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Builder методичка часть 1.pdf
Скачиваний:
77
Добавлен:
16.03.2016
Размер:
1.88 Mб
Скачать

Функции могут быть использованы в качестве формальных параметров подпрограмм. Для этого определяется тип-указатель на функцию:

typedef <тип_результата> (*<имя_указателя на функцию>)(<список типов>);

9.2.Использование модулей

Вслучае разработки сложных проектов можно часть функций поместить в другие программы и подключать их при необходимости.

Модуль программная единица, включающая в себя файл программы с

расширением (.cpp), где находится определение функций, и заголовочный файл с расширением (.h), где находятся прототипы функций, описаниеРклассов, объявления глобальных переменных.

Заголовочный файл подключается к файлу программыИ с помощью директивы препроцессора #include. По этой директивеУ препроцессор до

компиляции программы добавляет содержимое заголовочного файла в файл программы. Г

9.3.Порядок выполненияБзадания

9.3.1.кСоздание модуля

Для создания модуля в меню File выбрать New – Unit. В результате будет создан файл с заголовком Unit Unit1. Имя модуля можно сменить на другое, отвечающее внутреннему сод ржанию модуля, например MyUnit.

9.3.2. Подключение модуля

Для того чтобы дключи ь модуль к проекту, необходимо в меню Project

выбрать опцию Add to Project… и выбрать файл, содержащий модуль. После этого

 

 

 

 

т

 

 

 

по

 

 

и

 

подключить загол в чный файл модуля с помощью директивы препроцессора

 

л

 

 

#include. Теперь в проекте можно использовать функции, содержащиеся в

б

 

 

 

модуле.

 

 

 

 

//

Пане ь диа ога будет иметь вид рис. 9.1.

и

 

Тексты модуля и вызывающей программы приведены ниже.

 

Текст заголовочного файла модуля:

Б#ifndef MyUnitH

#define MyUnitH

#include <StdCtrls.hpp>

//---------------------------------------------------------------------------

typedef double (*TFun)(double);

void Tab(TMemo *mem,TFun f,double xn,double xk,double h); #endif

PDF created with pdfFactory Pro trial version www.pdffactory.com

Текст файла модуля:

#pragma hdrstop #include "MyUnit.h"

#pragma package(smart_init)

void Tab(TMemo *mem,TFun f,double xn,double xk,double h)

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

double x,y;

 

 

 

 

 

 

 

 

 

 

 

 

Р

x=xn;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while(x<xk)

 

 

 

 

 

 

 

 

 

 

 

И

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y=(*f)(x);

 

 

 

 

 

 

 

 

 

 

У

 

mem->Lines->Add("x="+FloatToStrF(x,ffFixed,8,3)+

 

 

 

 

 

 

 

" y="+FloatToStrF(y,ffFixed,8,3));

 

 

Г

 

 

x+=h;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Б

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

а

 

 

 

 

 

Текст вызывающей программы:

 

 

 

 

 

 

//

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

е

 

 

 

 

 

 

#include <vcl.h>

 

 

 

 

 

 

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

#include <Math.h>

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

#include "MyUnit.h"

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

#pragma hdrstop

 

 

 

 

 

 

 

 

 

 

л

 

 

 

 

 

 

 

 

 

 

#include "lr9.h"

 

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

 

#pragma package(smart init)

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

#pragma resource "*.dfm"

 

 

 

 

 

 

 

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

 

TForm1 *Form1;

 

 

 

 

 

 

 

 

 

 

 

 

//----------------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

double cTg( double x); // Функция для вычисления котангенса

double Ch(double x); // Функция для вычисления гиперболического синуса double Sin2(double x); // Функция для вычисления квадрата синуса

//---------------------------------------------------------------------------

PDF created with pdfFactory Pro trial version www.pdffactory.com

__fastcall TForm1::TForm1(TComponent* Owner)

 

 

 

 

: TForm(Owner)

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

void __fastcall TForm1::FormCreate(TObject *Sender)

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

Р

Edit1->Text="0,1";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Edit2->Text="3";

 

 

 

 

 

 

 

И

Edit3->Text="0,3";

 

 

 

 

 

 

 

 

 

 

 

 

 

У

 

Memo1->Clear();

 

 

 

 

 

 

 

 

 

 

 

 

Г

 

 

RadioGroup1->ItemIndex=0;

 

 

 

 

 

 

 

 

Б

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//---------------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

 

 

{

 

 

 

 

 

 

 

к

 

 

 

 

Memo1->Clear();

 

 

е

 

 

 

 

 

 

т

 

 

 

 

 

 

double xn=StrToFloat(Edit1->Text);

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

double xk=StrToFloat(Edit2->Text);

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

double h=StrToFloat(Edit3->Text);

 

 

 

 

 

switch(RadioGroup1->ItemIndex)

 

 

 

 

 

 

{

 

 

л

 

 

 

 

 

 

 

 

 

 

 

б

 

 

 

 

 

 

 

 

 

 

case 0:Tab(Memo1,cTg,xn,xk,h); break;

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

case 1:Tab(Memo1,Ch,xn,xk,h); break;

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

case 2:Tab(Memo1,Sin2,xn,xk,h); break;

}

}

double cTg( double x)

{

return cos(x)/sin(x);

}

PDF created with pdfFactory Pro trial version www.pdffactory.com

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]