Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
58
Добавлен:
02.05.2014
Размер:
33.79 Кб
Скачать

7. ПЕРЕЧИСЛЯЕМЫЙ ТИП

Классификация: нестандартный, простой, порядковый тип.

Имя определяет программист.

Это абстрактный тип данных, в котором значения задаются именами.

0. Определение типа

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

Рис. 7.1. – Определение перечисляемого типа

Именем в Турбо Паскале может быть любая последовательность латинских букв, арабских цифр и знаков подчеркивания, начинающаяся с буквы.

Примеры определения типов:

RADUGA=(KRASN, ORAN, GELT, ZELEN, GOLUB, SINIY, FIOLET)

№ п.п. 0 1 2 3 4 5 6

NEDEL=(PONED, VTORN, SRED, CHETV, PIATNIC, SUBBOT, VOSCRES)

№ п.п. 0 1 2 3 4 5 6

SEZON=(LETO, OSEN, ZIMA, VESNA)

№ п.п. 0 1 2 3

1. Множество значений

Включает множество имен, которые перечислил программист в непосредственном определении перечисляемого типа. Номера значений определяются автоматически в порядке перечисления значений, начиная от 0 по 255.

2. Множество операций

2.1. Операции отношения (сравнения)

6 бинарных операций сравнения (отношения) со знаками =|<>|<|>|<=|>= . Оба операнда одного и того же типа. Результат логического типа BOOLEAN. Сравнение производится в соответствие с порядковыми номерами значений в множестве значений.

Таблица 7.1. Примеры операций сравнения

Операция

Результат

LETO>ZIMA

0 2

FALSE

VESNA>ZIMA

3 2

TRUE

LETO<=ZIMA

0 2

TRUE

LETO=PONED

0 0

ошибка, так как разные типы

2.2. Операция определения адреса переменной

Унарная операция определения адреса со знаком @. Операндом является переменная любого перечисляемого типа. Результат - данное типа ^<имя перечисляемого типа> со значением - указатель на место в оперативной памяти, где располагается переменная этого перечисляемого типа.

2.3. Стандартные функции

Таблица 7.2. Стандартные функции

Назначение функции

Функция

Пример

Операция

Результат

Порядковый номер в множестве значений

ORD(P)

ORD(SRED)

2

Предыдущее значение из множества значений

PRED(P)

PRED(SRED)

VTORN

Следующее значение из множества знаний

SUCC(P)

SUCC(SRED)

CHETV

Значение по порядковому номеру

<имя типа>(byte)

RADUGA(4)

GOLUB

3. Структурная организация

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