- •Лекция № 1 Тема: Основы алгоритмизации.
- •1.1 Алгоритм. Свойства алгоритма.
- •1.2 Алгоритмическая конструкция ветвления
- •1.3 Алгоритмическая конструкция цикла.
- •1.4 Этапы решения задач на эвм.
- •Лекция № 2 Тема: Введение в Turbo Pascal. Элементы языка.
- •2.1. История создания языка.
- •2.2. Алфавит tp 7.0.
- •2.3 Идентификаторы
- •2.4 Константы
- •2.5 Выражения
- •Лекция № 3 Тема: Структура программы
- •3 In s6 возвращает true;
- •2*2 In s1 возвращает false.
- •5.1 Условный оператор.
- •5.2 Операторы повторений
- •5.3 Операторы цикла.
- •5.5 Метки и операторы перехода.
- •Лекции №6 Тема: Процедуры и функции.
- •6.1 Локализация имен
- •6.2 Описание программы
- •6.3 Параметры
- •6.4 Рекурсия и опережающее описание
- •Лекция № 7 Тема: Типизированные константы.
- •7.1 Константы простых типов и типа String
- •7.2 Константы - массивы
- •7.3 Константы - записи
- •7.4 Константы - множества
- •7.5 Константы - указатели
- •Лекция № 8 Тема: Файлы
- •8.1 Доступ к файлам
- •8.2 Имена файлов
- •8.3 Инициализация файла
- •8.4 Текстовые файлы
- •Лекция № 9 Тема: Модуль.
- •9.1 Структура модулей
- •9.2 Заголовок модуля и связь модулей друг с другом
- •9.3 Интерфейсная часть
- •9.4 Исполняема часть
- •9.5 Инициирующая часть
- •9.6 Стандартные модули
- •Лекция № 10 Тема: Стандартный модуль crt
- •10.1 Программирование клавиатуры
- •10.2 Текстовый вывод на экран
Лекция № 9 Тема: Модуль.
Цель: Дать понятие о модуле, структура модуля, научить использовать модули в своих проектах.
План:
9.1 Структура модулей
9.2 Заголовок модуля и связь модулей друг с другом
9.3 Интерфейсная часть
9.4 Исполняемая часть
9.5 Инициирующая часть
9.6 Стандартные модули
Модуль - это автономно компилируемая программная единица, включающая в себя различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции) и, возможно, некоторые исполняемые операторы инициирующей части
9.1 Структура модулей
Модуль имеет следующую структуру:
UNIT <имя>;
INTERFACE
<интерфейсная часть>
IMPLEMENTATION
<исполняемая часть>
BEGIN
<инициирующая часть>
END.
Здесь UNIT - зарезервированное слово (единица), начинает заголовок модуля;
<имя> - имя модуля (правильный идентификатор);
INTERFACE - зарезервированное слово (интерфейс); начинает интерфейсную часть модуля;
IMPLEMENTATION - зарезервированное слово (выполнение); начинает исполняемую часть;
BEGIN - зарезервированное слово; начинает инициирующую часть модуля; конструкция BEGIN <инициирующая часть> необязательна;
END - зарезервированное слово - признак конца модуля.
Таким образом, модуль состоит из заголовка и трех составных частей, любая из которых может быть пустой.
9.2 Заголовок модуля и связь модулей друг с другом
Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля и возможности подключения средств, облегчающих разработку крупных программ, это имя должно совпадать с именем дискового файла, в который помещается исходный текст модуля. Если, например, имеем заголовок
Unit Global;
то исходный текст соответствующего модуля должен размещаться в дисковом файле GLOBAL.PAS. Имя модуля служит для его связи с другими модулями и основной программой. Эта связь устанавливается специальным предложением
USES <сп.модулей>
Здесь USES - зарезервированное слово (использует);
<сп.модулей> - список модулей, с которыми устанавливается связь; элементами списка являются имена модулей, отделяемые друг от друга запятыми, например:
Uses CRT, Graph, Global;
Если объявление USES... используется, оно должно открывать раздел описаний основной программы. Модули могут использовать другие модули. Предложение USES в модулях может следовать либо сразу за зарезервированным словом INTERFACE, либо сразу за словом IMPLEMENTATION, либо, наконец, и там, и там (т.е. допускаются два предложения USES).
9.3 Интерфейсная часть
Интерфейсная часть открывается зарезервированным словом INTERFACE. В этой части содержатся объявления всех глобальных объектов модуля (типов, констант, переменных и подпрограмм), которые должны стать доступными основной программе и/или другим модулям. При объявлении глобальных подпрограмм в интерфейсной части указывается только их заголовок, например:
Unit Cmplx;
Interface
tуре
complex = record
re,im:real
end;
Procedure AddC(x,у:complex; var z:complex);
Procedure MulC(x,у:complex; var z:complex);
Если теперь в основной программе написать предложение
Uses Cmplx;
то в программе станут доступными тип COMPLEX и две процедуры - ADDC и MULC из мдуля CMPLX
Отметим, что объявление подпрограмм в интерфейсной части автоматически сопровождается их компиляцией с использованием дальней модели памяти (см. гл.8). Таким образом обеспечивается доступ к подпрограммам из основной программы и других модулей. Следует учесть, что все константы и переменные, объявленные в интерфейсной части модуля, равно как и глобальные константы и переменные основной программы, помещаются компилятором Турбо Паскаля в общий сегмент данных (максимальная длина сегмента 65536 байт). Порядок появления различных разделов объявлений и их количество может быть произвольным. Если в интерфейсной части объявляются внешние подпрограммы или подпрограммы в машинных кодах, их тела (т.е. зарезервированное слово EXTERNAL, в первом случае, и машинные коды вместе со словом INLINE - во втором) должны следовать сразу за их заголовками в исполняемой части модуля (не в интерфейсной!). В интерфейсной части модулей нельзя использовать опережающее описание.
