- •Модули
- •Зачем нужны модули?
- •Зачем нужны модули?
- •Что такое модуль?
- •Что такое модуль?
- •При изучении модулей надо освоить:
- •Структура модуля (ТП, ОП)
- •Структура модуля (ОП)
- •Имя файла, содержащего модуль
- •Пример: Модуль VECTOR, позволяющий осуществлять некоторые операции над векторами
- •Продолжение примера
- •Продолжение примера
- •Использование модулей
- •Использование модулей
- •Пример: программа, использующая модуль VECTOR
- •Продолжение примера
- •Подключение модулей в Турбо Паскале
- •Подключение модулей в Delphi
- •Модули как средство программирования
Продолжение примера
IMPLEMENTATION |
|
Function UngleRad; |
Function Scpr; |
|
Var x:Real; |
Var I:Integer; S:Real; |
|
Begin |
Begin |
|
x:=Scpr(a,b,N)/Lngth(a,N)/ |
S:=0; |
|
Lngth(B,N); |
For i:=1 To N Do |
|
If x=0 then UngleRad:=pi/2 |
S:=S+a[i]*b[i]; |
|
Else |
Scpr:=S; |
|
UngleRad:=ArcTan(Sqrt(1- |
End; |
|
x*x)/x); |
Function Lngth; |
|
End; |
Begin |
|
Function UngleGr; |
Lngth:=Sqrt(Scpr(a,a,N)); |
|
Begin |
End; |
|
UngleGr:=UngleRad(a,b,3)/pi*180; |
|
|
End; |
|
||
|
|
|
Продолжение примера
Procedure Sum; Var i:Integer; Begin
For i:=1 to N Do c[i]:=a[i]+b[i]
End;
Procedure Inp; Var I:Integer; Begin
For i:=1 To N Do Read(a[i]);
Readln
End;
End.
Использование модулей
•Если программа использует модули, то в ее начале, перед всеми разделами
описаний, должно стоять ключевое слово USES, после которого через запятую перечисляются имена этих модулей. Например:
Program ppp;
Uses crt,graph; {программа ppp использует модули crt и graph}
Использование модулей
•Если модуль использует другие модули, то предложение USES может стоять либо после слова INTERFACE, либо после слова IMPLEMENTATION. Модули, подключенные в интерфейсной части, доступны в любой точке рассматриваемого модуля; модули, подключенные в исполняемой части, доступны в любом месте модуля, за исключением интерфейсной части. Примеры использования модулем других модулей будут рассмотрены позже.
Пример: программа, использующая модуль VECTOR
Program Primunit;
{Даны два вектора а и b в трехмерном пространстве;} {вычисляется длина вектора с (с=а+b) и угол между вектором с и плоскостью XOY}
Uses VECTOR; {используется модуль VECTOR}
Var a,b,c,cpr:Ar;{тип ar объявлен в модуле}
Begin
Writeln(' Введите координаты исходных векторов'); Inp(a,3);Inp(b,3); {ввод а и в}
Sum(a,b,c,3); {c=a+b}
Writeln(' Длина вектора-суммы:', Lngth(c,3):10:3); cpr[1]:=c[1]; cpr[2]:=c[2]; cpr[3]:=0;
{cpr - проекция с на плоскость XOY} If Lngth(cpr,3)< 1.0e-6 then
Writeln('вектор c ортогонален плоскости XOY') Else
Продолжение примера
Begin
Write(' Угол между вектором с и плоскостью XOY:', UngleGr(c,cpr,3):6:1);
Writeln(' градусов'); End;
Readln;
End.
Подключение модулей в Турбо Паскале
•Чтобы файлы с расширением .TPU были доступны среде Turbo (Borland) Pascal, их следует поместить в текущий каталог или
указать их содержащий каталог в диалоговом окне опции OPTIONS/DIRECTORIES/UNIT DIRECTORIES.
Подключение модулей в Delphi
•Uses имя_модуля in имя директории
•Добавление модуля в проект в Испекторе проектов.
Модули как средство программирования
•Модули, прежде всего, дают возможность компилировать программу по частям и создавать библиотеки откомпилированных подпрограмм. Однако этим не исчерпываются возможности, которые они дают программисту.
•Модули, кроме описания процедур и функций, могут содержать также описания констант, типов, переменных, что избавляет программиста от необходимости их повторного описания.
•Информация модуля разделена по уровням доступа. В модуле выделяются видимая, доступная другим программам и содержащая основную информацию для использующего модуль программиста, интерфейсная часть и невидимая исполняемая часть.
•В модуле могут присутствовать инициирующая и завершающая части, обеспечивающие грамотное использование модуля.