21. Некто оставил на экране в текстовом редакторе текст: ПЗОГЗФЬЬФ. Ученик догадался, что это ему шифровка, и составил дешифрующий алгоритм (для работы в режиме ЗАМЕНА):
{ Поместить курсор в начало сообщения;
Делать пока (курсор не вышел за пределы сообщения)
{ Если (курсор находится на букве «Ф») то
{ Нажать клавишу «А»;
Нажать клавишу «Стрелка вправо»;
}
Если (курсор находится на букве «З») то
{ Нажать клавишу «Р»;
Нажать клавишу «Стрелка вправо»;
}
Если (курсор находится на букве «Ь») то
{ Нажать клавишу «М»;
Нажать клавишу «Стрелка вправо»;
}
}
Нажать клавишу «Стрелка вправо»;
}
Какое слово было зашифровано? В ответе введите слово ЗАГЛАВНЫМИ буквами.
22. «Машина Поста». Среда, в которой работает машина Поста, представляет собой бесконечную (в обе стороны) ленту, разбитую на одинаковые секции. В каждой секции либо стоит метка (у нас роль метки будет исполнять символ «*»), либо она пуста; на ленте в каждый момент располагается лишь конечное число меток. Во время работы машина движется вдоль ленты, смещаясь точно на одну секцию вправо или влево. На рисунке машину Поста отмечают символом «↑».
Для управления машиной Поста используется 7 команд:
==> – сместиться на одну секцию вправо;
⇐ – сместиться на одну секцию влево;
^ – поставить метку;
# - стереть метку в обозреваемой секции;
! – остановиться;
?i – если в обозреваемой секции стоит метка, то перейти к выполнению команды с номером i;
??i – если в обозреваемой секции не стоит метка, то перейти к выполнению команды с номером i.
Работа машины определяется программой, записанной в обычном процедурном стиле программирования. Команды в программе пронумерованы.
После выполнения команды с номером k машина:
– переходит к выполнению программы с номером k+1, если это одна из команд («==>», «⇐», «^», «#») или команда «?i», но в обозреваемой секции нет метки, или команда «??i», но в обозреваемой секции стоит метка;
– прекращает работу, если это команда «!»;
– переходит к выполнению команды с номером i, если это команда «?i» и «^» обозреваемой секции нет метки.
Перед началом работы машина всегда находится напротив одной секции. Выполнение команды начинается с команды под номером 1. Если машине Поста предписано стереть метку из пустой клетки или поставить метку в уже заполненную клетку, то она выдает сообщение «Не могу сделать» и прекращает дальнейшую работу (аварийная остановка).
Выполните следующую программу для машины Поста для тех заполнений информационной ленты, которые изображены на рисунке.
В ответе введите номера клеток, в которых стоят «*» (без пробелов и запятых). Нумерация клеток начинается с 1.