Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно.
Дана программа для редактора:
НАЧАЛО
ПОКА (нашлось(38) И нашлось(83)) ИЛИ нашлось(39)
заменить(383, 9)
заменить(39, 6)
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате работы приведенной выше программы к строке, состоящей из 10 подряд идущих чисел 383? В ответ запишите полученную строку.
Решение руками
Программа заменяет все числа 383 на 9. Причем делает это с теми, что стоят левее, а значит 39 никогда не встретится и вторая замена никогда не случится.
Все 383 заменились на 9, а значит в итоге мы получаем десять девяток.
Решение программой
s = ’383’ * 10
while (’38’ in s and ’83’ in s) or ’39’ in s:
s = s.replace(’383’, ’9’, 1)
s = s.replace(’39’, ’6’, 1)
print(s)