На информационной ленте машины Поста расположен массив из N меток. Каретка находится под крайней левой меткой. Какое состояние установится на ленте после выполнения следующей программы?
1 → 2
2 ↕ 3
3 → 4
4 ? 5,2
5 ← 6
6 v 7
7 !
от

1 Ответ

Команда 1 → 2 перемещает каретку вправо. Команда 2 ? 1,3 проверяет, есть ли метка под кареткой. Так как массив меток не указан, предположим, что метка отсутствует, и выполнится переход к команде 3. Команда 3 → 4 перемещает каретку вправо. Команда 4 ? 5, 3 снова проверяет наличие метки под кареткой. Так как предыдущая проверка не выявила метку, предположим, что ее все равно нет, и выполнится переход к команде 3 (цикл). Команда 3 → 4 снова перемещает каретку вправо. Команда 4 ? 5, 3 снова проверяет наличие метки. Так как предыдущая проверка также не выявила метку, выполнится переход к команде 5. Команда 5 v 6 перемещает каретку влево (возврат к началу цикла). Процесс повторяется с команды 2. Таким образом, программа будет бесконечно циклически выполнять команды 1-5, не изменяя состояния ленты.
от