"Информатика (в 2-х частях)", Горячев А.В., Островский С.Л., Паволоцкий А.В., Семёнов А.А., Чернышёва Т.Л., Широков Д.В.
Символьный тип данных предназначен для хранения одного знака: буквы, цифры, пробела или знака препинания. Компьютер представляет каждый символ числовым кодом, а кодировка задаёт соответствие между знаками и этими числами. Это позволяет хранить текст, вводить и выводить его, а также сравнивать символы. Цифра «7» как знак отличается от числа 7, а несколько символов вместе образуют строку.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Символьный тип данных — тип, предназначенный для хранения одного символа. В отличие от числового типа, он хранит знак, а не количество или величину, с которыми выполняют арифметические действия. В отличие от строкового типа, он не предназначен для целого слова или фразы. Различие типов помогает программе правильно выбирать действия над данными.
Символ — отдельный знак: буква, цифра, пробел или знак препинания. Например, буква «А» и знак вопроса «?» — символы, как и цифра «5», если она записана именно как знак. Такая цифра не становится числом: её можно вывести на экран или искать в тексте, но запись сама по себе не означает числовое значение. Это различие важно при выборе операций.
Код символа — число, которым символ представлен в памяти компьютера. Каждому символу соответствует свой код, поэтому машина может хранить и обрабатывать знаки в числовом виде. Код позволяет программе работать с буквами и пунктуацией так же, как с другими данными, хотя для человека символ обычно удобнее числа, которым он закодирован. При этом код не следует путать с самим знаком.
Кодировка символов — правило, которое сопоставляет знакам числовые коды. По кодировке компьютер определяет, какой знак нужно сохранить или показать для данного кода. Если при создании и чтении текста применяются разные кодировки, один и тот же набор данных может отображаться неверно. Поэтому совпадение правил необходимо для обмена текстом.
Символьная переменная рассчитана на один знак, потому что её значение должно обозначать один элемент текста: например, букву или пробел. Если записать подряд несколько знаков, получится последовательность, а не отдельный символ. Для такой последовательности используют строковый тип, который позволяет хранить слова и фразы. Разделение типов помогает программе понимать, с какими данными она работает и какие операции допустимы.
Компьютер не хранит буквы в том виде, в каком мы видим их на экране: внутри устройства информация представлена числами. Поэтому каждому символу назначают числовой код, который можно сохранить в памяти и передать программе. Когда знак нужно показать, компьютер использует код для выбора соответствующего изображения. Благодаря этому можно обрабатывать не только буквы, но и цифры, пробелы и знаки препинания.
Кодировка связывает конкретные символы с числами по установленному правилу. При записи текста программа переводит знаки в коды, а при чтении выполняет обратное преобразование. Если два устройства используют несовпадающие кодировки, одно и то же число может быть истолковано как разные знаки. В результате текст вместо ожидаемых букв может выглядеть как набор непонятных символов.
Ввод и вывод символов тоже опираются на коды. При нажатии клавиши компьютер получает знак и представляет его кодом, чтобы программа могла сохранить или обработать его; при выводе код преобразуется обратно в изображение символа. Сравнение устроено похожим образом: программа сопоставляет кодовые значения, а не оценивает внешний вид знаков. Поэтому порядок при сравнении зависит от кодировки и может не совпадать с алфавитным порядком.
Запись «7» обычно показывает отдельную цифру-символ, а запись 7 — число, то есть числовое значение. Символ можно включить в текст, вывести на экран или сравнить с другим знаком; число можно, например, сложить с другим числом. Аналогично, «А» — один символ, а «АБ» — строка из двух символов. Кавычки в учебных примерах помогают заметить, что речь идёт о знаке или тексте, а не о числовом значении.
| Признак | Символьный тип | Числовой тип | Строковый тип |
|---|---|---|---|
| Что хранит | Один знак | Числовое значение | Последовательность символов |
| Пример значения | «А» | 5 | «АБ» |
| Как представляется в компьютере | Кодом символа | Числовым представлением значения | Последовательностью кодов символов |
| Можно ли хранить несколько знаков | Нет, только один | Не в качестве текстовых знаков | Да |
Сначала определите, что именно обозначает значение: один знак, величину или набор знаков. Затем сверьте пример с нужным столбцом, обращая внимание на кавычки и количество знаков. Таблица помогает выбрать тип данных, но конкретный способ записи зависит от языка программирования.
Условие: определить, какие из значений «А», «5», 5 и «?» являются отдельными символами, а какое является числом. Нужно различить знак и числовое значение, а не ориентироваться только на то, что цифра выглядит как число. Кавычки в условии обозначают символы. Сравним записи по этому признаку.
Ответ: отдельные символы — «А», «5» и «?», число — 5. Здесь важно различать значение данных и способ их записи. В программе конкретный синтаксис может отличаться, но смысловое различие остаётся.
Условие: определить, какой из символов «А», «Б» и «а» имеет меньший код, пользуясь указанной таблицей кодировки. Без таблицы нельзя надёжно назвать победителя: числовые коды зависят от выбранного правила. Поэтому сначала найдём значения именно в одной данной кодировке. Затем сравним их как числа.
Ответ: меньший код имеет тот из символов «А», «Б» или «а», которому в данной таблице соответствует наименьшее число. Чтобы дать конкретную букву, нужны значения из самой таблицы. Такой способ исключает ошибку, когда порядок пытаются определить по внешнему виду или привычному алфавиту.
Условие: дана последовательность символов и правило вывести их в порядке возрастания кодов. Например, нужно упорядочить символы набора по таблице кодировки. Простого сравнения на глаз недостаточно, поскольку порядок задаётся числовыми значениями. Проследим весь путь от знаков к результату.
Ответ: результатом будет последовательность символов, чьи коды идут по возрастанию. Конкретный порядок определяется заданным набором и таблицей, поэтому без них его нельзя указать. Проверка проста: выпишите коды результата и убедитесь, что каждое следующее число не меньше предыдущего.
Ошибка — считать цифру «5» числом 5. Её допускают, потому что знак и число выглядят одинаково, если не учитывать контекст записи. Проверьте себя: «5» обозначает символ, который можно включить в текст, а 5 без кавычек — числовое значение.
Ошибка — помещать целое слово в символьную переменную. Путаница возникает из-за того, что слово состоит из букв и тоже выглядит как текст. Проверьте количество знаков: один знак подходит для символьного типа, несколько подряд — для строкового.
Ошибка — сравнивать символы только по их внешнему виду или алфавитному смыслу. Так кажется естественным, но компьютер сопоставляет числовые коды, а не оценивает буквы по-человечески. Проверьте себя по таблице кодировки: сравните числа и только затем сделайте вывод о порядке.
Ошибка — забывать о кодировке при чтении текста. Если правила преобразования не совпадают, сохранённый код может быть показан как другой знак, и текст становится нечитаемым. Проверьте, что при записи и чтении используется одна и та же кодировка, особенно при передаче файла между устройствами.
Для изучения символьного типа нужны понятия типа данных и переменной: тип задаёт, какие значения хранятся и как их обрабатывают, а переменная служит именем для такого значения. Также важно представление информации в памяти, потому что символ сохраняется не как рисунок, а как код. Эти знания объясняют, почему один знак и целое слово относятся к разным типам данных.
Символьные данные применяют при обработке текста: например, при поиске нужной буквы или сравнении знаков. Когда нужно хранить слова и фразы, используют строковый тип, состоящий из последовательности символов. Понимание кодировок помогает объяснить, как текст передают между программами и почему при несовпадении правил он может отображаться неверно.
Чем символ отличается от строки?
Символ — один отдельный знак, например «А» или «?». Строка состоит из одного или нескольких символов, например «дом»; для неё используют строковый тип.
Почему «8» и число 8 — разные данные?
«8» в кавычках обозначает знак, который можно напечатать или включить в текст. Число 8 — значение, с которым выполняют арифметические действия; компьютер обрабатывает его как числовые данные.
Как компьютер хранит буквы и знаки препинания?
Каждому символу соответствует числовой код, и в памяти компьютер хранит его кодовое представление. Чтобы прочитать эти данные как текст, устройство использует кодировку — правило связи кодов со знаками.
Почему символы сравнивают по кодам?
Компьютер хранит символы как числовые коды, поэтому при сравнении может сопоставить их числовые значения. Полученный порядок не обязательно совпадает с алфавитным или привычным человеку.
Отчего текст иногда отображается нечитаемыми знаками?
Так бывает, если данные прочитаны не в той кодировке, в которой их записали. Один и тот же код при разных правилах декодирования может быть показан как другой знак.
§ 3. Символьный тип данных