Описание перечисляемого типа:
Каждый идентификатор в описании перечисляемого типа является константой определяемого типа. Например,
Type t_season = (Winter, Spring, Summer, Autumn);
Определен перечисляемый тип из четырех значений.
Перечисляемый тип является упорядоченным, порядок определяется перечислением. В памяти значения представлены кодами, нумерация начинается с нуля. Данные перечисляемых типов, как и всех рассмотренных выше типов, можно сравнивать. Никакие другие операции над данными перечисляемых типов не определены. Для ввода и вывода данных перечисляемых типов, определяемых программистом, нельзя использовать стандартные процедуры read и write. Ввод и вывод таких данных осуществляется программно.
Использование перечисляемых типов улучшает смысловую читаемость программы.
В стандартной библиотеке есть ряд функций для работы с любыми упорядоченными типами, в том числе и перечисляемыми. Рассмотрим некоторые из них:
ord(n) -возвращает код значения аргумента n (для целочисленных типов код значения - само число).
|
|
pred(n) и succ(n) - возвращают соответственно значение, предшествующее аргументу и следующее за аргументом в упорядоченной последовательности значений типа аргумента. Если соответствующего элемента в последовательности не окажется, то произойдет ошибка времени выполнения.
Примеры:
ord(Winter) = 0;
ord(Summer) = 2.
pred(Summer) = spring;
succ('a') = 'b',
pred(Winter) - ошибка,
succ(Autumn) - ошибка.
Будем называть перечисляемыми типами упорядоченные типы, нумерация элементов которых начинается с нуля. Согласно такому определению, стандартные типы boolean, char, byte, word являются перечисляемыми.
12. СТАНДАРТНЫЙ ВВОД
Связь программы с внешним миром осуществляется с помощью операторов ввода и вывода. Эти операторы представляют собой вызовы стандартных процедур ввода и вывода.
Процедуры ввода read и readLn позволяют инициализировать переменные значениями, вводимыми с клавиатуры.
Синтаксическая диаграмма процедуры read:
Процедура read позволяет ввести значения числовых типов, символьного и строкового. При выполнении процедуры ввода программа приостанавливает работу и ждет, пока с клавиатуры не будут введены значения для всех переменных, перечисленных в списке параметров. Набираемые на клавиатуре символы хранятся в некоторой области памяти, называемой буфером ввода. Считывание данных происходит из буфера ввода.
При вводе значений типы переменных должны быть совместимы по присваиванию с соответствующими им вводимыми значениями.