Лабораторна робота №1.
Тема: «Машина Поста»
Мета: навчитися програмно реалізовувати основні інструкції з набору елементарних операцій для машини Поста.
Конфігурація машини Поста задана наступним чином:
вар. №1
Конфігурація машини Поста
V |
V |
|
|
V |
V |
|
|
|
|
|
|
|
|
V |
вар. №2
Конфігурація машини Поста
V |
|
V |
V |
|
|
V |
|
|
|
|
|
|
|
V |
вар. №3
Конфігурація машини Поста
V |
|
|
|
|
|
|
V |
V |
V |
|
|
|
|
V |
вар. №4
Конфігурація машини Поста
V |
|
|
V |
V |
|
V |
|
|
|
|
|
|
V |
V |
вар. №5
Конфігурація машини Поста
V |
V |
V |
|
|
|
|
V |
V |
|
|
|
V |
V |
V |
вар. №6
Конфігурація машини Поста
V |
|
V |
|
V |
|
V |
V |
|
|
|
|
|
|
V |
вар. №7
Конфігурація машини Поста
V |
|
|
V |
V |
|
V |
|
|
|
V |
|
V |
|
V |
вар. №8
Конфігурація машини Поста
V |
|
V |
|
|
|
V |
|
|
V |
|
V |
V |
|
V |
вар. №9
Конфігурація машини Поста
V |
|
|
V |
V |
|
V |
V |
V |
|
|
|
V |
|
V |
вар. №10
Конфігурація машини Поста
V |
|
|
V |
|
V |
|
V |
|
V |
|
V |
|
|
V |
вар. №11
Конфігурація машини Поста
V |
|
|
|
|
|
|
|
|
V |
V |
V |
V |
|
V |
вар. №12
Конфігурація машини Поста
V |
|
|
|
V |
V |
|
V |
V |
|
V |
V |
|
|
V |
вар. №13
Конфігурація машини Поста
V |
|
V |
V |
V |
V |
|
|
V |
|
V |
|
|
|
V |
вар. №14
Конфігурація машини Поста
V |
|
|
V |
|
V |
V |
|
V |
V |
V |
|
|
V |
V |
вар. №15
Конфігурація машини Поста
V |
|
V |
V |
|
|
|
|
V |
V |
|
V |
V |
|
V |
ЗАВДАННЯ:
1. Реалізувати графічно задану конфігурацію машини Поста. (Мова програмування довільна)
2. К – номер комірки, яка задається «зовнішньою силою». В даному випадку К – номер варіанта. Комірка №1 – це крайня зліва комірка.
Написати програму, яка реалізує перші чотири інструкції з набору Поста:
відмітити комірку, якщо вона порожня;
стерти мітку, якщо вона є;
переміститися вліво на 1 комірку;
переміститися вправо на 1 комірку.
V j – поставить метку, перейти к j-й строке программы.
X j – стереть метку, перейти к j-й строке программы.
<- j – сдвинуться влево, перейти к j-й строке программы.
-> j – сдвинуться вправо, перейти к j-й строке программы.
? j1; j2 – если в ячейке нет метки, то перейти к j1-й строке программы, иначе перейти к j2-й строке программы.
! – конец программы (стоп).
МАШИНА ПОСТА Машина Поста — це абстрактна неіснуюча реально обчислювальна машина, створена для уточнення формалізації поняття алгоритму. Являє собою універсальний виконавець, що дозволяє вводити початкові дані і читати результат виконання програми. У 1936 р. американський математик Еміль Пост у статті описав систему, що має алгоритмічної простотою і здатну визначати, чи є та чи інша задача алгоритмічно вирішуваною. Якщо завдання має алгоритмічне рішення, то вона представима у формі команд для машини Поста.
Машина Поста складається з …
нескінченної стрічки, поділеної на однакові осередки секції. Осередок може бути порожньою 0 або порожнеча або містити позначку 1 або будь-який інший знак, головки каретки, здатної пересуватися по стрічці на одну клітинку в ту чи іншу сторону, а також здатною перевіряти наявність мітки, прати і записувати мітку. Поточний стан машини Поста описується станом стрічки і положенням каретки.Стан стрічки — інформація про те, які секції порожні, а які відзначені. Крок — це рух каретки на одну клітинку вліво або вправо. Стан стрічки може змінюватися в процесі виконання програми.
Кареткою управляє програма, що складається з рядків команд. Кожна команда має наступний синтаксис: