КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пользовательские типы
Кроме стандартных типов данных, ТР и Delphi поддерживают скалярные типы, определенные самим пользователем. К ним относятся перечисляемый и интервальный типы. Данные этих типов занимают в памяти один байт, поэтому любой пользовательский тип не может содержать более 256 элементов. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок и экономит память. Перечисляемый (перечислимый) тип задается непосредственным перечислением всех значений, которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки.
Формат записи: Type <имя типа> = (<значение 1, значение 2,..., значение n>); Var <идентификатор,...>: <имя типа>; Пример. Type Svet = (Red, Yellow, Green); Move = (Left, Right, Up, Down);
Var S1, S2, S3: Svet; M: Move; Season: (Winter, Spring, Summer, Autumn); В данном примере приведены два явно описанных типа данных Svet и Move. Определены их значения – обозначения цветов и направлений движения. Переменные Svet, Move могут принимать одно из перечисленных значений. Попытка присвоить им любое другое значение вызовет программное прерывание. Третий тип перечисления анонимный (не имеет имени) и задается перечислением значений в разделе Var. Season является переменной этого типа и может принимать значения Winter, Spring, Summer и Autumn. Таким образом может быть задан любой тип, но это не всегда приемлемо, т.к. первый способ более соответствует характеру языка ТР. Имена внутри круглых скобок являются константами соответствующего типа перечисления и соответствуют обычным правилам для констант. Эти идентификаторы должны быть уникальны в пределах блока.
Помни: · Описание двух или более перечисляемых типов с совпадающими константами недопустимо.
Пример. Type Color1 = (Red, Yellow, Green); Color2 = (Blue, Grey, Green); являются некорректными из-за повторного использования идентификатора Green. Перечисляемые типы являются дискретными типами. Над значениями перечисляемых типов определены операции сравнения: считается, что значения этого типа указаны в списке в порядке возрастания. Например, будет истинно выражение Red< Green, т.к. Red имеет меньший номер по порядку в описании типа, чем Green. В отличие от данных других типов, ТР не поддерживает операции ввода–вывода значений пользовательского перечисляемого типа. При необходимости программист сам должен организовать ввод–вывод таких данных. В языке ТР допускается образование ограниченных типов из перечисляемых по обычным правилам. Интервальный тип (тип-диапазон) позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограммы проверки, определяющие, остается ли значение переменной внутри установленного для нее диапазона. Помни: · Обе константы должны принадлежать одному из стандартных типов (тип real здесь недопустим). · Значение первой константы должно быть обязательно меньше значения второй. Формат записи: Type < имя типа > = <константа1>.. <константа2>; Var <идентификатор,...>: < имя типа >;
Пример. Type Dni = 1.. 31; Var X1, X2: Dni;
Переменные Х1 и Х2 могут принимать любые значения из диапазона 1.. 31. Выход из диапазона вызывает программное прерывание. Можно определить интервальный тип и более универсальным способом, задав границы диапазона не значениями констант, а их именами:
Const Min = 1; Max = 31; Type Dni = Min.. Max; Var X1,X2: Dni;
Дата добавления: 2014-01-05; Просмотров: 285; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |