Хелпикс

Главная

Контакты

Случайная статья





Исполнители и алгоритмы. Обработка строк и массивов. Эффективное решение задачи. Подготовка к сдаче ЕГЭ (задача 14)



 

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

Исполнители и алгоритмы. Обработка строк и массивов. Эффективное решение задачи. Подготовка к сдаче ЕГЭ (задача 14)

Исполнитель Редактор

Исполнитель Редактор получает на вход строку цифр и преобразует её.

Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

а) заменить(v, w)

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить(111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить(v, w) не меняет эту строку.

б) нашлось(v)

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

Задача.Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 125 идущих подряд цифр 8?

НАЧАЛО

ПОКА нашлось(333) ИЛИ нашлось(888)

ЕСЛИ нашлось(333)

ТО заменить(333, 8)

ИНАЧЕ заменить(888, 3)

КОНЕЦ ЕСЛИ

КОНЕЦ ПОКА

КОНЕЦ

Размышление над задачей

В условии задачи приводится алгоритм её решения. Преобразуем приведенный алгоритм для исполнителя Редактор в программу, записанную на языке Паскаль.

Исходные данные:

· константа n – длина строки (n=125);

· переменная s – строка символов, состоящая из n заданных в условии цифр 8.

Для обработки исходной строки воспользуемся стандартными процедурами и функциями языка Паскаль:

· Length (s); - функция, которая возвращает целое число, равное количеству символов в строке s.

· Pos (Образец, s); - функция, которая возвращает целое значение, равное номеру позиции первого символа Образец в строке s. Если Образец не найден, то функция возвращает 0.

· Delete (s, i, k); - процедура, которая удаляет k символов из текстовой строки s, начиная от символа с номером i. Если i >= Length (s), то символы не удаляются. Если k задает больше символов, чем остается до конца строки, начиная c символа i, то удаляется только остаток строки.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.