русс | укр

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

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

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

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


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

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


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


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

Пример. Type Colour = (Red , Orange , Green) ;

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

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

Язык Паскаль представляет программисту широкие возможности для задания дополнительных типов, характеристики которых программист может определить самостоятельно. Новые типы описываются в специальном разделе типов или определяются непосредственно при описании переменных.

Описание перечисляемого типа имеет вид:

Type Имя типа = (Список констант);

Var : Имя переменной: имя типа;

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

В общем виде:

Type T = (A1, A2,...,An);



Пример. Type Year = (Winter , Spring , Summer , Autumn);

Var A:Year;

Здесь Year - имя перечисляемого типа:

Зима, Весна, Лето, Осень - константы;

A - переменная, которая может принимать значение любой из констант.

Объект, указанный в списке ,может присутствовать только в одном описании.

Пример. Type T1 = (One , two , three);

T2 = (Tree , four , five);

Эти два задания типов несовместимы.

Имена объектов, указанных в описании перечисленного типа, являются константами этого типа. В языке Паскаль допускается указывать константы перечислимого типа непосредственно в разделе переменных без использования раздела Type.

Пример. Var A: (Winter , Sprihg , Summer , Autumn);

Но лучше использовать описание данных с использованием раздела Type.

Нельзя присваивать переменной одного типа значения из имени другого типа.

Пример .

Type Name =(Jon , Tom , Nick) ;

Color =(Red , Blue , Black);

Var X , Y , Z : Name ;

C1 , C2 : Color ;

Каждая из констант имеет порядковый номер, счет начинается с нуля. Упорядоченность констант позволяет применять к ним операции отношения (сравнения): < ,<= ,= , <>, >, >=. Результат операции будет логического типа (Type , False). Winter < Spring < Summer < Autumn (Зима < Весна< Лето< Осень)

Свойства перечисляемого типа:

1) Ai <> Aj, если i ><j (различимость).

2) Ai < Aj, если i < j (упорядоченность).

3) Значениями типа Т могут быть только А1, А2, ... Аn.

Упорядоченность определяется той последовательностью, в которой перечислены константные идентификаторы. Наличие упорядоченности позволяет применить стандартные функции:

Ord (x) - нахождение порядкового номера,

Pred (x) - нахождение предыдущего элемента,

Succ (x) - нахождение последующего элемента.

Succ (Ai) = Ai +1 для i= 1,2,...n-1 - последующий член .

Pred (Ai) = Ai- 1 для i = 1,2,3...n - предыдущий член .

Ord (Ai) = i -1 - функция определения порядкового номера Аi. Нумерация условно начинается с нуля.

Пример.

Имеется перечень зверей: лиса, волк, заяц, зубр, тигр, лев, медведь, косуля, олень, барс. Определить порядковый номер тигра (N1) и порядковый № зверя после косули (N2)

Program Zver;

Type Zver = (lisa,volk,zaiac,zubr,tigr,lev,medved,kosulia,olen,bars);

Var P1,P2: Zver;

N1,N2 : Integer;

Begin

P1 : = tigr;

P2 : = Succ (kosulia);

N1 : = Ord(P1)+1;

N2 : = Ord(P2)+1;

Writeln (‘N1 = ‘, N1:2);

writeln (‘N2 = ‘, N2 : 2);

End.

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

Пример. Некто по средам и пятницам учится, в остальные будние дни работает. Составить программу, распечатывающую эти занятия последовательно по дням недели.

Program Den;

Type Week = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Var Day: Week;

Begin

For Day : = Monday To Sunday Do

If (Day : = (Wednesday) Or (Day = Friday)

Then Writeln (‘Study’)

Else If (Day : = (Saturday) Or (Day = Sunday)

Then Writeln (‘Nothing’)

else Writeln (‘Work’)

End.

Результат будет такой: Work

Work

Study

Work

Study

Nothing

Nothing

В языке Paskal нельзя вводить и выводить данные перечислимого типа с помощью операторов Read и Write.



<== предыдущая лекция | следующая лекция ==>
Символьный тип | Ограниченный тип (диапазон, интервал)


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


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

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

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


 


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

 
 

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

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