Программирование на Pascal / Delphi / Лекции по Паскалю / 06_ЛИТЕРНЫЙ ТИП
.doc6. ЛИТЕРНЫЙ ТИП
Классификация: стандартный, простой, порядковый тип.
Стандартное имя CHAR.
1. Множество значений
Множество значений состоит из символов, представимых в ЭВМ. Номера значений находятся в диапазоне от 0 по 255.
В литерном типе для любой реализации Паскаля должны выполняться следующие требования:
-
литеры латинских букв входят в множество значений в алфавитном порядке;
-
литеры арабских цифр входят в множество значений в порядке счета;
-
множество включает символы национального алфавита, перечисляемые в любом порядке.
Для ПЭВМ типа IBM коды машинного представления символов соответствуют ASCII - American Standard Code for Information Interchange (американскому стандартному коду для обмена информацией), и эти коды есть порядковые номера символов в множестве значений.
При написании литерного значения символ заключается в апострофы. Например, 'f' - символ f; '1' - символ 1 и т.д.
2. Множество операций
2.1. Операция конкатенации (слияния)
Это бинарная аддитивная операция со знаком +. Оба операнда CHAR. Результат строка из двух символов, в которой к значению первого операнда приклеивается значение второго операнда. Например, для 'A'+'1' результат 'A1'.
2.2. Операции отношения (сравнения)
6 операций сравнения (отношения) со знаками =|<>|<|>|<=|>= . Операнды типа CHAR, результат логического типа BOOLEAN. Сравнение производится в соответствии с порядковыми номерами значений в множестве значений.
Таблица 6.1. Примеры операций сравнения
Операция |
Результат |
'Z'>'D" |
TRUE |
'1'>'9' |
FALSE |
'A'>'9' |
зависит от кодировки, для ASCII - TRUE |
2.3. Операция определения адреса
Унарная операция определения адреса со знаком @. Операнд переменная типа CHAR. Результатом является данное типа ^CHAR, значением - указатель на область оперативной памяти, в которой расположена переменная типа CHAR.
2.4. Стандартные функции
Таблица 6.2. Стандартные функции
Назначение функции |
Функция |
Пример |
|
Операция |
Результат |
||
Порядковый номер в множестве значений |
ORD(C) |
ORD('A') |
65 |
ORD('R') |
82 |
||
Предыдущее значение из множества значений |
PRED(C) |
PRED('C') |
'B' |
PRED('Z') |
'Y' |
||
Следующее значение из множества значений |
SUCC(C) |
SUCC('C') |
'D' |
SUCC('A') |
'B' |
||
Символ по порядковому номеру |
CHR(byte) |
CHR(65) |
'A' |
CHR(67) |
'C' |
||
Получение прописной латинской буквы |
UpCase(C) |
UpCase('a') |
'A' |
UpCase('D') |
'D' |
||
UpCase('ю') |
'ю' |
Функции ORD и CHR взаимообратные:
- порядковый номер символа, который определяется, как символ по заданному порядковому номеру, есть заданный порядковый номер:
ORD(CHR(<порядковый номер N>)) = <порядковый номер N> ;
- символ по порядковому номеру, который определяется, как порядковый номер заданного символа, есть заданный символ:
CHR(ORD(<символ С>)) = <символ С> .
3. Структурная организация
Данное литерного типа представляет собой один неделимый, с точки зрения использования, компонент, занимающий в памяти один байт, т.е. имеет простую структуру.