Модульное программирование – это организация программы как совокупности небольших независимых блоков, называемых модулями, структура и поведение которых подчиняются определенным правилам.
Использование модульного программирования позволяет упростить тестирование программы и обнаружение ошибок. Аппаратно-зависимые подзадачи могут быть строго отделены от других подзадач, что улучшает мобильность создаваемых программ.
Модуль– это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части.
Модуль начинается с зарезервированного слова Unit. Модуль не может быть запущен на выполнение!!! Лучше компиляцию модуля в среде Turbo Pascal осуществлять через режим Make (F9).
Любой модуль имеет следующую структуру:
Unit <имя_модуля>;
Interface
<интерфейсная часть>;
Implementation
<исполняемая часть>;
Begin
<инициирующая часть>;
End.
В разделе interfaceописывается взаимодействие данного модуля с другими пользовательскими и стандартными модулями, а также с главной программой. В разделе реализации implementation указывается исполняемая (внутренняя) часть описаний данного модуля, которая недоступна для других модулей.
Модули делят на стандартные и пользовательские. Пользовательские модули создаются пользователем. В среде Turbo Pascal 7.0 имеется 8 стандартных модулей, в которых содержится множество различных типов, констант, процедур и функций. Этими модулями являются system, dos, crt, graph, overlay, turbo3, graph3. Лишь один модуль system подключается к любой программе автоматически, все остальные становятся доступны только после указания их имен в списке подключаемых модулей Uses.
Рассмотрим пример реализации модуля с операциями над векторами. Вектор опишем как массив вещественных чисел (его координаты). Реализуем в модуле операции над векторами: ввод вектора, вывод вектора, сумма векторов, разность векторов, умножение вектора на число, скалярное произведение векторов, вычисление длины вектора.
unit vectory; {Заголовок модуля, имя модуля должно совпадать с именем файла, в котором храниться модуль }