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

 

Во всех современных языках программирования имеется стандартный (встроенный) символьный тип. В языке Паскаль он называется CHAR. Переменные и константы этого типа хранят символы. Символьные переменные и константы в Turbo Pascal занимают 1 байт памяти. Символьное значение можно вводить с клавиатуры, выводить на экран, можно сохранять / загружать из файла, символы можно объединять в любые структуры данных.

Пример:

 

Var

C, c1, c2: char; {c, c1, c2 – переменные символьного типа}

S: array[1..10] of char; {s – массив символов}

 

Const

Space = ‘ ‘; {Символьная константа - пробел}

XChar = ‘@‘; {Символьная константа - собачка}

F = ‘‘‘‘;{Символьная константа - апостроф}

BigK = #75; {Символьная константа – символ с кодом 75 –

большая латинская буква K}

 

На самом деле значение символьного типа представляет собой КОД символа. Код – это целое число. Каждому возможному значению целого числа ставится в соответствие символ. В результате получается таблица кодировки. В принципе, можно создать бесконечное число вариантов таблиц кодировок. На практике же используется очень ограниченное количество таких таблиц. В настоящее время наиболее распространенными являются кодировки ASCII (MS DOS), ANSI (Windows), KOI-8 (Unix), Unicode (универсальная кодировка, содержит коды символов почти всех современных алфавитов). Кодировки ASCII, ANSI, KOI-8 являются однобайтовыми: в них каждый символ кодируется одним байтом. Кодировка Unicode – двухбайтовая. Однобайтовая кодировка позволяет хранить код одного из 256 символов, двухбайтовая – одного из 65536 символов.

При работе в MS DOS используется кодировка ASCII (American ….. – Американский стандартный код передачи информации). Существуют варианты кодировки ASCII для различных алфавитов. Нас с вами интересует только кириллица. Вот таблица ASCII кодировки для кириллицы:

 

Код
                               
                               
  ! # $ % & ( ) * + , - . /
: ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ ] ^ _
` a b c d e f g h I j k l m n o
p q R s t u v w x y z { | } ~  
А Б В Г Д Е Ж З И Й К Л М Н О П
Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
а б В Г д е ж з и й к л м н о п
р с Т У ф х ц ч ш щ ъ ы ь э ю я
Ё ё                            

 

В данной таблице часть ячеек остались пустыми. Ячейка с номером 32 – пробел. Ячейки с номерами меньше 32 – “управляющие символы”. Такими же являются символы с кодом 127 и 255. Символы с кодами больше чем 241 – нестандартные символы.

Символы с кодами от 176 до 223 – это символы псевдографики. При помощи этих символов в MS DOS создаются таблицы. В текстовом редакторе Turbo Pascal эти символы можно вводить при помощи Alt-комбинаций – при удерживаемой клавише Alt на цифровой клавиатуре (цифровая клавиатура расположена на правой стороне клавиатуры) набирается код нужного символа. Символ появится после того, как будет отпущена клавиша Alt. Таким способом можно вводить любые символы, но актуален этот способ только для псевдографики, так как этих символов нет на клавиатуре.

Хотя символ на самом деле и представляет собой код, который есть целое число, но, в целях защиты программиста от ошибок, символ в Turbo Pascal целым числом не считается. В противоположность такому подходу, в языках Си и С++, например, символ является одновременно и целым числом. Если программист рассматривает значение как число – значит, это число, если как символ – значит, это символ. Такой подход полностью отвечает принципам построения компьютеров - вспомните принципы фон-Неймана. Однако такой подход подразумевает, что программист “знает что делает”, то есть программист имеет весьма высокую квалификацию и отвечает за свои действия. Язык Паскаль изначально создавался для целей обучения, и в нем не доверяют программистам так, как в Си / С++. Поэтому символы в Turbo Pascal не являются целыми числами.

 

Значение символа в Turbo Pascal можно записать двумя способами. Первый способ – символ заключается в апострофы:

‘ ’ - пробел, ‘@’ - собачка, ‘1’ - цифра один, ‘A’ - латинская буква A,

‘А’ – русская буква А.

Особый случай – символ апостроф. Чтобы задать этот символ, нужно указать два апострофа подряд. Если же нам нужна символьная константа апостроф, то записывается она так – ‘’’’.

 

Второй способ записи символов – указывается значение кода символа, а перед кодом символа ставится знак #:

#32 – пробел, #64 – собачка, #49 – цифра один, #65 – латинская буква A,

#128 – русская буква А, #39 - апостроф.

 

Если в программе требуется перейти от символа к его коду, тогда используется функция Ord. Если нужно перейти от кода символа к символу, то используется функция Chr. Для получения символа с кодом больше или меньше на единицу, используются функции Succ и Pred. Для увеличения или уменьшения кода на определенное значение используются процедуры Inc и Dec. Наконец, для преобразования маленьких латинских букв в большие латинские буквы используется функция UpCase.

Кроме этого, к символам можно применять операции сравнения. При этом сравниваются коды символов. Например, символ ‘C’ меньше символа ‘D’, а символ ‘я’ больше символа ‘Я’.