Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Символы / simwtext.doc
Скачиваний:
6
Добавлен:
10.02.2015
Размер:
94.21 Кб
Скачать

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

Символьный тип относится к стандартным порядковым типам данных. Значениями символьного типа являются все символы персонального компьютера. Каждому символу ставится в соответствие целое число (его можно рассматривать как код символа или его порядковый номер), начиная с нуля. В языке ObjectPascalопределены три типа символьных данныхChar,ANSICharWideChar. В настоящее время типыCharиANSICharявляются эквивалентными. Для хранения значений этих типов в памяти ЭВМ отводится по одному байту на каждый символ. Для представления данных типаWideCharиспользуются два байта, для кодирования символов используется кодировкаUnicode. Для кодирования символовUnicodeможет использоваться 65536 различных комбинаций, что позволяет представлять все символы всех языков. При написании программ ограничимся использованием типаChar. При работе в среде программированияDelphiдля кодировки символов используется стандартANSI, а при вводе и выводе результатов в консольном режиме – стандартASCII. Отличие в двух разных кодировках касаются только национальных алфавитов. Это надо учитывать при работе в консольном режиме и использовать функцию перекодировкиRus(см. раздел 1) и функцию перекодировкиRusIn, текст которой приведен ниже.

Константа символьного типа заключается в апострофы, чтобы ее можно было отличить от имени переменной. Символ апострофа повторяется дважды. Примеры символьных констант 'T', 'Я','*',''''. При работе с символьными данными следует иметь в виду, что не всем кодовым комбинациям соответствуют символы, имеющие графическое отображение. Вывод символа с кодом 8 сопровождается звуковым сигналом, при выводе символа с кодом 10 происходит переход на следующую строку, а вывод символа с кодом 13 означает установку курсора в начало строки, пробел имеет код 32, символы с кодами 0 и 255 называют пустыми.

Над значениями символьного типа нельзя выполнять арифметические операции. Допустимо выполнение операций отношения = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно). При выполнении операций отношения фактически сравниваются коды символов, т.е. числовые величины. При сравнении символов меньшим будет тот символ, код которого меньше.

Для работы с символьными данными предназначен ряд стандартных функций. Функция Ord(ch:char):byte; возвращает порядковый номер символа. ФункцияChr(i:byte):char; возвращает символ по его коду. Например,Ord('Z')=90, аChr(90)= 'Z'. Две эти функции являются противоположными по смыслу, т.е.Chr(Ord('Z'))='Z', аOrd(Chr(90))=90. К данным символьного типа, как и другим порядковым типам, можно применять функцииPred,Succ,Inc,Dec,Low,High. Вместо обращения к функциюChrможно использовать символ #, т.е. записиChr(123) и #123 эквивалентны.

Функция UpCase(ch:char):char; возвращает для строчной буквы латинского алфавита ту же, но заглавную букву, для остальных символов (небуквенных, заглавных латинских букв, строчных букв кириллицы) тот же самый символ.

При написании программ обработки символьных данных полезно знать, что символы цифр образуют один непрерывный интервал '0'. '.9', также непрерывный интервал образуют заглавные буквы латинского алфавита 'A'.. 'Z', строчные буквы латинского алфавита 'a'.. 'z', заглавные символы кириллицы 'А'.. 'Я' (в интервал не входит символ 'Ё'), строчные символы кириллицы 'а'.. 'я' (при использовании стандартаANSY, в интервал не входит символ 'ё'. Заглавные символы имеют номер меньше, чем строчные символы, это справедливо и для символов латинского алфавита, и для символов русского алфавита. Для символов латинского и русского алфавитов кодовое расстояние между одинаковыми строчными и заглавными символами одинаково для всех символов данного алфавита и может быть вычислено, например, какOrd('w')-Ord('W') для латиницы и, например, какOrd('ж')-Ord('Ж') для кириллицы. Кодовое расстояние между одинаковыми строчными и заглавными символами разных алфавитов различно, так как различно количество символов в этих алфавитах. Для кириллицы расстояние между символами 'ё' и 'Ё' отлично от расстояния между другими одноименными символами.

При вводе символьных данных надо помнить, что пробел является символом, поэтому символы в отличие от числовых данных пробелами разделять не следует.

В качестве первого примера обработки символьных данных приведем программу, демонстрирующую использование различных стандартных функций.

Соседние файлы в папке Символы