Шешімі: Преобразование строки Редактором
Исполнитель Редактор получает на вход строку цифр. Команда «заменить (v, w)» заменяет первое слева вхождение цепочки v на цепочку w, а команда «нашлось (v)» проверяет наличие цепочки v в строке. Какая строка получится в результате применения программы к строке, состоящей из 135 идущих подряд цифр 9?
НАЧАЛО
ПОКА нашлось (22222) ИЛИ нашлось (9999)
ЕСЛИ нашлось (22222)
ТО заменить (22222, 99)
ИНАЧЕ заменить (9999, 2)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Шешім по шагам
3 қадамВ начале строки есть только цепочка из 135 цифр 9, поэтому выполняется замена первого вхождения 9999 на 2.
После нескольких замен образуются цепочки из цифр 2. Как только появляется 22222, срабатывает первая ветвь условия: первое вхождение 22222 заменяется на 99.
Замены продолжаются до тех пор, пока в строке встречается 22222 или 9999. При пошаговом выполнении программы последняя полученная строка — 229.
Где здесь ошибаются
Продолжают замену 9999, даже когда в строке уже есть 22222.
Заменяют все вхождения цепочки, хотя команда заменяет только первое слева.
Останавливают цикл после исчезновения только одной из двух цепочек.