Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды. Команда нашлось (v) проверяет, встречается ли цепочка v в строке, поданной на вход исполнителя. Команда заменить (v, w) заменяет в строке первое слева вхождение цепочки v на цепочку w. Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (33) ИЛИ нашлось (22)
ЕСЛИ нашлось (33)
ТО заменить (33,2)
ИНАЧЕ заменить (22,3)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ

Какая строка получится в результате применения приведенной выше программы к строке, состоящей из:

1) 500 идущих подряд цифр 3;
2) 500 идущих подряд цифр 2;
3) 300 идущих подряд цифр 3 и следующих за ними 200 идущих подряд цифр 2.

antonovakate2006 antonovakate2006    3   28.04.2020 15:51    120

Ответы
Маша28201 Маша28201  18.01.2024 13:34
Для решения данной задачи, нужно последовательно применять команды из программы к строке и следить за изменениями в ней.

Давайте рассмотрим каждый из вариантов строк:

1) Строка состоящая из 500 идущих подряд цифр 3.

В начале программы будет выполняться цикл ПОКА нашлось (33) ИЛИ нашлось (22), но в данной строке нет ни цепочки "33" ни цепочки "22", поэтому этот цикл сразу закончится.

Программа перейдет к следующей команде и ничего не произойдет, так как условие нашлось(33) не выполняется.

Затем будет выполнено условие нашлось(22), но и в этом случае в данной строке не встречается цепочка "22", поэтому эта команда также будет проигнорирована.

В итоге, строка останется неизменной и будет состоять из 500 идущих подряд цифр 3.

2) Строка состоящая из 500 идущих подряд цифр 2.

Аналогично, в начале программы будет выполняться цикл ПОКА нашлось (33) ИЛИ нашлось(22), но в данной строке нет ни цепочки "33" ни цепочки "22", поэтому этот цикл сразу закончится.

Программа перейдет к следующей команде и снова ничего не произойдет, так как условие нашлось(33) не выполняется.

Затем будет выполнено условие нашлось(22), и в данной строке найдется первое слева вхождение цепочки "22". Согласно команде заменить(22,3), цепочка "22" будет заменена на цепочку "3".

В итоге, строка станет состоять из 500 идущих подряд цифр 3.

3) Строка состоящая из 300 идущих подряд цифр 3 и следующих за ними 200 идущих подряд цифр 2.

Сначала, в начале программы будет выполняться цикл ПОКА нашлось (33) ИЛИ нашлось (22), и в данной строке присутствует и цепочка "33" и цепочка "22", поэтому этот цикл не завершится.

Программа перейдет к следующей команде, и выполнится условие нашлось(33). В данной строке будет найдено первое слева вхождение цепочки "33", и она будет заменена на цепочку "2".

Строка теперь станет состоять из 299 идущих подряд цифр 2, следующих за ними 200 идущих подряд цифр 2.

Вновь будет проверено условие нашлось(33), но в данной строке цепочки "33" больше не будет найдено.

В следующей команде выполнится условие нашлось(22). Цепочка "22" найдена и будет заменена на цепочку "3".

В итоге, строка станет состоять из 299 идущих подряд цифр 3, следующих за ними 200 идущих подряд цифр 3.

Таким образом, после применения программы к третьей строке, получится строка состоящая из 299 идущих подряд цифр 3, следующих за ними 200 идущих подряд цифр 3.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика