Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 6 Структура программы.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
296.45 Кб
Скачать

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

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

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

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

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

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

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

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

В языке Delphi рекомендуется идентификаторы пользовательских типов начинать заглавной буквой T (первая буква слова type). Но данная рекомендация не является обязательной к выполнению.

Пример 6.4.

Пример описания типов.

Type

ТL = Boolean;

ТInt = Integer;

ТNed = (Pn, Vt, Sr, Ch, Pt, Sb, Vs);

В данном примере введено три новых типа. Первое и второе описания используют стандартные типы Boolean и Integer (для описания типа используется <Имя_типа>, см. рисунок 6.10). Третье описание задает нестандартный тип данных – перечислимый тип (для описания типа используется <Задание_типа>, см. рисунок 6.10). Ему присвоено имя ТNed (Неделя). При вычислениях переменные типа ТNed смогут принимать одно из перечисленных в скобках значений. Введенные в разделе Type типы могут использоваться в дальнейшем при описании переменных.

6.5. Раздел переменных

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

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

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

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

1-ый способ. Тип описан в разделе типов или является стандартным. В этом случае в разделе переменных указывается <Имя_типа>.

Пример 6.5.

Использование имени типа при объявлении переменных (применительно к примеру 6.4).

Var

X: ТL;

I: ТInt;

Day: ТNеd;

A, B, C: Real;

Здесь ТL, ТInt, ТNed – описанные в разделе Type типы, Real – стандартный тип.

2-ой способ. В описании переменной используется явное задание типа.

При таком способе описывается переменная и одновременно задается новый тип без имени.

Пример 6.6.

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

Var

Day: (Pn, Vt, Sr, Ch, Pt, Sb, Vs);

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

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

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

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

Например,

Var

Day: (Pn, Vt, Sr, Ch, Pt, Sb, Vs) = Sb;

C: Real = 0.5;

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

Самостоятельно. Нарисовать синтаксическую диаграмму раздела переменных с учетом возможности объявления в нем инициализированных переменных.

Раздел переменных используется для описания автоматических переменных.

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

Глобальные автоматические переменные создаются при компиляции программы и сохраняются в течение всего времени ее выполнения. Локальные автоматические переменные создаются при вызове подпрограммы и уничтожаются при ее завершении.