Символьный тип данных, как составляющая языка программирования — КиберПедия 

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Символьный тип данных, как составляющая языка программирования

2021-04-19 74
Символьный тип данных, как составляющая языка программирования 0.00 из 5.00 0 оценок
Заказать работу

Символы - это основные неделимые знаки, из которых составляются все тексты программ на данном языке. Совокупность всех символов образует алфавит языка. Алфавит языка программирования несколько шире, чем алфавит естественного языка, и включает обычно латинские буквы, знаки арифметических операций, символы-разделители и ряд других специальных символов. Значениями символьного типа являются символы из множества ASCII (American Standard Code For information Interchange- американский стандартный код для обмена информацией). Это множество состоит из 256 различных символов, упорядоченных определенным образом, и содержит символы заглавных и строчных букв, цифр, и различных других символов, включая специальные управляющие символы. Допускаются некоторые отклонения от стандарта ASCII, в частности, при наличии соответствующей системной поддержки это множество может содержать буквы русского алфавита.

Порядковый номер (кодировку) значений символьного типа можно узнать из соответствующих разделов технических описаний. Согласно стандарту ASCII, каждому символу и некоторым управляющим инструкциям соответствует свой числовой код, принимающий значения от 0 до 127. В двоичном представлении ASCII-код использует 7 разрядов. Коды этих символов приведены в табл. 1.1.

 


Таблица 1.1:

Код Символ Код Символ Код Символ Код Символ Код Символ
0 NUL 27 ESC 54 6 81 Q 108 l
1 SOH 28 FS 55 7 82 R 109 m
2 STX 29 GS 56 8 83 S 110 n
3 ETX 30 RS 57 9 84 T 111 o
4 EOT 31 US 58 : 85 U 112 p
5 ENQ 32 SP 59 ; 86 V 113 q
6 ACK 33 ! 60 < 87 W 114 r
7 BEL 34 61 = 88 X 115 s
8 BS 35 # 62 > 89 Y 116 t
9 HT 36 $ 63 ? 90 Z 117 u
10 LF 37 % 64 @ 91 [ 118 v
11 VT 38 & 65 A 92 \ 119 w
12 FF 39 66 B 93 ] 120 x
13 CR 40 ( 67 C 94 ^ 121 y
14 SO 41 ) 68 D 95 _ 122 z
15 SI 42 * 69 E 96 123 {
16 DLE 43 + 70 F 97 a 124 |
17 DC1 44 , 71 G 98 b 125 }
18 DC2 45 - 72 H 99 c 126 ~
19 DC3 46 . 73 I 100 d 127 DEL
20 DC4 47 / 74 J 101 e    
21 NAK 48 0 75 K 102 f    
22 SIN 49 1 76 L 103 g    
23 ETB 50 2 77 M 104 h    
24 CAN 51 3 78 N 105 i    
25 EM 52 4 79 O 106 j    
26 SUB 53 5 80 P 107 k    

 


Переменная типа Char хранит один символ. Буквальная символьная константа задается указанием символа, который записывается между апострофами. Примеры строковых и символьных констант:

 

' Turbo Pascal '

' ******************* '

' Д ': 'Y', 'д', '9'.

 

В приведенном примере следует обратить внимание на последнюю константу. Это буква “девять", а не число девять. Если переменная Symbol описана как переменная типа Char, то допустимы следующие операторы присваивания:

 

Symbol: = 'S':: = '?':: = ' ':: = ' ' ' ';

 

После выполнения второго оператора присваивания переменная Symbol имеет значение символа «знак вопроса», а после выполнения третьего оператора - значение «пробел» (в этом случае пробел является полноправным символом). В четвертой строке первый и последний апострофы являются ограничителями символьного значения, а два апострофа между ними трактуются как один апостроф.

Значение переменной символьного типа можно задать в операторе присваивания с помощью буквальной символьной константы или функции Chr. Функция Chr устанавливает соответствие между однобайтовыми целыми значениями кода и символами.

Противоположной по отношению к Chr является функция Qrd(x), которая возвращает код символьного аргумента.

Существует функция UpCase, которая преобразует строчные буквы латинского алфавита в прописные, но не изменяет другие символы, например:

 

UpCase('p') = 'р'('B') = 'В' ('+') = '+'

 

Если символьное значение имеет графическое представление, то оно изображается соответствующим знаком, заключенным в одинаковые кавычки (апострофы), например:

 

