1. Главная
  2. Библиотека
  3. Программирование
  4. Исполнитель Преобразователь умеет выполнять следующие д...
Решение задачи на тему

Исполнитель Преобразователь умеет выполнять следующие действия со строкой, состоящей из исключительно из цифр: Заменить (x, y) Нашлось (x) Первая команда заменяет в строке первое слева вхождение последовательности x на последовательность y. Если в

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
Исполнитель Преобразователь умеет выполнять следующие действия со строкой, состоящей из исключительно из цифр:

Заменить (x, y)

Нашлось (x)

Первая команда заменяет в строке первое слева вхождение последовательности x на последовательность y. Если в

Условие:

Исполнитель Преобразователь умеет выполнять следующие действия со строкой, состоящей из исключительно из цифр:

Заменить (x, y)

Нашлось (x)

Первая команда заменяет в строке первое слева вхождение последовательности x на последовательность y. Если в строке нет последовательности x, то исполнитель оставляет строку в исходном виде. Вторая команда проверяет, встречается ли последовательность x в строке. Если она встречается, то команда возвращает логическое значение «истина», иначе – «ложь». Мистер Фокс написал программу для исполнителя Преобразователь:

НАЧАЛО
ПОКА нашлось (444) ИЛИ нашлось (777)
заменить (444, 7)
заменить (777, 4)
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения этой программы к строке, состоящей из 31 идущих подряд цифр «4».

Решение:

Рассмотрим пошагово, что происходит при выполнении программы. Исходная строка состоит из 31 цифры 4 (обозначим её как 444… с 31 символом).

Обозначим строку S. Начальное состояние:   S = 4444444444444444444444444444444 (31 единица цифры 4)

У программы цикл: Пока в строке встречается подстрока 444 или подстрока 777, выполняются две операции:

  1. Команда заменить(444, 7): находит первое слева вхождение 444 и заменяет его на 7 (то есть на одну цифру «7», уменьшив длину строки на 2 символа).
  2. Команда заменить(777, 4): находит первое слева вхождение 777 и заменяет его на 4 (увеличив длину строки ...

Выбери предмет