Библиотечные модули Unit


Подпрограммы общего назначения удобно размещать в отдельном файле специальной структуры – unit.tpu (библиотека подпрограмм).

Структурная организация библиотечного модуля иллюстрируется следующим примером:

 

Unit Uname; {оператор задающий название библиотечного модуля - Uname,

Текстовый файл обязательно должен иметь тоже название uname.pas,

После компиляции этого модуля автоматически будет создан

объектный файл с именем uname.tpu, который обычно

и передается сторонним пользователям.}

{В самом начале модуля размещается блок описания информационных объектов, которые доступны (могут быть использованы) сторонними пользователями модуля uname.tpu}

Interface {специальная операторная скобка фиксирующая начало блока описаний

информационных объектов и операций по их обработке доступных стороннему

пользователю модуля uname.tpu }

Uses Graph, Crt; {подключение к данному модулю используемых им

других библиотечных модулей}

Type T3= array [1..3] of real; {описание «стандартных для данного

библиотечного модуля» структур информационных объектов,

В переменных этого типа должна размещаться информация о координатах

векторов}

Function Spr(Var a, b: T3): real; {подпрограмма-функция, вычисляющая

скалярное произведение векторов из пространства R3.

Входные параметры: a, b: T3 – координаты перемножаемых векторов,

Выходной параметр: Spr: real – их скалярное произведение}

Function ModV(Var a: T3): real; { подпрограмма-функция, вычисляющая

модуль вектора из пространства R3.

Входной параметр: a: T3 – координаты вектора,

Выходной параметр: ModV: real – его модуль (длина)}

Procedure Vpr(Var a, b, c: T3); {подпрограмма-процедура, вычисляющая

векторное произведение векторов.

Входные параметры: a, b: T3 – координаты перемножаемых векторов,

Выходной параметр: с: Т3l – вектор- результирующий вектор}

 

{нижеследующая информация библиотечного модуля не доступна

стороннему пользователю модулем uname.tpu}

Implementation {специальная операторная скобка фиксирующая начало блока

описаний информационных объектов и операций по их обработке,

которые доступны только из текстового файла uname.pas }

Function Spr(Var a, b: T3): real; {полная копия оператора из блока Interface }

Var i: integer; R: real; {описание рабочих переменных подпрограммы}

Begin

R:=0; {обнуление рабочей переменной для накопления сумм произведений}

For i:=1 to 3 do R:=R+ a[i]*b[i]; {вычисление скалярного произведения}

Spr:=R {перепись возвращаемого результата в специальную ячейку Spr }

End; {конец описания подпрограммы-функции Spr }

 

Function ModV(Var a: T3): real; {полная копия оператора из блока Interface }

Begin

ModV:=Sqrt(Spr(a,a)); {вычисление результата}

End; {конец описания подпрограммы-функции ModV }

Procedure Vpr(Var a, b, c: T3); {полная копия оператора из блока Interface }

Begin

C[1]:=a[2]*b[3]- a[3]*b[2]; { покомпонентное вычисление}

C[2]:=a[3]*b[1]- a[1]*b[3]; {результирующего вектора}

C[3]:=a[1]*b[2]- a[2]*b[1];

End; {конец описания подпрограммы-процедуры Vpr}

Begin End. {Обязательное завершение библиотечного модуля}



Дата добавления: 2021-12-14; просмотров: 357;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.