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