Работа 2.2 Упр.10 ГДЗ Семакин 10 класс (Информатика)
Написать для машины Поста программу, проверяющую, делится ли записанное метками число на 5.
Проверим число, записанное на ленте метками, по остатку при делении на 5. Для этого удобно последовательно стирать по одной метке и считать, сколько меток осталось. Если после удаления групп по 5 меток в конце не останется ни одной метки, то число делится на 5.
Программа машины Поста может работать так:
- Идти вправо до конца записи.
- Стирать по одной метке, одновременно уменьшая счётчик остатка по модулю 5.
- Если после очередного цикла осталось 0, 1, 2, 3 или 4 метки, завершить работу и выдать признак делимости.
- Если метки закончились ровно после удаления пятёрки, число делится на 5.
В терминах машины Поста это реализуется циклом из пяти шагов удаления меток с переходом в начало и проверкой на пустую ленту. Если лента пуста после полного цикла, число делится на 5; иначе — нет.
1. > 2
2. 1 3
3. < 4
4. ? 5,3
5. < 6
6. ? 7,5
7. > 8
8. 0 9
9. > 10
10. 0 11
11. > 12
12. 0 13
13. > 14
14. 0 15
15. > 16
16. 0 17
17. > 18
18. ? 23,19
19. > 20
20. ? 21,19
21. > 22
22. ? 2,21
23. !
Здесь команды 0 стирают метку, а команды с переходами организуют повторение цикла и проверку окончания записи.
Ответ
Программа машины Поста, стирающая метки по пять за цикл и завершающаяся при пустой ленте, проверяет делимость числа на 5.