Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 100 идущих подряд цифр 9? В ответе запишите полученную строку.
|
1 2 3 4 5 6 7 8 |
НАЧАЛО ПОКА нашлось (33333) ИЛИ нашлось (999) ЕСЛИ нашлось (33333) ТО заменить (33333, 99) ИНАЧЕ заменить (999, 3) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ |
Ответ:
ЕГЭ по информатике Основная волна 07.06.2024 kompege.ru – задание №12
Решение:
|
1 2 3 4 5 6 7 |
a='9'*100 while '33333' in a or '999' in a: if '33333' in a: a=a.replace('33333','99',1) else: a=a.replace('999','3',1) print(a) |
Решение задачи на применение команд редактора
Задача состоит в преобразовании строки цифр с использованием команд замены и проверки наличия подстрок. Давайте разберем шаги решения:
Инициализация строки:
|
1 |
a = '9' * 100 |
Создаем строку a, состоящую из 100 подряд идущих цифр ‘9’.
Цикл проверки и замены:
|
1 2 3 4 5 |
while '33333' in a or '999' in a: if '33333' in a: a = a.replace('33333', '99', 1) else: a = a.replace('999', '3', 1) |
Используем цикл while, который выполняется до тех пор, пока в строке a присутствует подстрока ‘33333’ или ‘999’.
Внутри цикла используем условие if для проверки наличия подстроки ‘33333’ в строке a:
- Если подстрока ‘33333’ присутствует, заменяем первое ее вхождение на ’99’ с помощью
a.replace('33333', '99', 1). - Если подстрока ‘33333’ отсутствует, но присутствует подстрока ‘999’, заменяем первое ее вхождение на ‘3’ с помощью
a.replace('999', '3', 1).
Вывод результата:
|
1 |
print(a) |
После завершения цикла выводим конечную строку a.
Итог:
Строка из 100 подряд идущих цифр ‘9’ преобразуется согласно правилам, указанным в программе. В процессе выполнения сначала все группы из пяти подряд идущих цифр ‘9’ заменяются на ’99’, пока таких групп не останется. После этого все оставшиеся группы ‘999’ заменяются на ‘3’. В результате получится строка, в которой нет подстрок ‘33333’ и ‘999’.
Ответ: 333
