русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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

В предыдущих разделах мы изучили:

· объявление переменных и массивов символьного типа;

· правила записи символьных констант (п. 3.1 гл. 1);

· ввод, вывод символьных переменных (§ 4 гл. 2);

· передачу символьной переменной в функцию (§ 1 гл. 2);

· анализ символов(§ 4 гл. 2);

· вывод кодов всех символов, т. е. кодовую таблицу (задача 8, § 2 гл. 2);

Среди символов есть такие, которые нельзя ввести обычным способом, т. е. с помощью соответствующих клавиш, так как их нет на алфавитно–цифровой клавиатуре. Они называются символами псевдографики. Для их ввода курсор подводим в нужное место и нажимаем “Alt”. При включённом цифровом режиме (клавиша NumLock) соответствующий код символа набираем справа на клавиатуре, а не в верхнем ряду. Во время набора ничего не отображается, но когда отпустим клавишу “Alt”, в соответствующем месте появится символ псевдографики с набранным кодом. Такие символы в функцию в качестве фактических параметров можно передать, как и обычные символы, двумя способами: можно указать числовой код символа или вышеописанным способом набрать такой символ.

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

· цифры в таблице располагаются подряд, цифра 0 имеет код 48, у цифры 1 код 49, и т. д., цифра 9 имеет код 57;

· как прописные, так и строчные латинские буквы располагаются в алфавитном порядке с кодами 65—90 для больших и
97—122 для маленьких букв;

· русские прописные буквы располагаются также подряд (коды 128—159);

· маленькие русские буквы терпят разрыв, буквы от ‘а’ (код 160) до ‘п’ (175) следуют подряд. После буквы ‘п’ размещаются символы псевдографики, а затем русский алфавит продолжается с буквы ‘р’ (224) до ‘я’(239).

Другие особенности символьной кодовой таблицы можно увидеть, выполнив вышеприведённую программу (задача 8, § 2 гл. 2).

Рассмотрим совместимость символьного и целого типов, что характерно для языка С++. В переменной типа char можно хранить как символы (точнее, их коды), так и целые однобайтные числа. Для переменных типа char определены те же операции, что и для типа int, например, целочисленное деление (/), получение остатка от целочисленного деления (%) и другие. Поэтому в языке С++, в отличие от Pascal, можно выполнить следующий фрагмент:

char a='5', b=5;

cout<<a<<”, “<<b<<”, “<<a%b<<", "<<a/b<<'\n';

В результате получим 5, символ с кодом 5(см. кодовую таблицу), 3, 10. Почему? В переменной a хранится код символа ‘5’, т. е. целое число 53, а в переменной b — обычное целое число 5,
а 53 % 5 = 3, 53 / 5 = 10. Заметим, что если объявим int a=53, b=5; то выведем 53, 5, 3, 10. Если, что интереснее, int a=’5’, b=5; то получим то же, что и в предыдущем варианте, т. е. 53, 5, 3, 10, так как значением целочисленной переменной a будет код символа 5, т. е. целое число 53.

При вводес помощью cin результат зависит от того, как переменная объявлена и что набираем при вводе.

Пусть char a, b; cin>>a>>b; При выполнении введём 5 и 3. Тогда с помощью того же cout получим 5, 3, 2, 1. Здесь число 2 получено не как остаток от деления 5 на 3, а как результат операции % для кодов этих символов, т. е. 53 % 51 = 2. Для этих же чисел получено и число 1. В этом можно убедиться, если вместо частного вывести произведение cout << a*b. На экране мы увидим не 15 (5*3), а 2703, т. е. произведение кодов символов 5 и 3 (51* 53 = 2703).

Пусть по–прежнему char a, b; cin>>a>>b; При выполнении наберем два символа, например, a и с, коды которых 97 и 99. Тогда по той же причине будет выведено: a, c, 97, 9603, где 97=97%99, а 9603=97*99. “Числа”, которые больше, чем 9, при таком объявлении ввести не сможем. Если введём, например, 123, то a примет значение символа ‘1’, b= ‘2’, а символ 3 игнорируется. Получим 1, 2, 49, 2450, где 49=49 % 50, 2450 = 49*50.

Если объявлено int a, b; и вводим целые числа, то значениями этих переменных будут введённые числа. При вводе символов ничего хорошего не получим, хотя программа будет выполняться.

Символы лучше вводить с помощью специальных функций getch, getchar или getche (см. § 4 гл. 2).

Вывод символов или их кодов удобнее выполнять не с помощью cout, а используя функции printf или cprintf (см. вывод кодовой таблицы).

Просмотров: 647


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.