На Горох
Информатика, 10 класс

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

"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.

Объяснение темы В оглавлении: § 27. Символьный тип данных

Кратко о теме

Символьный тип 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 символы записывают в одинарных кавычках.

  1. В 'A' есть один символ в кавычках, значит, это символьное значение.
  2. В '7' также один знак в кавычках: это символ цифры, а не число.
  3. Запись 7 не заключена в кавычки и обозначает число.
  4. В 'AB' два знака, поэтому это не значение типа char, а последовательность символов.

Ответ: значения символьного типа — 'A' и '7'. Запись 7 является числом, а 'AB' содержит больше одного символа.

Задача 2. Найдите код символа 'B' с помощью функции преобразования, а затем восстановите символ по полученному коду. Для учебного примера используем таблицу, совместимую с ASCII, и Unicode, где латинской букве B соответствует код 66. В других кодировках или языковых средах следует проверить принятую таблицу.

  1. Передаём символ функции ord: ord('B').
  2. Получаем код 66.
  3. Передаём число функции chr: chr(66).
  4. Обратное преобразование возвращает символ 'B'.

Ответ: ord('B') = 66, chr(66) = 'B'. Функции переводят значение из символьного представления в числовое и обратно.

Задача 3. Даны символы 'A' и 'C'. Определите результат их сравнения и выясните, какой символ следует за 'A' в кодовой последовательности. В таблице Unicode коды латинских заглавных букв идут подряд: A имеет код 65, B — 66, C — 67. Сравнение символов поэтому можно свести к сравнению этих чисел.

  1. Сопоставляем коды: 65 меньше 67.
  2. Следовательно, при сравнении 'A' < 'C' результат будет истинным.
  3. После кода A, равного 65, идёт код 66, которому соответствует B.

Ответ: 'A' меньше 'C', а следующим символом в этой последовательности является 'B'. Вывод основан на порядке кодов, а не только на внешнем виде букв.

Типичные ошибки

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

Записывать символ без кавычек или брать его в двойные кавычки. Без кавычек запись может восприниматься как имя переменной, а двойные кавычки во многих языках обозначают строку. Ошибку допускают, перенося правила одного языка в другой. Сверьте синтаксис языка и убедитесь, что для одного знака выбрана правильная форма записи.

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

Считать коды букв одинаковыми во всех кодировках. Числовое представление зависит от кодовой таблицы и выбранного способа кодирования. Путаница возникает, когда пример с латинскими буквами переносят на другие знаки или языковые среды. Уточните таблицу и проверьте код функцией ord в нужной программе.

Связь с другими темами

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

Что запомнить

  • Значение типа char — один символ.
  • Символ в программе записывают в кавычках согласно правилам языка.
  • Цифра в кавычках является символом, а не числом.
  • Каждому символу соответствует числовой код.
  • ord получает код символа, а chr преобразует код в символ.
  • Сравнение символов связано с порядком их кодов.

Частые вопросы по теме

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

Символьный тип char хранит один знак, например 'А'. Строка хранит последовательность символов, например "мир"; отдельные знаки строки можно обрабатывать по одному.

Почему '8' — не то же самое, что число 8?

Запись '8' в одинарных кавычках обозначает символ, которому соответствует код. Число 8 можно использовать в арифметике напрямую, а для действий с цифрой-символом её сначала нужно преобразовать в число.

Как узнать числовой код символа?

В языках, где предусмотрена функция ord, передайте ей символ: например, ord('B') возвращает код символа B. Значение кода зависит от кодовой таблицы, принятой языком и средой.

Как получить символ по его коду?

Для обратного преобразования используют функцию chr: она получает числовой код и возвращает соответствующий символ. Например, chr(66) даёт 'B' в распространённой кодировке Unicode.

Почему результат сравнения двух букв зависит от кодовой таблицы?

При сравнении программа сопоставляет числовые коды букв. Если код одной буквы меньше кода другой, она считается меньшей при таком сравнении; порядок может различаться для разных наборов символов и кодовых таблиц.

Спросить по теме параграфа

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

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.