русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Перечислимые типы


Дата добавления: 2014-05-03; просмотров: 645; Нарушение авторских прав


 

Часто возникает ситуация когда необходим небольшой набор значений, где каждое значение имеет мнемоническое имя. Вместо использования символьных констант, Паскаль-программисты могут использовать произвольные идентификаторы для обозначения таких констант.

 

Любой список идентификаторов Паскаля может быть описан как тип данных с одним ограничением, что в данной области видимости каждый идентификатор появится не чаще одного раза. Например, объявления:

TYPE

DayOfWeek = (Monday, Tuesday, Wednesday, Thursday,

Friday, Saturday, Sunday);

VAR

Day : DayOfWeek;

описывают новый тип, называемый день недели, семь констант, входящих в него записаны как идентификаторы, именующие дни недели, и переменная Day может принимать любые из этих константных значений. Day может принимать значения только из списка заданного в DayOfWeek. Значения DayOfWeek упорядочены так, как они перечисляются в объявлении типа:

Monday < Tuesday < ... < Sunday

Таким образом, есть возможность записывать операторы следующим образом:

IF Day < Saturday

THEN {не weekend}

...

В объявлении:

TYPE

DayOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday,

Friday, Saturday);

WeekEndDay = (Saturday, Sunday); {недопустимо}

VAR

Friday : CHAR; {недопустимо}

идентификаторы типа WeekEndDay и переменная Friday являются недопустимыми дубликатами идентификаторов Friday, Saturday и Sunday, которые ранее появились в объявлении типа DayOfWeek. То есть идентификаторы должны быть уникальными для всех их возможных вариантов использования в качестве имен типов, переменных, процедур, или констант в перечислимом типе.

Перечислимые типы являются “суперсимволами” Паскаля. Они могут быть использованы также как и обычные символы Паскаля и к ним применимы те же операции, но программист может изобрести любое их количество, желательно, чтобы идентификаторы соответствовали значению. Ранее мы использовали для таких целей символьные константы, но перечислимые типы лучше. Например, вместо возвращения значений Y или N для обозначения успеха, может быть использован перечислимый тип с идентификаторами Yes и No или даже Success и Failure.



Поскольку буквы алфавита идентификаторы, они могут быть использованы для задания типа данных:

 

TYPE

Alphabet = (A, B, C, D, E, F, G, H, I, J, K, L, M,

N, O, P, Q, R, S, T, U, V, W, X, Y, Z);

VAR

Letter: Alphabet;

Что позволяет следующие выражения:

IF Letter = A

THEN

Letter := E;

но при этом недопустимо:

IF Letter = ‘A’

THEN

Letter := ‘E’;

Поскольку A и E – константы типа Alphabet и соответствуют типу Letter, но ‘A’ и ‘E’ типа CHAR и это другой тип, чем у Letter.

 

Во многих задачах порядок, определенный перечислимым типом может быть полезен. Например, при работе с датами, важен порядок месяцев в календарном году. Поскольку трехсимвольные сокращения названий месяцев (Jan, Feb и т.д.) легко распознаются и компьютером и людьми, эти сокращения используются как строки, имеющие следующий лексикографический порядок.

Apr, Aug, Dec, Feb, Jan, Jul, Jun, Mar, May, Nov, Oct, Sep

который бесполезен в календарном смысле. Однако следующий перечислимы тип:

TYPE

Month = (Jan, Feb, Mar, Apr, May, Jun,

Jul, Aug, Sep, Oct, Nov, Dec);

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

 



<== предыдущая лекция | следующая лекция ==>
Порядковые типы данных | Синтаксис и значение выражений перечислимого типа.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.49 сек.