- •Типы данных.
- •Ввод с клавиатуры.
- •Параметры-переменные и параметры-значения.
- •Категории параметров
- •Рекурсия.
- •Новые графические процедуры и функции.
- •Linestyle
- •Thickness
- •Построение звёзд.
- •Вертикально – горизонтальное отношение.
- •Поворот фигур.
- •Вывод текста.
- •Тип данных множество.
- •Тип данных записи.
- •Записи с вариантами.
- •Текстовые файлы.
- •Файлы с прямым доступом. Типизированные файлы.
- •Нетипизированные файлы.
- •Модули.
- •ЗАГОЛОВОК МОДУЛЯ
- •ИНИЦИАЛИЗАЦИОННАЯ ЧАСТЬ
- •Рекомендованная литература.
Одесский колледж компьютерных технологий “СЕРВЕР”
концепция такого подхода заключается в объединении своих процедур и функций в собственные библиотеки (модули), которые затем могут подключаться к разрабатываемым программным продуктам.
Модуль - программная единица, текст которой компилируется независимо. Она включает определения констант, типов данных, переменных, процедур и функций, доступных для использования в вызывающих программах. Однако внутренняя структура модуля скрыта от пользователя.
Сам по себе модуль можно разделить на несколько разделов: заголовок, интерфейсная часть, реализационная часть, инициализационная часть.
ЗАГОЛОВОК МОДУЛЯ
UNIT Имя модуля; ИНТЕРФЕЙСНАЯ ЧАСТЬ
Начало раздела объявлений; Используемые при объявлении модули; Подраздел объявления доступных глобальных меток; Подраздел объявления доступных глобальных констант;
Подраздел объявления доступных глобальных типов; Подраздел объявления доступных глобальных переменных;
PROCEDURE Заголовки доступных процедур; FUNCTION Заголовки доступных функций; ИСПОЛНЯЕМАЯ ЧАСТЬ
Начало исполняемой части;
Используемые при реализации модули; Подраздел объявления скрытых глобальных меток;
30
Одесский колледж компьютерных технологий “СЕРВЕР” |
|
|
|
CONST |
Подраздел объявления скрытых глобальных |
TYPE |
констант; |
Подраздел объявления скрытых глобальных |
|
VAR |
типов; |
Подраздел объявления скрытых глобальных |
|
PROCEDURE |
переменных; |
Тела доступных и скрытых процедур; |
|
FUNCTION |
Тела доступных и скрытых функций; |
ИНИЦИАЛИЗАЦИОННАЯ ЧАСТЬ |
|
BEGIN |
Основной блок модуля; |
END. |
|
Заголовок модуля мало, чем отличается от заголовка программы. В модуле вместо зарезервированного слова PROGRAM используется слово UNIT. При выборе имени модуля следует заботиться, чтобы имя не совпадало с именами объектов (процедур, функций и т.д.) внутри программы и совпадало с именем файла, в котором он хранится. Имя модуля не может состоять более, чем из восьми символов. Если, например, имеем заголовок
Unit Global;
то исходный текст соответствующего модуля должен размещаться в дисковом файле Global.pas.
Новой по отношению к программе является в модуле интерфейсная часть. В этой части описываются все константы, типы данных и переменных, процедуры и функции, доступные в этом модуле для использования внешними программами. Интерфейсная часть модуля несёт всю информацию, необходимую для использования процедур и функций, определённых в модуле. Любая другая информация о модуле для обычного его использования не нужна.
31
Одесский колледж компьютерных технологий “СЕРВЕР”
В интерфейсной части возможно, кроме всего прочего, сделать доступными для использования уже существующие готовые модули, указав их имена в операторе USES.
Следом за оператором USES в интерфейсной части описываются доступные извне и необходимые для описанных процедур и функций определения типов данных, констант и переменных.
Все процедуры и функции, доступные для общего пользования и и определённые в данном модуле, должны быть описаны в интерфейсной части своей строкой-заголовком с указанием типов параметров. Сам текст программы этих процедур и функций находится (с дубликатом их заголовка) в реализационной части.
Пример интерфейсной части:
Unit Cmplx;
Interface Type
Complex = record
re, im : real end;
Procedure AddC (x, y : complex; var z : complex); Procedure MulC (x, y : complex; var z : complex);
Если теперь в основной программе написать предложе-
ние
Uses Cmplx;
то в программе станут доступными тип Complex и две другие процедуры – AddC и MulC из модуля Cmplx.
Реализационная часть – это часть, в которой определяются процедуры и функции. Точно так же, как и внутри обычной программы, можно определить здесь глобальные (для модуля) переменные, типы данных и константы наряду с определением процедур и функций. Определённые здесь типы данных и структуры данных недоступны извне и могут использоваться
32
Одесский колледж компьютерных технологий “СЕРВЕР”
для своих нужд только программами, входящими в реализационную часть. И интерфейсная, и реализационная части могут быть пустыми.
Например:
Implementation
Procedure AddC; begin
z.re := x.re + y.re; z.im := x.im + y.im; end;
end.
Инициализационная часть представляет собой основ-
ной блок модуля. Приведённые в ней операторы выполняются первыми, то есть они выполняются перед операторами основного блока главной программы, в которую включён модуль.
Unit FileText;
Interface
Procedure Print (s : string);
Implementation var
R : text; const
Name = 'output.txt';
Procedure Print; begin
WriteLn(f, s) end;
{Начало инициализационной части} begin
assign((f, name); rewrite (f);
{Конец инициализационной части} end.
33
Одесский колледж компьютерных технологий “СЕРВЕР”
Всреде Turbo Pascal имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. В частности, определены три режима компиляции: COMPILE, MAKE и BUILD. Режимы отличаются только способом связи компилируемого модуля или основной программы с другими модулями, объявленными в предложении USES.
При компиляции модуля или основной программы в режиме COMPILE все упоминающиеся в предложении USES модули должны быть предварительно откомпилированы и результаты компиляции помещены в одноимённые файлы с расширением TPU. Файл с расширением TPU создаётся автоматически в результате компиляции модуля.
Врежиме MAKE компилятор проверяет наличие TPU – файлов для каждого объявленного модуля. Если какой-либо из файлов не обнаружен, система пытается отыскать одноимённый файл с расширением PAS, то есть файл с исходным текстом модуля, и, если искомый файл найден, приступает к его компиляции.
Врежиме BUILD существующие TPU – файлы игнорируются, и система пытается отыскать (и компилировать) соответствующий PAS-файл для каждого объявленного в предложении USES модуля.
34