
- •Модуль и его структура
- •Структура модуля
- •Список uses
- •Интерфейс
- •Реализациия
- •Инициализация и завершение
- •Ключевые слова
- •Слово const
- •Слово type
- •Слово var
- •Комментарии
- •Переменные
- •Типы данных и переменные
- •Преобразование типов
- •Знаки операций
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Функции Low и High
- •Динамические массивы
- •Короткая строка
- •Длинная строка
- •Расширенная строка
- •Строка с терминальным нулем
- •Операции со строками Слияние
- •Извлечение символа
- •Управляющие символы в строках
- •Разбиение литерала по строкам программы
- •Сравнение строк
- •Строковые функции
- •Форматирование строк
- •Множества
- •Объявление записи
- •Оператор with
- •Массивы записей
- •Совместимость типов данных
- •Указатели
- •Статические и динамические переменные
- •Размещение динамических переменных
- •Разыменование указателя
- •Управление вычислениями Операторы if, then, else
- •Выполнение нескольких инструкций.
- •Вложенные условия.
- •Циклы Элементы структуры цикла
- •Цикл for…
- •Функции Pred и Succ
- •Цикл while
- •Цикл repeat
- •Управление циклами
- •Оператор goto
- •Оператор case
- •Область видимости идентификаторов
- •Подпрограммы
- •Процедуры и функции
- •Объявление и определение подпрограммы
- •Параметры подпрограмм
- •Локальные процедуры и функции
- •Перегрузка подпрограмм
- •Параметры по умолчанию
- •Включение внешнего файла в модуль
Инициализация и завершение
Разделы инициализации и завершения предназначены для размещения в них кода, который должен быть выполнен в начале (initialization) и при завершении работы программы (finalization). Код раздела инициализации выполняется когда модуль загружается в оперативную память. Код раздела завершения выполняется перед выгрузкой модуля из памяти. Модуль может содержать только раздел инициализации, однако раздел завершения может быть только в паре с разделом инициализации. Разделы initialization и finalization в модулях необязательны.
Ключевые слова
Помимо обязательных разделов интерфейса и реализации модуль может содержать ряд других разделов. Каждый раздел начинается тем или иным ключевым словом. Некоторые ключевые слова могут употребляться в различных контекстах (т.е. не только как идентификаторы разделов модуля). Здесь мы рассмотрим как некоторые ключевые слова используются в модулях.
Слово const
Новый термин. Константа – это имя фиксированного значения, на которое вы часто ссылаетесь в своих программах. Объявление константы позволяет обращаться в программе к соответствующему значению по имени вместо написания величины.
Любой модуль может содержать один и более разделов объявления констант. Такой раздел начинается с ключевого слова const.
Если в программе много раз используется одно и то же численное значение или определенная строка текста появляется в нескольких местах, стоит объявить повторяющееся значение как константу.
Допустим, что имеется несколько значений, которые будут встречаться в программе много раз. Возможно, эти значения понадобятся другой программе. Тогда их можно (и нужно!) объявить как константы. В качестве примера добавим раздел констант к тексту модуля на листинге 1.3. Один раздел констант поместим в интерфейсную секцию модуля, а другой – в секцию реализации. Константы, объявления которых находятся в интерфейсной секции модуля, будут доступны в других модулях. Константы, объявленные в секции реализации, доступны только в данном модуле. На листинге 1.4 показан модуль с двумя разделами объявления констант.
Константы AppCaption, EarthMeanRadius, EarthGravitation, объявленные в интерфейсной секции модуля Unit2, могут быть в будущем использованы в любом из модулей, который в своем uses – списке содержит имя Unit2.
Константы, обозначенные идентификаторами BaseX и BaseY, будут доступны только в данном модуле, поскольку их объявления размещены в секции implementation.
Ключевое слово const используется и других контекстах исходного кода.
Листинг 1.4. Разделы объявления констант в модуле |
unit Unit2; interface const AppCaption = 'My Cool Program 1.0'; EarthMeanRadius = 6371.21; {km} EarthGravitation = 0.398603e6; {km^3/s^2} procedure DoSomething; implementation const BaseX = 20; BaseY = 200; procedure DoSomething; begin { Здесь должен быть код процедуры DoSomething. } end; end. |
Обратите внимание на то, что объявление константы содержит знак «равно» (=), а не «присвоить» (:=). Кроме того, нет спецификации типа константы. Компилятор сам определяет тип константы по виду числового значения справа от знака (=). Имена констант в программе следует использовать вместо явного написания чисел или литералов.
Осмысленное применение констант обеспечивает надежность программы и является необходимым условием простоты ее модификации в будущем. Так, чтобы изменить поведение программы (размеры окон, элементов управления, реакции и т.п.), достаточно будет изменить объявления констант только в одном фрагменте исходного кода.