
5.2.3. Символьные типы
Символьные типы – это скалярные типы, значениями которых являются символы (буквы, цифры, специальные символы и др.).
Существуют два фундаментальных символьных типа данных AnsiChar и WideChar и один обобщенный тип данных Char.
Данные типа AnsiChar занимают один байт памяти и кодируют один из 256 возможных символов расширенной кодовой таблицы ANSI. Данные типа WideChar занимают два байта памяти и кодируют один из 65536 символов кодовой таблицы Unicode. Первые 256 символов таблицы Unicode соответствуют таблице ANSI, поэтому тип данных AnsiChar можно рассматривать как подмножество WideChar.
Тип данных Char в настоящее время соответствует типу AnsiChar. Для представления значений типа Char отводится один байт памяти.
Элементы множества значений символьных типов считаются перенумерованными (упорядоченными), т.е. каждому значению символьных типов поставлен в соответствие свой порядковый номер. Порядковый номер символа равен его коду в кодовой таблице.
Способ упорядочения в соответствии с кодом ANSI (перечисление идет по возрастанию порядковых номеров):
наименьшие порядковые номера имеют управляющие символы и специальные символы алфавита языка (но специальные символы не совсем упорядочены, они встречаются в разных местах кодовой таблицы);
десятичные цифры (они упорядочены по возрастанию);
заглавные латинские буквы (они упорядочены по алфавиту);
маленькие латинские буквы (по алфавиту);
псевдографика (в основном варианте кодовой таблицы; в альтернативном варианте псевдографика следует после русских букв);
заглавные русские буквы (по алфавиту);
наибольшие порядковые номера имеют маленькие русские буквы (по алфавиту).
Переменные символьных типов объявляются в разделе описания переменных. Например,
Var
a, b, c, x: char;
Константой символьных типов является один из допустимых символов, взятый в апострофы. Если значением константы является сам апостроф, то он записывается дважды.
Примеры записи констант символьных типов:
Над значениями символьных типов определены только операции сравнения:
= (равно);
<> (не равно);
>= (больше или равно);
> (больше);
<= (меньше или равно);
< (меньше).
Тип получаемого результата – логический. При этом сравниваются внутренние коды символов, т.е. фактически, порядковые номера символов в кодовой таблице.
Над значениями символьных типов определены встроенные функции, основные их которых представляет таблица 5.10.
Таблица 5.10 – Встроенные функции, определенные над символьными данными
Функция |
Описание |
Тип результата |
Ord(х) |
Преобразует х к целочисленному типу (возвращает порядковый номер символа х в кодовой таблице) |
целочисленный |
Pred(х) |
Возвращает символ, порядковый номер которого на единицу меньше порядкового номера х в кодовой таблице |
тип х |
Succ(х) |
Возвращает символ, порядковый номер которого на единицу больше порядкового номера х в кодовой таблице |
тип х |
Upcase(х) |
Возвращает большую латинскую букву, если х – маленькая латинская буква, иначе возвращает х |
char |
Sizeof(х) |
Указывает количество байтов, требуемое для представления значения символьного типа (значение функции равно 1 или 2) |
целочисленный |