Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 1).doc
Скачиваний:
102
Добавлен:
15.04.2015
Размер:
1.69 Mб
Скачать

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'.