Алгоритмы обработки символьных строк

Алгоритмы обработки символьных строк — это набор методов и инструкций для эффективной обработки и анализа строковых данных в программировании. К таким алгоритмам относятся: подсчёт количества появлений символа в строке, разбиение строки на слова по пробельным символам, поиск подстроки внутри данной строки, замена найденной подстроки на другую строку[1].

Основные понятия

  • Символьная строка — это последовательность символов, расположенных рядом в соседних ячейках памяти. Обрабатывается как единый объект.
  • Подстрока — последовательность символов, являющаяся частью строки.
  • Символ — отдельный элемент строки, представляющий букву, цифру или иной знак.
  • КуМир — школьный алгоритмический язык.
  • Литерные данные — это произвольные последовательности символов: букв, цифр, знаков препинания, пробела и других специальных знаков, обозначаются лит (в КуМире).
  • Строковый тип данных — аналогичный символьный тип данных (в Паскале, Python), обозначается string.

Алгоритмы обработки символьных строк

Подсчёт количества символов в строке

Длина строки — количество символов в ней. В школьном алгоритмическом языке такая функция называется длин, в Паскале — Length, в Python — len[2]. Пример записей на соответствующих языках для целочисленной переменной , в которую возвращается длина строки:

n:=длин (s)      n:= Length (s);    n:= len(s)

Поиск внутри данной строки

Можно организовать поиск отдельного символа или подстроки внутри строк. Для этого надо передать образец символа («с») и строку, в которой надо искать. Функция позиция возвращает целое число — номер символа, с которого начинается образец («с») в строке . В Паскале это функция Pos.

s:='образец'             s:='образец';
n:= позиция ('с',s)      n:= Pos ('с',s);

Разбиение строки на слова по пробельным символам

На Python эта операция записывается так:

s.split("символ")

Замена найденной подстроки на другую строку

Для выделения подстроки используется операция получения среза — . В Паскале для этого используется функция Copy, которая принимает три параметра: имя строки, номер начального символа и количество символов.

Для удаления части строки нужно вызвать соответствующую подпрограмму, указав имя строки, номер начального символа и количество удаляемых символов. Это делают операторы: удалить (в КуМире) и Delete в Паскале.

При вставке символов соответствующей процедуре передают вставляемый фрагмент, имя исходной строки, номер начального символа. С помощью операторов: вставить (в КуМире) и Insert в Паскале.

В Python эту операцию можно выполнить с помощью команды s.replace («слово1», «слово2»), заменяя слово1 на слово2.

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

Если стоит задача преобразовать число, записанное в виде символьной строки, в числовое значение или наоборот, в школьном алгоритмическом языке используют функции:

  • лит_в_цел — переводит строку в целое число;
  • лит_в_вещ — переводит строку в вещественное число;
  • цел_в_лит — переводит целое число в строку;
  • вещ_в_лит — переводит вещественное число в строку.

В языке Паскаль строка преобразуется в число (целое или вещественное) с помощью процедуры Val:. Обратная процедура преобразование числа в строку выполняет процедура Str: (аналогично и для Python). В Python преобразование числа в строку выполняет процедура int (строка, система счисления).

Заключение

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

Примечания

  1. Поляков К.Ю., Ерёмин Е.А. Информатика. Углублённый уровень: учебник для 10 класса: в 2ч. Ч.2. — М.: БИНОМ. Лаборатория знаний, 2013. — С. 189—206. — 304 с.
  2. Гильдин А.Г., Зайдуллина С.Г. Методика выполнения заданий ЕГЭ по информатике на основе знаний об обработке строк на языке Python // Педагогический журнал Башкортостана : Журнал. — 2023. — Февраль. — С. 120—138.

Литература

  • Богомолова О. Б. Информатика: Новый полный справочник для подготовки к ЕГЭ. — М.: АСТ, 2020.
  • Босова Л. Л., Босова А. Ю. Информатика. 10 класс. Базовый уровень. — М.: БИНОМ. Лаборатория знаний, 2017.
  • Гейн А. Г., Сенокосов А. И. Информатика и ИКТ. 11 класс: учебник для общеобразовательных учреждений: базовый и профильный уровни. — 2-е изд. — М.: Просвещение, 2009.

Категории