Ограниченный и перечисляемый типы данных.
Перечисляемый тип - это определяемый пользователем тип данных, при котором количество всех возможных значений ограничено. Перечисляемые данные должны иметь синтаксис идентификаторов, и поэтому не могут перечисляться цифры, символы, строки. Описание: Type :(, [,..., ]); VAR имя переменной: имя типа;
Например: TYPE GOD=(ZIMA, WESNA, LETO, OSEN); VAR A:GOD; Константы любые, разделяются запятой. Допускается указывать константы непосредственно в разделе переменных без TYРE. VAR A: (ZIMA, WESNA, LETO, OSEN); Порядковый номер начинается с 0.
Функции обработки данных перечисляемого типа: Succ (x) – возвращает следующее за x значение в перечисляемом типе. Pred (x) - возвращает предыдущее значение в перечисляемом типе. >, =,, = - операции сравнения. Оrd(x) - выдается номер элемента x в последовательности. Пример 1. type color = (red, yellow, green, blue); Здесь определено, что red < yellow < green < blue. Переменная типа color может принимать одно из перечисленных значений, также succ(red) есть yellow. Пример 2. Пусть задана последовательность букв в алфавитном порядке. Тогда succ(A) есть B; succ(L) есть M и т.д. Пример 3. pred(F) есть E; pred(Z) есть Y и т.д. Пример 4. ord(red) равен 0, а ord(green) равен 2.
Ограниченный тип данных Если какая-то переменная принимает не все значения своего типа, а только значения, содержащиеся в некотором ограниченном диапазоне, то ее можно рассматривать как переменную ограниченного типа. Отрезок типа определяется в разделе TYPE с помощью ведения ограничения на уже определенный или стандартный скалярный тип (кроме вещественного).
Ограничение типа задается указанием диапазона: минимального и максимального значений (нижней и верхней границ). Тип, из которого выбирается отрезок, называется базовым. Type : Пример: Type Days_weeks: 1..7;
Обе граничные константы должны быть одинакового типа. В качестве базового типа можно использовать любой простой тип, кроме REAL. I=0..63; L='A'..'Z'; osen=sent.. nov; Начальное значение при определении ограниченного типа не должно быть больше конечного значения. Переменные должны быть описаны в VAR с помощью имен этих типов. Переменные ограниченного типа можно описывать, не обращаясь к разделу описания типа. Использование ограниченных типов в программе делает их наглядными, позволяет экономить память машины и проводить во время выполнения программы контроль присваиваний.