Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2012, 12:01   #1
forever042
 
Регистрация: 15.12.2011
Сообщений: 5
По умолчанию Машина Тюринга, доработать

Написал МТ, но только для 1000 элементов, не знаю, как сделать ее для бесконечной ленты.

Код:
#include <map>
#include<iostream>
#include<string>
 
using namespace std;
 
 
 
struct input 
{
    string state;
    bool value;
    bool operator<(const input &b) const
    {
        if (state<b.state)
            return true;
        if (state>b.state)
            return false;
        return value<b.value;
    }
};
struct output
{
    string state;
    bool value;
    string command;
};
 
int main()
{
    map<input,output> Transitions;
    string InitialState;
    string ExitState;
    int Position;
    cin>>InitialState>>Position>>ExitState;
    while (cin)
    {
        input i;
        output o;
        cin>>i.state>>i.value;
        cin>>o.state>>o.value>>o.command;
        Transitions[i]=o;
    }
 
bool *tape=new bool[1000];
for (int i=0; i<1000; i++)
        tape[i]=false;
tape[0]=true;
tape[1]=true;
string cmd;
int position=Position;
string state=InitialState;
do 
{
    input i;
    i.state=state;
    i.value=tape[position];
    output o=Transitions[i];
    state=o.state;
    tape[position]=o.value;
    cmd=o.command;
    if (cmd=="R")
        position++;
    if (cmd=="L")
        position--;
}
while (state!=ExitState);
 
for (int i=0; i<10; i++)
cout<<tape[i]<<" ";
 
    return 0;
}
вот пример входных данных:

q1 0 exit
q1 0 q1 1 R
q1 1 q2 1 R
q2 0 q2 1 _
q2 1 q3 1 R
q3 0 q4 0 R
q3 1 q3 0 _
q4 0 q4 1 _
q4 1 exit 1 _
forever042 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Машина Тьюринга и алгоритмы Маркова. Машина Поста. MarkForMath Помощь студентам 0 27.04.2011 21:55
Машина Тьюринга Freeman-des Помощь студентам 0 13.01.2011 19:18
Виртуальная машина miscreant Помощь студентам 5 15.10.2010 11:57
виртуальная машина technik_312 Софт 8 12.01.2010 15:06
Машина Тьюринга. skorpi Помощь студентам 0 30.12.2009 21:40