"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
Символьный тип char хранит один знак: букву, цифру или специальный символ. Он нужен, когда программа обрабатывает отдельные знаки текста — например, проверяет введённую букву или находит код символа. Компьютер представляет каждый знак числовым кодом, поэтому символы можно сравнивать и преобразовывать в числа и обратно. Главное — отличать символ '7' от числа 7: внешне они похожи, но относятся к разным типам данных.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Символьный тип данных char — тип для хранения одного символа: буквы, цифры, знака препинания или другого знака. Он отличается от строкового типа: char представляет один знак, а строка — последовательность знаков. Отдельный символ удобно хранить, например, когда программа проверяет введённую букву.
Символьная константа — записанное в программе постоянное значение из одного символа. В примерах с языком Pascal её заключают в одинарные кавычки: 'A' или '7'. Кавычки показывают, что перед нами знак; поэтому '7' — не число семь, а символ, который изображает цифру.
Код символа — целое число, которым символ представлен внутри компьютера. Программа может работать с этим числом, чтобы сравнивать знаки или преобразовывать их. Сам код не является изображением буквы: чтобы показать знак на экране, компьютер связывает код с его отображением.
Кодовая таблица задаёт соответствие между символами и их числовыми кодами. Unicode — широко применяемый стандарт, включающий знаки разных письменностей; конкретное представление зависит также от кодировки и языка программирования. В учебных примерах часто используют коды, совместимые с ASCII: например, код латинской буквы B равен 66.
Компьютеру удобнее хранить и обрабатывать числа, чем отдельные изображения букв. Поэтому каждому знаку назначают числовой код, а программа или система отображения по этому коду находит нужное начертание. Кодовая таблица связывает оба представления, чтобы одно и то же значение можно было сохранить, сравнить и показать на экране.
В программе значение char записывают как символ в кавычках, например 'A'. Одинарные кавычки помогают отличить константу-символ от имени переменной A и от числового значения. Правила записи зависят от языка: в одних языках строку и символ обозначают разными кавычками, поэтому нужно соблюдать именно синтаксис используемого языка.
У символов есть порядок, заданный их кодами. Когда программа сравнивает два символа, она фактически сопоставляет соответствующие числа: символ с меньшим кодом считается меньшим. Это позволяет проверять, например, что одна латинская буква стоит раньше другой, но порядок зависит от таблицы и не всегда совпадает с привычным порядком знаков разных алфавитов.
Функция ord преобразует символ в его числовой код, а chr выполняет обратное преобразование. Например, в распространённой кодировке Unicode ord('B') даёт 66, а chr(66) возвращает 'B'. Такое преобразование нужно, когда требуется узнать код знака, получить знак по коду или выполнять вычисления с кодами.
С символами можно сравнивать значения, присваивать их переменным и преобразовывать их в коды и обратно. Однако арифметика над символом и арифметика над числом — не одно и то же: выражение с '7' не становится вычислением числа семь. Если нужно использовать цифру как число, сначала преобразуйте символ в числовое значение средствами языка, а затем выполняйте арифметические действия.
| Что рассматриваем | Символьный тип char | Целочисленный тип |
|---|---|---|
| Что хранит | Один символ | Целое число |
| Как записывается литерал | 'A' или '7' в правилах примеров с Pascal | Например, 7 или 66 |
| Как представить значение | Знаком, который хранится по числовому коду | Числовым значением |
| Какие операции и преобразования применяются | Сравнение символов, ord для получения кода, chr для обратного преобразования | Арифметические действия и преобразование в символ, если это поддерживает язык |
Сначала определите, что именно хранит переменная: знак или число. Затем выберите запись и операции, подходящие этому типу. Если нужны вычисления с цифрой, заключённой в кавычки, сначала преобразуйте её из символа в число.
Задача 1. Определите, какие из записей 'A', '7', 7, 'AB' являются значениями символьного типа. Проверим каждую запись по двум признакам: используются ли кавычки и заключён в них ровно один знак. Учитываем, что в примерах с Pascal символы записывают в одинарных кавычках.
Ответ: значения символьного типа — 'A' и '7'. Запись 7 является числом, а 'AB' содержит больше одного символа.
Задача 2. Найдите код символа 'B' с помощью функции преобразования, а затем восстановите символ по полученному коду. Для учебного примера используем таблицу, совместимую с ASCII, и Unicode, где латинской букве B соответствует код 66. В других кодировках или языковых средах следует проверить принятую таблицу.
Ответ: ord('B') = 66, chr(66) = 'B'. Функции переводят значение из символьного представления в числовое и обратно.
Задача 3. Даны символы 'A' и 'C'. Определите результат их сравнения и выясните, какой символ следует за 'A' в кодовой последовательности. В таблице Unicode коды латинских заглавных букв идут подряд: A имеет код 65, B — 66, C — 67. Сравнение символов поэтому можно свести к сравнению этих чисел.
Ответ: 'A' меньше 'C', а следующим символом в этой последовательности является 'B'. Вывод основан на порядке кодов, а не только на внешнем виде букв.
Считать '5' числом 5. Кавычки обозначают символ, поэтому с ним нельзя автоматически выполнять те же вычисления, что с числом. Путаница возникает из-за того, что знак выглядит как цифра. Проверьте себя: если значение записано как '5', перед вами символ; для арифметики преобразуйте его в число.
Записывать символ без кавычек или брать его в двойные кавычки. Без кавычек запись может восприниматься как имя переменной, а двойные кавычки во многих языках обозначают строку. Ошибку допускают, перенося правила одного языка в другой. Сверьте синтаксис языка и убедитесь, что для одного знака выбрана правильная форма записи.
Помещать несколько знаков в char. Тип char рассчитан на один символ, а 'AB' содержит два. Такая ошибка появляется, когда символ путают со строкой. Проверьте количество знаков внутри кавычек: если их несколько, используйте строковый тип.
Считать коды букв одинаковыми во всех кодировках. Числовое представление зависит от кодовой таблицы и выбранного способа кодирования. Путаница возникает, когда пример с латинскими буквами переносят на другие знаки или языковые среды. Уточните таблицу и проверьте код функцией ord в нужной программе.
Для работы с char нужно знать, что такое тип данных, переменная и константа, а также уметь записывать значения по правилам языка. Символьный тип связан со строковым: строка состоит из символов, и отдельный знак можно обрабатывать отдельно. Эти знания пригодятся при проверке введённых данных, поиске знаков в тексте и преобразовании символов в коды.
Чем символьный тип отличается от строкового?
Символьный тип char хранит один знак, например 'А'. Строка хранит последовательность символов, например "мир"; отдельные знаки строки можно обрабатывать по одному.
Почему '8' — не то же самое, что число 8?
Запись '8' в одинарных кавычках обозначает символ, которому соответствует код. Число 8 можно использовать в арифметике напрямую, а для действий с цифрой-символом её сначала нужно преобразовать в число.
Как узнать числовой код символа?
В языках, где предусмотрена функция ord, передайте ей символ: например, ord('B') возвращает код символа B. Значение кода зависит от кодовой таблицы, принятой языком и средой.
Как получить символ по его коду?
Для обратного преобразования используют функцию chr: она получает числовой код и возвращает соответствующий символ. Например, chr(66) даёт 'B' в распространённой кодировке Unicode.
Почему результат сравнения двух букв зависит от кодовой таблицы?
При сравнении программа сопоставляет числовые коды букв. Если код одной буквы меньше кода другой, она считается меньшей при таком сравнении; порядок может различаться для разных наборов символов и кодовых таблиц.
§ 27. Символьный тип данных