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

§ 6. Выполнение практических заданий с использованием символьных и строковых величин

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", Г.А. Заборовский, А.Е. Пупцев

Объяснение темы В оглавлении: § 6. Выполнение практических заданий с использованием символьных и строковых величин

Кратко о теме

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

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Символьная величина — переменная, которая хранит один символ: например, букву, цифру или знак пунктуации. В программе её объявляют средствами выбранного языка как величину символьного типа, а затем присваивают ей один знак. Такой тип удобен, когда нужно отдельно проверить, сравнить или вывести именно один символ.

Строковая величина — упорядоченная последовательность символов. В программе строку задают текстовым значением и сохраняют в переменной строкового типа. В отличие от символьной величины, строка может содержать несколько знаков, например слово или предложение, поэтому для работы с текстом выбирают именно её.

Длина строки — количество символов, входящих в строку. Если длина равна пяти, в строке пять позиций, и ни одна позиция за пределами этого количества не содержит символа строки. Длину используют, чтобы узнать объём текста и определить, сколько раз нужно выполнить перебор.

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

Как это устроено

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

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

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

В задачах поиска и подсчёта сначала формулируют критерий: например, символ должен совпадать с заданной буквой. При подсчёте после каждой проверки увеличивают счётчик, если условие выполнено; при поиске сохраняют позицию совпадения. Если нужен только первый найденный знак, поиск можно прекратить, а если требуется число всех совпадений — необходимо проверить всю строку.

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

Приёмы обработки символьных и строковых величин

ЗадачаЧто проверяется или изменяетсяОсновной приёмЧто получить в результате
Обращение к отдельному символуЗнак в выбранной позицииУказать допустимую позицию строкиНужный символ или результат его проверки
Подсчёт символов с заданным свойствомКаждый символ на соответствие условиюПеребор и увеличение счётчикаКоличество подходящих символов
Поиск символа или фрагментаСовпадение с искомым значениемСравнение при переборе строкиПозиция найденного элемента или сообщение, что его нет
Замена или удаление символовЗнаки, которые нужно изменить или исключитьПроверка условия и формирование результатаИзменённая строка
Формирование новой строкиКакие символы сохраняются в результатеДобавление нужных знаков по порядкуНовая строка, соответствующая условию

Сначала определите, что требуется получить: число, позицию или новую строку. Затем выберите столбец с подходящим приёмом и уточните, какое условие нужно проверять. Перед обращением к позиции проверьте, что она входит в границы строки.

Разбор задач

Совпадает ли первый символ с заданным

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

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

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

Сколько раз встречается заданная буква

Условие. Дана строка и буква. Требуется подсчитать, сколько раз эта буква встречается в строке. Нужно проверить все символы, потому что совпадение может находиться не только в начале, а одна и та же буква может встретиться несколько раз.

  1. Создать счётчик и присвоить ему начальное значение 0.
  2. Последовательно пройти по всем допустимым позициям строки.
  3. На каждой позиции сравнить символ с заданной буквой.
  4. При совпадении увеличить счётчик на 1, а после завершения цикла вывести его.

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

Удаление пробелов

Условие. Дана строка. Нужно получить новую строку без пробелов, сохранив порядок остальных символов. Вместо удаления знаков внутри исходной строки удобнее собирать результат отдельно: тогда сдвиги позиций не помешают проверке.

  1. Создать пустую строку-результат.
  2. Перебрать символы исходной строки по порядку.
  3. Если очередной символ не является пробелом, добавить его в результат; пробел пропустить.
  4. После обхода вывести полученную строку.

Ответ. Новая строка содержит все исходные символы, кроме пробелов, и сохраняет их прежний порядок. Если исходная строка состояла только из пробелов, результат будет пустым.

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

Строку и отдельный символ считают взаимозаменяемыми типами, потому что оба могут выглядеть как текст. Но символьная величина рассчитана на один знак, а строка — на последовательность; несоответствие может привести к ошибке или неверному сравнению. Проверьте себя: ясно ли, может ли переменная содержать больше одного символа, и выбран ли тип под это значение?

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

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

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

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

Для обработки строк нужны переменные, присваивание, условия и циклы: переменные хранят исходные данные и результат, условия выбирают действие, а цикл повторяет его для символов. Поэтому полезно заранее понимать, как задаётся условие и когда цикл завершается. Эти же приёмы применяются при проверке пользовательского ввода, разборе текстовых данных и работе с файлами. Освоив перебор строки, проще строить алгоритмы для обработки реальных текстов.

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

  • Символьная величина хранит один символ, строковая — последовательность символов.
  • Строку можно обрабатывать по одному символу за раз.
  • Позиция символа используется для обращения к нему.
  • Подсчёт выполняют перебором символов и накоплением результата.
  • Для преобразования строки удобно формировать новый результат по заданному условию.
  • Перед обращением к символу нужно убедиться, что его позиция допустима.

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

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

Символьная величина хранит один знак, например букву или цифру. Строковая величина хранит последовательность символов, в том числе пустую строку или текст из нескольких знаков.

Как обратиться к отдельному символу строки?

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

Как подсчитать в строке символы с заданным свойством?

Перебирают строку по символам и проверяют каждый символ на нужное свойство. Если условие выполнено, увеличивают счётчик, а после обхода получают общее количество.

Как найти заданный символ в строке?

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

Почему при удалении символов иногда удобнее создать новую строку?

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

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

§ 6. Выполнение практических заданий с использованием символьных и строковых величин

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", Г.А. Заборовский, А.Е. Пупцев