Условие:
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w). Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.
Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку. Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие последовательность команд
КОНЕЦ ПОКА
выполняется, пока условие истинно. В конструкции
ЕСЛИ условие
ТО команда1
ИНАЧЕ команда2
КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.
НА ЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 88) ИНАЧЕ заменить (8888, 22)
КОНЕЦ ЕСЛИ КОНЕЦ ПОКА
КОНЕЦ
Решение:
Наша задача – проследить, как программа преобразует исходную строку из 70 подряд идущих символов 8. Программа действует по такому сценарию: 1. Пока в строке встречается либо цепочка 2222, либо цепочка 8888, выполнять: если встречается 2222, то заменить первое вхождение 2222 на 88; иначе (если не встречается 2222, но встречается 8888) – заменить первое вхождение 8888 на 22. Заметим, что команды изменяют строку следующим образом: • Команда заменить(8888, 22) находит слева последовательность из четырёх 8 и заменяет её на две 2. Таким образом, длина строки уменьшается на 2 символа. • Коман...
