logo search
2012_METODICh_POSOBIE_PASCAL

Лабораторная работа № 14. Модуль программиста. Многомодульный проект.

При выполнении работы необходимо знать:

Теоретический минимум:

Для чего используются модули программиста?

Наличие модулей в языке Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных.

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

Как правильно оформить модуль программиста?

Модуль состоит из следующих частей:

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

Заголовок модуля.

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

Пример заголовка модуля:

Unit MyModule;

Модуль должен быть помещен в файл, имя которого совпадает с именем модуля, а расширение его должно быть .PAS

Интерфейс модуля.

Через интерфейс осуществляется взаимодействие основной программы с модулем (или модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (или модулем) при вызове этого модуля.

Интерфейс начинается словом interface. Далее после слова Uses указываются имена модулей, которые используются данным модулем (необязательная часть). После этого могут быть разделы описания констант, типов, переменных, процедур и функций.

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

Исполнительная часть модуля.

Исполнительная часть модуля включает все процедуры и функции модуля. Она может также включать локальные метки, константы, типы, переменные.

Исполнительная часть начинается словом implementation. Далее могут быть: раздел объявления меток, раздел объявления локальных констант, локальных типов, локальных переменных. Затем идут описания подпрограмм модуля. При описании подпрограмм допустимо использовать их сокращенные заголовки.

Секция инициализации.

В некоторых случаях перед обращением к модулю следует провести его инициализацию (например, установить связь с теми или иными файлами при помощи команды Assign, инициализировать какие-либо переменные и т.д.). необходимые действия можно выполнить в секции инициализации модуля. Эта секция начинается словом begin, после которого идут исполняемые операторы, и заканчивается end. (с точкой).

Пример секции инициализации:

Begin

Assign(F1, ‘File1.dat’);

End.

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

Если инициализация модуля не нужна, то в секции помещается одно слово end. (с точкой).

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

Модуль программиста, оформленный по описанным выше правилам, должен быть помещен в файл, имя которого совпадает с именем модуля, а расширение его должно быть .PAS

Проверить его работу можно только с помощью программы. Сам по себе модуль на выполнение не запускается. Его нужно только откомпилировать на диск. Для этого в меню Compile нужно установить флажок не Distention Memory (установлен по умолчанию), а Distention Disk, левой клавишей мыши щелкнув по этому пункту.

После успешной компиляции на диск (после устранения всех синтаксических ошибок) в текущем каталоге должен появиться файл с тем же именем, что и имя модуля и расширением .TPU

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

Uses MyMod; { имя модуля программиста }

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

Задача 14.

Разработать модуль программиста, содержащий следующие процедуры и функции работы с одномерным массивом:

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

Задать 2 одномерных числовых массива одинаковой размерности. В том их них, где четных элементов больше, чем нечетных, увеличить на 10 четные элементы и уменьшить на 10 нечетные элементы.