'a' 'X' ':' ''''

 

Для представления самого апострофа его изображение удваивается.

Если символ, который нужно изобразить, не имеет графического представления, то можно воспользоваться следующей эквивалентной формой записи, состоящей из символа '#' (решетка, диез) и целочисленного кода символа (от 0 до 255):

 

#10

#$A

 

Кроме того, некоторые управляющие символы ASCII можно представить в следующей форме:

 

^C

 

где C- условное обозначение управляющего символа, например:

^C символ с кодировкой 7

^[ эквивалентно #$1B

Переменная типа char может получить значение в результате выполнения инструкции присваивания или ввода (read, readln). Если переменная типа char получает значение в результате выполнения операции присваивания, то справа от знака: = должно стоять выражение типа char, например, переменная типа char или символьная константа.

Над значениями символьного типа возможны операции сравнения, причем эти операции дают тот же результат, что и над соответственными целочисленными кодами символов.

В памяти компьютера переменная типа char занимает один байт (это значит, что существует 255 различных символов). Каждому символу поставлено в соответствие число(код), причем код символа '0' меньше кода символа '1', символ 'А' -меньше, чем код символа 'В', а символа ' В', в свою очередь, меньше кода символа 'С'.

Таким образом можно записать:

 

'0'<'1'<…<'9'<…<'A'<'B'<…<'Z'<'a'<'b'<…<'z'

 

Коды символов букв русского алфавита больше кодов букв латинского алфавита, и при этом справедливо следующее:

 

'А'<'Б'<'В'<…<'Ю'<'Я'<'а'<'б'<'в'<…<'э'<'ю'<'я'.

 

Числовые коды преобразуются в буквы и другие символы лишь в момент их вывода на экран или принтер. Соответствие между символом и его кодом задается припомощи кодовой таблицы, которая находится в памяти компьютера и используется при выводе символов.

Управляющие символы.

В табл. 1.1 кроме обычных символов имеются специальные управляющие символы. Они представляют собой команды, вывод которых на стандартное выходное устройство приводит к выполнению определенных действий. Эти символы имеют мнемонические двух или трехбуквенные сокращения, пришедшие к нам из эры телеграфа. К управляющему символу можно обратиться по его ASCII-коду или по Ctrl-последовательности, последняя представляет собой код, порождаемый одновременным нажатием клавиши Ctrl и какой-либо другой клавиши.

Символьные константы упорядочены по кодам. Например, 'а'<Ь' - истина.

Рекомендуется применять # (знак номера) только для специальных (служебных) символов, которые не отображаются на экране и имеют мнемонические сокращения, унаследованные из прошлого. Некоторые из них могут использоваться программистом для выполнения определенных действий:

□ #07 (BEL) - подача короткого звукового сигнала;

□ #08 (BS) - удаление символа слева от курсора и смешение курсора на одну позицию назад, соответствует клавише <BackSpace>;

□ #09 (H Т) - горизонтальная табуляция: смешение курсора в позицию, кратную 8, плюс 1 (9, 17, 25 и т. д.), соответствует клавише <ТаЬ>;

□ #10 (LF) - перевод строки, курсор смещается по вертикали вниз на одну строку;

□ #11 (VT) - вертикальная табуляция;

□#12(FF) - прогон страницы;

□ #13 (CR) - возврат каретки или перевод строки, выполняет перемещение курсора в начало следующей строки экрана (соответствует клавише <Enter>);

□ #26 (SUB) - конец файла, вводится нажатием комбинации клавиш

<Ctrl> + <Z>;

□#27 (ESC) - конец работы, символ соответствует клавише <Esc>;

□ #32 (BL) - пробел

и т.д.


Предположим, например, что в программе имеется описание:

 

var ch: Char;

 

Тогда операторы

 

ch: = Chr(7);

ch: = #7;

ch: = ^G;

символьный тип язык программирование

присваивают символьной переменной ch одно и то же символьное значение. Здесь ^ G обозначает Ctrl-последовательность Ctrt+G (управляющий символ с кодом 7 BEL- звуковой сигнал). Знак # и следующая за ним целая беззнаковая константа обозначают код символа.

Из тридцати двух управляющих символов нам, скорее всего, могут понадобиться лишь некоторые (табл. 1.2).

 

Таблица 1.2. Некоторые управляющие символы набора ASCII

Код Ctrl-последовательность Использование функции Сhr Мнемоническое обозначение Действие
#7 ^G Chr(7) BEL Звуковой сигнал динамика
#8 ^Н Chr(8) BS Возврат курсора на одну позицию
#9 ^I Chr(9) HT Горизонтальная табуляция
#10 ^J Chr(10) LF Перевод строки
#12 ^L Chr(12) FF Прогон страницы
#13 ^М Chr(13) CR Возврат каретки
#26 ^Z Chr(26) SUB Конец файла
#27 ^[ Chr(27) ESC Символ Escape

 


Первые 32 символа ASCII являются управляющими. Для большинства из них не существует соответствующей клавиши. Для того, чтобы включить в последовательность символов такие символы, введено понятие управляющего символа, для которого предусмотрена запись: ^<символ>. Например, ^[ - соответствует клавише<Escape>; ^G - для звукового сигнала.

Чтение символа.

Обращение Read (f, v) t где v обозначает переменную, относящуюся к типу, совместимому с типом Char, эквивалентно оператору:

begin v:= f↑; Get(f) end

где все вхождения f обозначают одну и ту же переменную. Если перед обращением Read(f, v) было истинно eoln(f), то после будет истинно условие (v= ' ').

Лексемы и разделители

 

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

Разделители

Символами-разделителями считаются пробелы, концы строк (разделители строк) и примечания. Внутри лексем Паскаля ни разделители, ни их части встречаться не могут. Между двумя следующими друг за другом именами, символами-словами или числами должен быть по крайней мере один разделитель.

Примечаниеначинается с символа { или (* (но не внутри строки символов) и заканчивается } или *). Само примечание может содержать любые символы, включая концы строк, за исключением } или *). Любое примечание может быть заменено на пробел, смысл текста программы при этом не изменяется.

Мы можем улучшать внешний вид (удобочитаемость) программы на Паскале, включая в нее пробелы, концы строк (пустые и) и примечания.


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.034 с.