Машина Поста
? N, M - если текущая ячейка содержит «0» (не отмечена), то перейти к строке с номером N, иначе перейти к строке M
Задание 1
По условию метки расставлены следующим образом:
Добавить метки, чтобы лента приняла следующий вид:
Решение:
На ленте имеется некоторое множество меток (общее количество меток не менее 1). Между метками множества могут быть пропуски, длина которых составляет одну ячейку. Заполнить все пропуски метками.
Задание 1
Составить программу для машины Поста по рисунку:
Начальное состояние
Результат
Составить самостоятельно (Практикум, стр. 33
Задача 2 (вариант 1)
Дан массивов меток. Удалить четные метки. Каретка находится над первой меткой.
Задача 2 (вариант 2)
Дан массивов меток. Удалить нечетные метки. Каретка находится над первой меткой.
Решение:
1вправо 2
2? 3,1
3вправо 4
4вправо 5
5вправо 6
6? 14,7
7удалить 8
8вправо 9
9? 10,7
10вправо 11
11вправо 12
12вправо 13
13? 14,1
14стоп 14
На ленте задан массив меток. Увеличить длину массива на 2 метки. Каретка находится либо слева от массива, либо над одной из ячеек самого массива. (увеличение числа на 2).
Решение:
1. ? 2; 3 (команды 1 и 2 — передвигаем каретку к массиву)
2. → 1
3. → 4 (команды 3 и 4 — передвигаем каретку к концу массива)
4. ? 5; 3
5. V 6 (команды 5–7 — ставим 2 метки в конце массива)
6. → 7
7. V 8
8. !
Задача 3
Даны два массива меток, которые находятся на некотором расстоянии друг от друга. Требуется соединить их в один массив. Каретка находится над крайней левой меткой первого массива. (сложение двух чисел)
Решение.

https://studfiles.net/preview/5825876/page:4/
Домашнее задание
Дано: каретка располагается в пустой клетке. Слева от каретки располагается большее число меток, справа - меньшее (числа любые).
Задача: Составить для машины Поста алгоритм вычисления разности для данных чисел (из большего меньшее)
Решение:
Каретка начинает своё перемещение вправо и зеркально удаляет метки в каждой из групп, начиная с вычитаемого, заканчивая уменьшаемым. Таким образом из уменьшаемого мы полностью удаляем количество меток вычитаемого (производим вычитание).
Зеленым цветом выделена та команда, на которой возникла проблема. После осуществления вычитания не получилось прекратить программу и каретка продолжала своё движение вправо. С 1 по 7 команды алгоритма работают для любых чисел.
Достарыңызбен бөлісу: |