Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

2.8.3. Символьный тип

Символьный тип это тип данных, состоящих из одного символа (знака, буквы, цифры). Традиционная запись символьного значения предс­тавляет собой символ, заключенные в апострофы ('ж'). В ТП имеются аль­тернативные способы представления символов [1]. Значениями символьного типа является множество всех символов компьютера. Каждому символу приписывается целое число в диапазоне 0..255, которое служит кодом его внутреннего представления. Связь между символом и кодом устанавливается функцией ORD:

<Код>=ORD(Символ).

Переменные символьного типа объявляются в блоке VAR ключе­вым словом CHAR. Пример

VAR

C1, C2, C3: CHAR; BEGIN C1 := 'A'; C2 := 'B'; C3 := chr(43); … END.

Для кодирования символов используется код ASCII (AMERICAN STAN­DART CODE FOR INFORMATION INTERCHANGE  Американский стандартный код для обмена информацией). Код ASCII имеет 7 бит, которые позволяют кодировать в стандарте основые 128 символов, включающие латинские пpописные и стpочные буквы, цифpы, pазделители и pяд служебных символов (с кодами 0..31). Служебные символы в тексте считаются пробельными и в операциях ввода-вывода имеют самостоятельное значение (табл. 4).

Таблица 4

Служебные символы

Символ

Код

Назначение

BEL

HT

LT

VT

FF

CR

SUB

ESC

7

9

10

11

12

13

26

27

Звонок

Табуляция горизонтальная

Перевод строки с сохранением текущей позиции

Табуляция вертикальная

Прогон страницы

Возврат каретки

Конец файла

Конец работы

В ТП применяется восьмибитовый код, содержащий 256 символов. Ко­дировка символов с номерами [128..255] зависит от типа ПК и включает буквы русского алфавита, а также графические символы (прил. 2).

К символам типа char применимы операции присваивания и все операции логических отношений: <, >, <=, >=, =, <>.

Примеры 'A'='A' (TRUE);

'A'<>'a' (TRUE);

'A'<'a' (TRUE);

Символьный тип имеет следующие встроенные функции:

ORD(С:char):byte  возвращает код символа С типа byte;

CHR(b:byte):char  выдает символ по коду аргумента b;

UPCASE(C:char):char  переводит в верхний регистр символы латинс­кого алфавита, возвращая все остальные в исходном виде;

PRED(C:char):char  выдает символ, предшествующий С в таблице ко­дов;

SUCC(C:char):char  выдает символ, следующий за С в таблице кодов.

Пример. Напечатать прописными только латинские буквы из двух заданных. Зададим буквы константами и применим функцию UpCase:

Var

c1,c2:char;

Begin

c1:=UPCASE('f');

c2:=UPCASE('ф');

writeln(c1, ' ', c2, #7) {строка вывода: F ф}

End. {Вывод сопровождается звуковым сигналом}

Символы также можно описывать указанием в функции CHR кода симво­ла или с признаком # перед кодом. Например, считаются эквивалентными следующие записи:

'A' -- CHR(65) -- #65.