Алгоритмы обработки символьных строк
Алгоритмы обработки символьных строк — это набор методов и инструкций для эффективной обработки и анализа строковых данных в программировании. К таким алгоритмам относятся: подсчёт количества появлений символа в строке, разбиение строки на слова по пробельным символам, поиск подстроки внутри данной строки, замена найденной подстроки на другую строку[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 (строка, система счисления).
Заключение
Обработка символьных данных, реализованная на разных уровнях сложности, может стать, наряду с базой решения одного типа задач в рамках государственной аттестации школьников по информатике, хорошим дополнением для целого ряда задач с математическим контекстом, поможет проверить знания по основным алгоритмическим конструкциями и алгоритмам, включаемых в содержание курса информатики основной школы.
Примечания
Литература
- Богомолова О. Б. Информатика: Новый полный справочник для подготовки к ЕГЭ. — М.: АСТ, 2020.
- Босова Л. Л., Босова А. Ю. Информатика. 10 класс. Базовый уровень. — М.: БИНОМ. Лаборатория знаний, 2017.
- Гейн А. Г., Сенокосов А. И. Информатика и ИКТ. 11 класс: учебник для общеобразовательных учреждений: базовый и профильный уровни. — 2-е изд. — М.: Просвещение, 2009.