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