Во вводной части лекции следует объяснить учащимся, что только с появлением модулей Паскаль стал средством разработки больших профессиональных программных комплексов. Модуль, как и процедуры, служит реализации идеи модульности — выделения подзадач внутри большой задачи. Отличие модуля от набора «внутренних» процедур — возможность отдельной трансляции и отдельного от программы хранения; к модулю может обращаться не °Дна программа, а много разных программ. Благодаря модулям в Паскале возможно организовывать внешние библиотеки программ По различным проблемам.
Целью школьного спецкурса не может быть самостоятельная Разработка учащимися модулей. Такое задание возможно в качестве проекта для некоторых учащихся, а для большинства эта тема является ознакомительной. Вполне достаточно привести примеры двух-трех несложных модулей и разобрать как их внутреннее устройство, так и механизм взаимодействия с обращающимися к ним программами.
Описав общую структуру модуля и объяснив назначение основных его разделов (заголовок, интерфейсная часть, раздел реализации, раздел инициализации), приведите пример модуля. Допустим, мы хотим дополнить'Паскаль средствами работы с комплексными числами (хотя бы на уровне четырех арифметических действий). В школе, в которой углубленно изучается программирование, учащиеся скорее всего с комплексными числами знакомы. Возможны два подхода к реализации этой задачи.
1. Комплексное число представляется парой действительных (а, Ь). Конструируют четыре процедуры — действия над комплексными числами; у каждой из них по 4 параметра-значения и по 2 параметра-переменных. Сводят их в модуль, в интерфейсной части которого находятся заголовки этих процедур. Показывают, как обращается к нему внешняя программа, объясняют смысл наличия в ней инструкции uses <список модулей.
2. Комплексное число представляется одним идентификатором, т.е. мы хотим иметь возможность записывать присваивания вида А := В + ЕС, где А, Ви С — комплексные числа. Эта задача потруднее. Путь к ее решению — создать тип (назвав его Complex), элементы которого — двухполевые записи; первое поле — действительная часть числа, второе — коэффициент при мнимой части.
Всякий раз, разбирая примеры модулей, подчеркните, что разработчику внешней программы, использующему модули, нет никакой необходимости знать устройство процедур, составляющих раздел реализации. Вполне достаточно иметь детальное описание интерфейсной части и назначения модуля.
Более детально учащиеся знакомятся с модулями и приходят, в частности, к пониманию сформулированного выше утверждения на примерах стандартных модулей, входящих обычно в комплект программ Турбо Паскаля. Наиболее доступны из них два модуля — Crt (доступ к экрану дисплея в текстовом режиме, работа с клавиатурой, звуком) и Graph (управление графическим режимом работы дисплея).