
- •6.2. Структура программной единицы
- •6.3. Стиль записи программ на языке Паскаль
- •7. Типы данных в Паскале
- •7.1. Классификация типов данных в Турбо Паскале
- •7.2. Порядковые типы
- •7.2.1. Логический (булевский) тип
- •7.2.2. Целые типы
- •7.2.3. Перечисляемый тип
- •7.2.4. Тип – диапазон
- •7.2.5. Символьный тип
- •7.3. Вещественные типы
7.2.3. Перечисляемый тип
При описании переменной этого типа задается (правда, не напрямую, а косвенно) список ее возможных значений. Количество всех возможных значений конечно. Этому определению соответствуют следующие типы данных: word, byte, integer, char, Boolean.
Этот список задается в виде последовательности имен идентификаторов (каждый идентификатор соответствует одному значению), разделенных запятыми. При этом список заключается в круглые скобки:
Var
0 1 2 3 4 5 ----- в программу вместо имен будут подставлены эти значения
v:(a,
b,
c,
d,
e,
f);
идентификаторы
Синтаксическая
диаграмма:
byte=(0,1,..,255);
char=(сим0, сим1, …, сим255);
boolean = (false, true);
Правила для нахождения значений, соответствующих именам этого списка: самому левому значению соответствует - 0; следующему соответствует 1, и так далее - каждому следующему (слева направо) идентификатору соответствует значение на 1 большее, чем у соседа слева.
Смысл этого типа: как и при использовании простых констант здесь используются имена вместо чисел.
Значения этих переменных на экран и вводить с клавиатуры.
Однако можно посмотреть значение такой переменной в окне Watch.
Вопрос: что можно присвоитьпеременной этого типа – имя (из перечня) или число?
7.2.4. Тип – диапазон
Переменные данного типа объявляются с использованием указания левой и правой границы диапазона.
Общий вид:
Var
v: левая .. правая ;
Примечание 1. Правая граница должна быть обязательно больше, чем левая.
ПРИМЕР:
Var
v: 1..10; {правильная запись}
v: 10..1; {неправильная запись}
Примечание 2. Базовым типом для типа-диапазона может быть любой порядковый тип, кроме типа-диапазона. В рассмотренном выше случае базовым является целый тип.
Var
s: ‘a‘..’z’; - базовым является символьный (char) тип.
Примечание 3. Когда в объявлении типа указывается левая и правая границы, то этим вы указываете компилятору, что возможные значения переменных могут находиться только в этом диапазоне. И компилятор далее будет за этим тщательно следить, включая в программу соответствующие дополнительные команды для проверки.
Примечание 4. Если включена опция компилятора Range Checking или использована директива компилятора {$R+} в программе, то это заставляет компилятор выполнять проверку выхода значения переменной за указанный диапазон.
7.2.5. Символьный тип
Объявляется следующим образом:
Var
c: char;
Переменная этого типа занимает 1 байт без знака. Диапазон значений от 0 до 255.
Для каждой переменной символьного типа в памяти хранится код символа (порядковый номер символа в таблице кодов ASCII), то есть:
c := ‘ ‘; ------ храниться будет 3210.
c := ‘1’; ------- храниться будет 6110.
К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет, да они и не имеют смысла.
Стандартных подпрограмм для работы с символами тоже немного:
Имя |
Описание |
Результат |
Пояснения |
ord |
Порядковый номер символа |
Целый
|
ord(' b') даст в результате 98 ord(' ю') даст в результате 238 |
Chr |
Преобразование в символ |
Символьный |
chr (98) даст в результате ' b' chг (238) даст в результате 'ю' |
pred |
Предыдущий символ |
Символьный |
pred(' b') даст в результате ' а' |
succ |
Последующий символ |
Символьный |
succ(' b') даст в результате ' С' |
upcase |
Перевод в верхний регистр* |
Символьный |
upcase(' b') даст в результате ' В' |
* – Только для символов из диапазона 'а' .. 'z'.