1. Сколько клеток приведённого лабиринта соответствуют требованию: выполнив предложенную ниже программу, Робот остановится в той же клетке, с которой он начал движение?
а) ПОКА Ссправа свободно> вправо КОНЕЦ
ПОКА Ссверху свободно> вверх КОНЕЦ
ПОКА <слева свободно> влево КОНЕЦ
ПОКА Сснизу свободно> вниз КОНЕЦ
D2, E2
б) ПОКА <сверху свободно> вправо КОНЕЦ
ПОКА Ссправа свободно> вниз КОНЕЦ
ПОКА сснизу свободно> влево КОНЕЦ
ПОКА Сслева свободно> вверх КОНЕЦ
C5
в) ПОКА ссправа свободно вниз КОНЕЦ
ПОКА Ссверху свободно вправо КОНЕЦ
E5
2. Дана программа для исполнителя Редактор:
ПОКА нашлось (2222) ИЛИ нашлось (8888)
ЕСЛИ нашлось (2222)
ТО заменить (2222, 8)
ИНАЧЕ заменить (8888, 2)
КОНЕЦ
Какая строка получится в результате применения этой программы к строке, состоящей из:
а) 62 идущих подряд цифр 8; б) 65 идущих подряд цифр 8; в) 72 идущих подряд цифр 8; г) 93 идущих подряд цифр 8; д) 146 идущих подряд цифр 8; е) 156 идущих подряд цифр 8; ж) 184 идущих подряд цифр 8; з) 193 идущих подряд цифр 8?
Для решения задачи анализируем программу пошагово. Программа состоит из двух команд:
ПОКА нашлось (2222) ИЛИ нашлось (8888) — цикл выполняется до тех пор, пока в строке встречается цепочка "2222" или "8888". ЕСЛИ нашлось (2222) — если в строке есть "2222", заменяем первое его вхождение на "8". ИНАЧЕ заменить (8888, 2) — если "2222" нет, то заменяем первое вхождение "8888" на "2". Таким образом, программа будет выполнять замену поочередно:
Проверяет, есть ли "2222" или "8888". Если есть "2222", заменяет его на "8". Если "2222" нет, но есть "8888", заменяет "8888" на "2". Цикл продолжается до тех пор, пока хотя бы одно из этих вхождений существует. Теперь рассмотрим каждую из строк, с которой будет работать программа.
а) 62 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
8888"
В строке нет "2222", но есть много "8888". Программа будет заменять "8888" на "2". После первой замены получится строка из 62 цифр "2", так как каждое "8888" будет заменяться на "2". Результат: "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
2222" б) 65 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
888"
Точно так же, как и в предыдущем случае, программа заменит все "8888" на "2". Результат: "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
2222" в) 72 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
Заменяются все "8888" на "2". Результат: "222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
2222" г) 93 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
2222" д) 146 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
888888888888888888"
2222222222222222222222222222222" е) 156 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
888888888888888888888888888888"
2222222222222222222222222222222" ж) 184 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
888888888888888888888888888888888888888"
2222222222222222222222222222222222222222222222222222222222" з) 193 идущих подряд цифр 8: Строка: "888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
888888888888888888888888888888888888888888"
222222222222222222222222222222222222222222222222222222222222222222"
3. Дана программа для исполнителя Редактор:
ПОКА нашлось (333) ИЛИ нашлось (555)
ЕСЛИ нашлось (555)
ТО заменить (555, 3)
ИНАЧЕ заменить (333, 5)
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из:
а) 62 идущих подряд цифр 5; б) 65 идущих подряд цифр 5;
в) 72 идущих подряд цифр 5; г) 93 идущих подряд цифр 5; д) 146 идущих подряд цифр 5; е) 156 идущих подряд цифр 5; ж) 184 идущих подряд цифр 5; з) 193 идущих подряд цифр 5?
Для решения задачи, давайте проанализируем программу пошагово.
Программа состоит из следующих команд:
ПОКА нашлось (333) ИЛИ нашлось (555) — цикл выполняется, пока в строке есть цепочки "333" или "555". ЕСЛИ нашлось (555) — если в строке встречается "555", заменяем его на "3". ИНАЧЕ заменить (333, 5) — если "555" нет, но есть "333", заменяем "333" на "5". Цикл продолжается до тех пор, пока хотя бы одно из вхождений "333" или "555" есть в строке. Пусть строка состоит из цифры "5". Программа будет выполнять замену поочередно, если в строке будет найдено "555", оно заменяется на "3". Если "333" найдено, то заменяется на "5".
Теперь рассмотрим различные варианты строк, состоящих из цифры "5".
а) 62 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555"
Программа начнет с поиска "555", который будет заменен на "3". После замены на "3", программа продолжит заменять каждое следующее "555" на "3". Результат: строка станет состоящей из "3" и "5", при этом сначала будет заменено "555" на "3", а затем цикл продолжит выполнение с аналогичной заменой. б) 65 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
Аналогично предыдущему случаю, заменяются все блоки "555" на "3", пока строка не станет строкой с цифрами "3" и "5". Результат будет таким же, как и в случае с 62 цифрами. в) 72 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
Цикл работает по тому же принципу, сначала заменяется "555" на "3", и процесс продолжается. Результат: аналогичен предыдущим случаям. г) 93 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555"
Заменяются все "555" на "3", как и в предыдущих примерах. Результат: будет аналогичен предыдущим. д) 146 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555555555555555555555555555"
После применения программы, цепочки "555" заменяются на "3", и программа продолжает действовать, пока не завершится. Результат: продолжение аналогичных замен. е) 156 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555555555555555555555555555555555555555"
Заменяются все "555" на "3". Результат: аналогичен предыдущим. ж) 184 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555555555555555555555555555555555555555555555555555"
После последовательных замен, результат будет строкой с "3" и "5". Результат: аналогичен предыдущим. з) 193 идущих подряд цифр 5: Строка: "555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
555555555555555555555555555555555555555555555555555555555555555555555555555555"
Все "555" заменяются на "3", пока не завершится цикл. Результат: аналогичен предыдущим.