БЕСПЛАТНАЯ ПОДГОТОВКА К ЕГЭ ПО ПРОФИЛЬНОЙ МАТЕМАТИКЕ
Подготовься к ЕГЭ-2026 по профильной математике самостоятельно с помощью сервиса "1С:Репетитор"!
Понятная теория и эффективные тренажеры с объяснением! Вы успеете подготовиться к экзамену! Начните занятия прямо сейчас!
design_arrow

Задачи на строки

В разделе "Типы данных" в курсе информатики особое место занимают строки. Эти структуры данных встречаются во множестве заданий ЕГЭ и требуют чёткого понимания базовых операций и приёмов работы с ними. Особенно актуально это для школьников, готовящихся к экзамену.

Строка — это упорядоченная последовательность символов. Каждый символ имеет свой номер (индекс), начиная с 1, и доступ к нему можно получить в любой момент с помощью квадратных скобок. Например, s[3] — это третий символ строки s. Подробнее о строках и символах – здесь.

В языке Паскаль строка обозначается типом string. Максимальная длина строки может быть задана явно, например:

var

  s: string[255];

Если размер не указан, по умолчанию используется длина до 255 символов.

Основные операции со строками

В языке Паскаль доступны следующие стандартные операции:

Операция

Описание

Length(s)

Возвращает длину строки s

s[i]

Возвращает i-й символ строки

Copy(s, i, n)

Возвращает подстроку длиной n с позиции i

Pos(sub, s)

Возвращает позицию подстроки sub в s

Delete(s, i, n)

Удаляет n символов из строки с позиции i

Insert(sub, s, i)

Вставляет подстроку sub в s с позиции i

Concat(s1, s2)

Объединяет строки s1 и s2

Работа со строками требует аккуратности: ошибки в индексации могут привести к некорректным результатам.

Какие задачи встречаются на ЕГЭ?

На ЕГЭ по информатике задачи, связанные со строками, можно условно разделить на несколько групп:

1. Подсчёт символов и подстрок

  • Найти количество определённых символов в строке
  • Определить количество вхождений подстроки

2. Поиск и обработка подстрок

  • Найти первую/последнюю позицию определённой подстроки
  • Заменить одну подстроку на другую

3. Обработка строковых шаблонов

  • Удаление лишних символов
  • Преобразование регистра (если применяется в других языках)
  • Проверка симметричности строки (палиндром)

4. Генерация строк

  • Создание строк по заданным правилам
  • Перебор возможных вариантов строк для поиска подходящих под условия

5. Анализ текстов и логических структур

  • Поиск слов по шаблонам (например, найти все слова, содержащие две одинаковые буквы подряд)
  • Обработка текстов с маркерами, тегами, скобками и т.п.

Примеры задач со строками на Паскале

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

Задание: Подсчитать количество букв «А» в строке.

var

  s: string;

  i, count: integer;

begin

  readln(s);

  count := 0;

  for i := 1 to Length(s) do

    if s[i] = 'А' then

      count := count + 1;

  writeln('Количество А: ', count);

end.

Пояснение: Цикл по всем символам строки проверяет, является ли текущий символ буквой «А». Если да — счётчик увеличивается.

Пример 2: Проверка наличия подстроки

Задание: Определить, содержится ли подстрока 'abc' в строке.

var

  s: string;

  posSub: integer;

begin

  readln(s);

  posSub := Pos('abc', s);

  if posSub > 0 then

    writeln('Подстрока найдена')

  else

    writeln('Подстрока не найдена');

end.

Пояснение: Функция Pos возвращает номер начала подстроки, если она найдена, или 0, если подстрока отсутствует.

Пример 3: Замена символов

Задание: Заменить все символы «*» на пробелы.

var

  s: string;

  i: integer;

begin

  readln(s);

  for i := 1 to Length(s) do

    if s[i] = '*' then

      s[i] := ' ';

  writeln(s);

end.

Пояснение: Каждый символ строки проверяется, и если он равен '*', то заменяется на пробел.

Частые ловушки и ошибки

Ошибка

Как избежать

Индексация с 0 вместо 1

В Паскале строки индексируются с 1

Использование = для сравнения строк полностью

Лучше использовать if s = 'abc'

Путаница с функцией Copy и параметрами

Помнить: Copy(строка, позиция, длина)

Ошибка с Pos при отсутствии подстроки

Проверяйте, что результат больше 0

Дополнительные советы для подготовки к ЕГЭ

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

  2. Разбирайте сложные задачи с условиями: что должно быть внутри строки, как искать подстроки, как производить замену.

  3. Уделите внимание пробелам, знакам препинания и регистрам — это часто приводит к ошибкам.

  4. Придумывайте свои задачи и решайте их — это поможет закрепить навыки.

Полезные функции для работы со строками в Паскале

Функция/оператор

Назначение

Пример использования

Length(s)

Получить длину строки

n := Length(s);

s[i]

Доступ к символу с номером i

c := s[1];

Copy(s, i, n)

Взять подстроку из строки

part := Copy(s, 2, 3);

Pos(sub, s)

Найти позицию подстроки sub в строке s

k := Pos('abc', s);

Delete(s, i, n)

Удалить n символов с позиции i

Delete(s, 1, 2);

Insert(sub, s, i)

Вставить sub в строку s с позиции i

Insert('xy', s, 3);

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

Умея видеть разницу между массивом Char и типом String, можно легко преобразовывать и редактировать тексты.

Вопрос 1. Что вернёт функция Length('Паскаль')?

А) 6
Б) 7
В) 8
Г) 0

Вопрос 2. Что выведет следующий код?
writeln('abc'[2]);

А) a
Б) b
В) c
Г) Ошибка выполнения

Вопрос 3. Что делает функция Pos('ab', 'abcabc')?

А) Возвращает 0
Б) Возвращает 2
В) Возвращает 1
Г) Возвращает 4

Вопрос 4. Какая процедура используется для удаления части строки?

А) Delete
Б) Cut
В) Remove
Г) Erase

Вопрос 5. Чему будет равна переменная s после выполнения следующего кода?
s := 'Информатика';  
Delete(s, 5, 4);  

А) Инфорика
Б) Инма
В) Инфа
Г) Инмтика

Вопрос 6. Какая из функций возвращает подстроку заданной длины?

А) Slice
Б) Part
В) Copy
Г) Take

Вопрос 7. Какая строка будет результатом выполнения?
s := 'abc';  
Insert('x', s, 2);  

А) axbc
Б) abxc
В) xabc
Г) acbx

Вопрос 8. Сколько раз встречается символ 'а' в строке 'параллелограмм'?

А) 2
Б) 3
В) 4
Г) 5