русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Внешние процедуры и функции


Дата добавления: 2014-11-27; просмотров: 741; Нарушение авторских прав


 

Если тексты процедур и функций размещены непосредственно в программе (как это было описано в предыдущем разделе), то их можно назвать внутренними. Когда возникает необходимость применить некоторые из этих процедур и/или функций в другой программе, придется переписать их туда. Хотя сделать это совсем не сложно, но при большом их количестве увеличение текста программы может оказаться чрезмерным. В Турбо Паскале используется более изящное решение этой проблемы – процедуры и функции можно помещать в модули, которые потом допустимо присоединять к любым программам (при этом совсем необязательно иметь в наличии исходный текст).

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

В Турбо Паскале существует 2 вида модулей:

1) модули пользователей;

2) стандартные модули.

 

Модули пользователей

 

Структура модуля (стандартного или написанного пользователем) приведена на рис. 2.11.

Модуль должен начинаться с заголовка, включающего служебное слово Unit и имя_модуля.

Пример.

Unit MyModul; или

Unit Sort;

 

Имя файла, содержащего модуль, и имя модуля должны быть одинаковыми!

Применительно к приведенному примеру это означает, что модуль MyModulдолжен храниться в файле MyModul.pas, а модуль Sort– в файле Sort.pas.

Интерфейсная секция — общедоступная часть, "видимая" из любой программы (модуля). В ней описываются так называемые глобальные данные (константы, типы, переменные), используемые в модуле и доступные программе (или другим модулям, к которым присоединен данный). Здесь же содержатся заголовки (но не тексты!) процедур и функций, помещенных в модуль. Любая программа имеет доступ к этим объектам, как если бы они были описаны в ней.

 

Секция реализации содержит тела процедур и функций, описанных в интерфейсной секции. Здесь же описываются константы, переменные, процедуры и функции, являющиеся локальными, т.е. недоступными вне этого модуля.



 

После нее может быть секция инициализации. Она не имеет заголовка и может содержать (или не содержать) некоторую последовательность операторов, выполняющуюся при использовании модуля.

Итак, последняя часть модуля всегда имеет следующий вид:

Begin

Операторы, выполняющиеся при инициализации модуля, которые могут отсутствовать.

End.

Модуль компилируется отдельно. Получается файл с расширением tpu, например, MyModul.tpu или Sort.tpu. Откомпилированный модуль компилятором должен быть помещен на диск. Если это не делается по умолчанию, то в меню Compile должно быть устанавлено Destination - disk (а не Memory).

Чтобы программа могла работать с какими-либо модулями, сразу после ее заголовка должен быть записан оператор использования, определяемый служебным словом Uses. После этого слова через запятую перечисляются имена всех модулей, непосредственно используемых программой, а также модулей, используемых первыми.

Пример. Program Test;

Uses

MyModul, Sort, Dos;

Const

Пример 1. Напишем модуль, содержащий процедуру сортировки массива вещественных чисел, и функцию, определяющую сумму его элементов.

 

Unit Sort;

Interface { интерфейсная секция }

Const { Глобальная константа и тип }

Nmax=200;

Type

mas = array[1..Nmax] of real;

Procedure SortY(Var Y : mas; m : integer);

Function SumMas (Y : mas; m : integer): real;

 

Implementation { секция реализации }

Procedure SortY; { можно только имя }

Var

i,k : integer;

a : real;

Begin

for k := 1 to m-1 do

for i := 1 to m-k do

if Y[i]>Y[i+1]then

Begin

a := Y[i];

Y[i] := Y[i+1];

Y[i+1] := a;

end;

end; { SortY }

Function SumMas; { можно только имя }

{Нахождение суммы элементов массива вещественных чисел}

Var

I : Integer;

S : Real; { Вспомогательная переменная - сумма}

Begin

S := 0;

For i := 1 to k Do

S:=S + X[i];

SumMas:=S;

End; { SumMas }

Begin

{ секция инициализации не содержит операторов }

End.

Основная программа, которая использует этот модуль, может быть такой.

 

Program Main;

Uses

Sort; {пользовательский модуль}

Var

X:mas; { mas - глобальный тип, описанный в модуле sort}

n,i,j:integer;

z:real;

Begin

Writeln(’Введите размер массива’);

ReadLn (n); { размер массива }

Writeln(’Введите массив’);

For i := 1 to n do

ReadLn (x[i]);

SortY (x,n);

Z := SumMas (x,n);

Writeln(’Сумма элементов массива = ’,Z:8:2);

Writeln(’Упорядоченный массив’);

For i := 1 to n do

Write (x[i]:8:2);

Writeln;

Writeln ('Конец работы. Нажмите клавишу ENTER');

ReadLn;

End.

 



<== предыдущая лекция | следующая лекция ==>
Функции | Приближенное вычисление функций


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.129 сек.