Символьный тип данных

 

Набор символов в компьютере достаточно велик. Все символы упорядо­чены, т.е. каждый символ имеет свой порядковый номер (код символа).

Символьная константа (литера) – это символ, заключенный в апостро­фы, например: ¢А¢, ¢+¢, ¢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;