Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория.pdf
Скачиваний:
467
Добавлен:
11.05.2015
Размер:
1.15 Mб
Скачать

Раздел закрывается точкой с запятой (;).

Раздел может быть пустым (может отсутствовать), только если в модуле нет меток.

Метки в разделе меток могут быть перечислены в произвольном порядке. Например, для примера 6.1:

Label 5, M1;

6.3. Раздел констант

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

Например,

e := 2.71;

Такое присвоение удобно сделать один раз и далее в программе обращаться к константе уже по имени.

Присвоение константе имени выполняется в разделе описания констант. Раздел начинается служебным словом Const и имеет формат, который иллюстрирует рисунок 6.6.

<Раздел_констант> ::=

Const <Описание_константы>

<Описание_типиз_константы>

Рисунок 6.6 – Синтаксическая диаграмма раздела констант

Таким образом, в разделе констант могут быть объявлены обычные (нетипизованные) константы и типизованные константы.

Формат описания нетипизованной константы представляет рисунок 6.7. Описание константы вводит идентификатор (<Ид.> на синтаксической

диаграмме), под которым подразумевается некоторое константное выражение. Тип константы определяется типом данного выражения.

Константное выражение – это выражение, вычисляемое на этапе компиляции. Константное выражение не может содержать имен переменных и типизированных констант, оператора получения адреса @ или включать

134

обращение к определенным пользователем функциям. В константных выражениях допустимо обращение к следующим стандартным функциям: Abs, Chr, Hi, Lo, Length, Odd, Ord, Pred, Ptr, Round, Sizeof, Succ, Swap, Trunc.

<Описание_константы> ::= <Ид.> = <Константное_выражение> ;

Рисунок 6.7 – Синтаксическая диаграмма описания нетипизованной константы

В константных выражениях могут быть использованы только имена констант.

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

Таким образом, раздел констант может быть пустым (отсутствовать).

Пример 6.2.

Объявление нетипизованных констант.

Const

E = 2.7115;

I = 10000;

Eps1 = 0.0001;

Eps2 = Eps1 / 100.0;

Pi1 = -2 * Pi;

Типизованные константы аналогичны инициализированным переменным.

Инициализированные переменные – это переменные, которым при входе в блок присваиваются начальные значения.

Различают скалярные и структурные типизованные константы. Синтаксис объявления типизованных констант представляет рисунок 6.8. На данном рисунке <Ид.> - идентификатор типизованной константы.

<Константа> представляет собой скалярную типизованную константу. Остальные виды констант – это структурные типизованные константы.

135

Структурные типизованные константы будут детально представлены в подразделах, описывающих соответствующие типы данных.

<Описание_типизованной_константы> ::= <Ид.> : <Тип> = <Типиз._константа> ;

<Типизованная_константа> ::=

<Константа>

<Константа-массив>

<Константа-запись>

<Константа-множество> <Константа-указатель>

Рисунок 6.8 – Синтаксическая диаграмма описания типизованных констант

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

Типизованные константы инициализируются только один раз – в начале выполнения программы или подпрограммы. При каждом новом входе в подпрограмму типизованные константы заново не инициализируются.

Типизованные константы из всех подпрограмм располагаются в сегменте данных. Поэтому их общий объем ограничен 64К байтами.

Пример 6.3.

Объявление скалярных типизованных констант.

Const

MaxI: Integer = 10000;

MinI: Integer = 0;

Eps: Real = 0.0001;

Pi2: Real = 4 * Pi;

136

Типизованные константы не могут использоваться в объявлении других констант или типов.

6.4. Раздел типов

Язык Паскаль позволяет программистам наряду со стандартными типами значений вводить в употребление свои типы данных.

Каждый вводимый тип необходимо описать и присвоить ему имя. Это выполняется в разделе типов.

Раздел начинается служебным словом Type и имеет вид, который представляет рисунок 6.9.

<Раздел_типов> ::=

Type <Имя_типа> = <Тип> ;

Рисунок 6.9 – Синтаксическая диаграмма раздела типов

За словом Type следуют описания типов, разделенные точкой с запятой (;). Описание типа задает имя типа и присваиваемый ему тип. Тип определяется в соответствии с диаграммой, которую иллюстрирует рисунок 6.10.

<Тип> ::= <Имя_типа>

<Задание_типа>

Рисунок 6.10 – Синтаксическая диаграмма описания типа

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

137

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]