Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2.DOC
Скачиваний:
0
Добавлен:
09.11.2018
Размер:
52.74 Кб
Скачать

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

Символьный тип служит для задания символов. Для каждой вычислительной системы определен свой набор символов. Сейчас в основном используется стандарт ASCII, включающий набор из 128 символов. В него входят строчные и прописные буквы латинского алфавита, арабские цифры, специальные знаки и так называемые служебные символы (номера 0..31). В русскоязычной версии прописные буквы латинского алфавита и некоторые специальные знаки заменены на символы кириллицы (русского алфавита), и такой набор называется КОИ-7. В более совершенных вычислительных системах используется расширенный код ASCII, состоящий из 256 символов. Дополнительные 128 - это символы псевдографики. Именно в этой области у нас обычно располагаются символы кириллицы (строчные и прописные буквы).

Каждому символу соответствует его порядковый номер в наборе. Для взаимного отображения символов и их номеров существуют две стандартных функции:

Ord(c) - возвращает порядковый номер символа "с" в наборе;

Chr(k) - возвращает символ по его порядковому номеру "к".

Константы символьного типа в текстах программ записываются в апострофах. Для задания символа "апостроф" его внутри апострофов записывают дважды.

Примеры символьных констант: '+' 'A' ',' '''' (это апостроф).

Константы символьного типа могут задаваться своими номерами, которым предшествует символ #, например #7 #62 #$A1 , что удобно для обозначения символов, не имеющих начертания .

К данным символьного типа применимы операции отношения. Смысл их заключается в проверке на взаимное расположение в наборе ASCII. Например: 'a' < 'b' имеет значение TRUE, поскольку символ 'a' предшествует символу 'b'. Другими словами, в операциях отношения производится сравнение поряд-ковых номеров символов.

При вводе последовательности символов разделители не применяются.

Пример 2.7.1. Ввести 3 символа. Определить, есть ли среди них хотя бы один символ "+".

PROGRAM Plus;

VAR x,y,z : char;

b : Boolean;

BEGIN

Write('Ввести 3 символа: '); ReadLn(x,y,z);

b:=(x='+') OR (y='+') OR (z='+');

WriteLn('Символ ''+'' имеется: ' ,b)

END.

Здесь символ "+" заключен в двойные апострофы для того, чтобы при печати он оказался в одинарных, например:

символ '+' имеется: TRUE .

Пример 2.7.2. Ввести 3 символа. Определить, расположены ли они в порядке возрастания их номеров.

PROGRAM Por;

VAR x,y,z : char;

b : Boolean;

BEGIN

Write('3 символа: '); ReadLn(x,y,z);

b:=(x<y) AND (y<z);

WriteLn('Номера возрастают: ',b)

END.

В этом примере в операторе присваивания можно было бы восполь-зоваться порядковыми номерами символов: b:=(Ord(x)<Ord(y)) AND (Ord(y)<Ord(z)), но приведенный вариант все-таки изящнее.

Задачи

2.7.1. Ввести два символа. Определить, имеется ли среди них хотя бы один символ “#“.

2.7.2. Ввести 3 символа. Определить, есть ли среди них хотя бы два одинаковых.

2.7.3. Ввести символ. Отпечатать в апострофах этот символ вместе с предшествующим и последующим, например: p ®'opq' .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]