Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгор_ТХТК_пособие.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.6 Mб
Скачать

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

В Turbo Pascal принят единственный стандартный символьный тип данных — Char. Переменные этого типа предназначены для хранения отдельных символов — букв, цифр и специальных знаков. Каждому символу приписывается целое число в диапазоне 0 ... 255. Это число служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII (American Standard Code for Information Interchange - американский стандартный код для обмена информацией). Это 7-битный код, т. е. с его помощью можно закодировать лишь 128 символов в диапазоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в диапазоне от 0 до 255. Первая половина символов ПК с кодами 0 ... 127 соответствует стандарту ASCII. Вторая половина символов с кодами 128 ... 255 не ограничена жесткими рамками стандарта и может меняться на ПК разных типов.

К типу CHAR применимы операции отношения, а также встроенные функции.

Применимые операции

Над значениями типа Char возможны операции сравнения =, <>, >, >=, <, <= (см. табл. 3.2). Причем они дают такой же результат, как и при применении их к ко­дам соответствующих символов.

Применимые стандартные подпрограммы

К переменным и значениям, принадлежащим символьному типу, применимы процедуры и функции для работы с порядковыми типами Dec, Inc, Pred и Succ (но не Odd).

К символьным переменным и значениям также применимы некоторые функции преобразования типов, такие как High, Low, Ord и UpCase.

Функция Ord возвращает порядковый номер значения, принадлежащего одному из порядковых типов.

Функция UpCase преобразует аргумент (значение типа Char) в соответствующий символ верхнего регистра.

CHR(B) - преобразует выражение В типа BYTE в символ;

Все множество символов считается упорядоченным. Латинские буквы идут друг за другом в алфавитном порядке. Выполнение оператора цикла

for с := 'a' to 'z' do write(c); где с - переменная типа char, приведет к выводу всех малых букв латинского алфавита:

abcdefghijklmnopqrstuvwxyz.

В принципе функция Ord применима и к целочисленным значениям, однако та­кое ее использование бессмысленно, поскольку в этом случае она возвращает переданные ей значения без изменений.

Вот примеры использования функций Ord и UpCase.

WriteLn(Ord('b');

Данный оператор определит код (или порядковый номер) символа "b", а затем вы­ведет полученное значение (98) на экран.

WriteLn(UpCase('а'));

Функция UpCase возвратит символ верхнего регистра (А), соответствующий пара­метру (a), который затем будет выведен на экран.

У символа малая буква а - код 97, заглавная буква А имеет код 65. Символы с кодами 0 ... 31 относятся к служебным кодам. Коды 32 ... 64 отводятся под специальные знаки и цифры.

Кроме классической записи символьной переменной в одинарных кавычках, Турбо Паскаль вводит еще две формы. Одна из них - представление символа его кодом ASCII с помощью специального префикса #:

#97 = chr(97) = ‘а’ (символ 'а'),

#0 = chr(O) = ‘’ (нулевой символ),

#32 = chr(32) =’ ‘ (пробел).

Символы, имеющие коды от 1 до 31 (управляющие), могут быть представлены их "клавиатурными" обозначениями - значком ^ и буквой алфавита с тем же номером (для диапазона кодов 1 ... 26) или служебным знаком (для диапазона 27... 31):

^А = #1 = chr(1) - код 1,

^В = #2 = chr(2) - код 2,

^[ = #27 = chr(27) - код 27,

в том числе "G - звонок (код 7), ^I - TAB (код 9), ^J - забой (код 10), ^М -возврат каретки (код 13).