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

§ 7. Строковые величины

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович

Объяснение темы В оглавлении: § 7. Строковые величины

Кратко о теме

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

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

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

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

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

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

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

Символ строки — отдельный элемент строки, к которому в программе обращаются по его позиции. Например, если s = "дом", то s[2] обозначает символ о. Позиция указывает место символа в последовательности, а не его вид. Это нужно, когда требуется проверить или изменить отдельный знак, например найти определённую букву.

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

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

Длину находят, подсчитывая все символы строки; в условной записи можно использовать length(s). Пробел и знак препинания занимают позиции наравне с буквами, потому что каждый из них является элементом последовательности. Например, длина строки "а, б" равна 4: буква, запятая, пробел и буква. Подсчёт длины нужен, чтобы знать границы строки и не обращаться к позиции, которой в ней нет.

Чтобы получить символ, указывают имя строки и его позицию, например s[i]. В этой нумерации первый символ имеет позицию 1, второй — 2 и так далее, поэтому при переборе начинают с единицы. Нулевая позиция не обозначает первый символ и в данном способе обращения не используется. Если длина строки равна n, допустимый диапазон — от 1 до n включительно.

Строки соединяют, ставя их содержимое одно за другим; условно это можно записать как s1 + s2. Если нужны фамилия и имя через пробел, пробел добавляют отдельно: s1 + " " + s2. Здесь знак + означает сцепление частей текста, а не сложение числовых значений: цифры внутри строк не складываются. Результатом становится одна новая строка, в которой сохраняется порядок соединённых частей.

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

Основные действия со строковыми величинами

ДействиеЧто записатьЧто получается
Присваивание строкового значения переменнойs = "текст"Переменная s хранит строку «текст»
Определение длины строкиlength(s)Количество символов в s
Обращение к символу по позицииs[i]Символ на позиции i
Соединение строкs1 + s2Одна строка из содержимого s1 и s2
Сравнение строкs1 = s2 или s1 < s2Результат сравнения строк

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

Разбор задач

Длина строки и символ на третьей позиции

Для строки «информатика» нужно найти длину и символ, стоящий на третьем месте. Сначала перепишем слово по порядку и будем считать каждую букву, начиная с позиции 1. Пробелов и знаков препинания здесь нет, поэтому каждая позиция соответствует одной букве. Для получения символа используем именно третью позицию, а не номер 3, отсчитанный от нуля.

  1. Пронумеруем символы: и — 1, н — 2, ф — 3, о — 4, р — 5, м — 6, а — 7, т — 8, и — 9, к — 10, а — 11.
  2. Всего получилось 11 символов, значит длина строки равна 11.
  3. На позиции 3 находится буква ф.

Ответ: длина — 11 символов, символ на третьей позиции — «ф». Нумерация с единицы позволяет сразу связать порядковый номер с записью s[i].

Соединение фамилии и имени

Пусть дана фамилия «Иванов» и имя «Пётр», а между ними требуется поставить пробел. Если просто соединить две строки, слова окажутся рядом без разделителя. Поэтому нужно включить пробел в результат как отдельную строку из одного символа. Такой способ удобен и для других разделителей, например запятой или дефиса.

  1. Обозначим фамилию через s1, а имя через s2.
  2. Запишем выражение s1 + " " + s2, добавив пробел между частями.
  3. Подставим значения: «Иванов» + « » + «Пётр».

Ответ: получится строка «Иванов Пётр». Пробел входит в результат и увеличивает его длину на один символ по сравнению с соединением без разделителя.

Подсчёт заданной буквы

Пусть дана строка s и буква b, количество которой нужно подсчитать. Идея состоит в том, чтобы проверить каждый символ строки и отметить совпадения. Для этого заведём счётчик, изначально равный нулю, и будем увеличивать его только при равенстве s[i] и b. Перебор должен охватить все позиции, иначе часть строки останется непроверенной.

  1. Положим count = 0 и определим длину строки n = length(s).
  2. Для i от 1 до n получим символ s[i] и сравним его с b.
  3. Если s[i] = b, увеличим count на 1; если символы различны, оставим счётчик без изменений.
  4. После проверки последней позиции выведем count.

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

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

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

Обращаться к символу с позиции 0. Такая ошибка возникает, если ученик переносит нумерацию из другого языка программирования или путает номер символа с отсчётом от начала. В рассматриваемой записи первый символ имеет позицию 1. Для проверки выпишите первые позиции строки: 1, 2, 3 — и сопоставьте их с буквами.

Указывать позицию за пределами строки. Например, при длине 5 запрос s[6] не соответствует существующему символу. Ошибку допускают, когда неверно подсчитана длина или цикл захватывает лишний шаг. Перед обращением проверьте условие: позиция должна быть не меньше 1 и не больше длины строки.

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

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

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

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

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

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

Считается ли пробел символом строки?

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

С какой позиции начинается нумерация символов?

В рассматриваемой нумерации первый символ находится на позиции 1. Если в строке n символов, допустимы позиции от 1 до n.

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

Укажите имя строки, а затем позицию символа в квадратных скобках: s[i]. Например, s[3] означает символ строки s на третьей позиции.

Как соединить две строки?

Используйте операцию соединения, например запись s1 + s2 в условной форме. Если между частями нужен пробел, его добавляют как отдельную строку: s1 + " " + s2.

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

Одинаковая длина не означает одинаковое содержимое. Строки сравниваются посимвольно, и уже первый различающийся символ может определить результат.

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

§ 7. Строковые величины

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо, Ю.А. Быкадоров, Е.Н. Войтехович