Исполнитель Раз-Два получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в которых x и y обозначают последовательности цифр:
А) заменить (x, y). Эта команда заменяет в строке первое слева вхождение последовательности x на последовательность y. Например, выполнение команды заменить (777, 5) преобразует строку 1237777123 в строку 12357123. Если в строке нет вхождений последовательности x, то выполнение команды заменить (x, y) не меняет эту строку.
Б) Нашлось (x). Эта команда проверяет, встречается ли последовательность x в строке исполнителя Раз-Два. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
Последовательность команд
КОНЕЦ ПОКА
Выполняется, пока условие истинно.
В конструкции:
ЕСЛИ условие
команда1
КОНЕЦ ЕСЛИ
Выполняется команда1 (если условие истинно).
В конструкции:
ЕСЛИ условие команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
Выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Дана программа для исполнителя Раз-Два:
НАЧАЛО
ПОКА нашлось (12) ИЛИ нашлось (2222)
заменить (12, 2)
заменить (222, 2)
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 13 строк 12 (1212..12)?
s = 13 * ’12’
while ’12’ in s or ’2222’ in s:
s = s.replace(’12’, ’2’, 1)
s = s.replace(’222’, ’2’, 1)
print(s)