Набор символов в компьютере достаточно велик. Все символы упорядочены, т.е. каждый символ имеет свой порядковый номер (код символа).
Символьная константа (литера) – это символ, заключенный в апострофы, например: ¢А¢, ¢+¢, ¢7¢. Символьная константа занимает один байт памяти. Ее можно обозначать именем и задавать в разделе констант, например:
const sim= ¢A¢; s= ¢*¢;
Символьная переменная принимает значение одного символа. Она должна быть объявлена в разделе описания переменных так:
имя : char;,
где имя – имя переменной символьного типа; char – ключевое слово обозначения символьного типа, например:
var s1, s2:char;
ch:char;
Переменная символьного типа может получить значение в результате выполнения оператора присваивания или ввода (read, readln) и значение переменной можно вывести (write, writeln).
Если переменная типа char получает значение в результате выполнения операции присваивания, то справа от знака = должно стоять выражение символьного типа, напрмер: s1 := s2; ch := ¢K¢;
К символьным данным можно применить встроенные функции:
ord(x:char): byte; | – определяет порядковый номер символа х в кодовой таблице, например: ord(¢R¢)=82; |
chr(n:integer): char; | – по порядковому номеру п в кодовой таблице определяет символ, например: chr(68) = ¢D¢; |
pred(x:char): char; | – определяет предыдущий символ по отношению к х, например: pred(¢N¢) = ¢М¢; |
succ(x:char): char;– | – определяет последующий символ по отношению к х, например: succ(¢R¢) = ¢S¢; |
Переменную типа char можно сравнить с другой переменной типа char или с символьной константой. Отношение sl > s2 будет иметь значение истина (true), если ord(sl) > ord(s2), и ложь (false) при ord(s1) < ord(s2), например: ¢0¢ < ¢1¢ — истина, так как код символа ¢0¢ 48 < 49 – кода символа ¢1¢.
Код строчной буквы больше кода прописной. Ниже приведен фрагмента программы, которая преобразует строчную русскую букву в прописную:
read(sl);
case s1 of
¢a¢ .. ¢n¢ : s1 := chr(ord(sl) – 32);
¢p¢ .. ¢я¢ : s1 := chr(ord(sl) – 80);
¢e¢ : s1 := ¢E¢
end;