⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一个turing machine的模拟程序.txt

📁 图灵机模拟程序源代码
💻 TXT
字号:
/*
    一个Turing Machine的模拟程序
该程序从turing.txt文件中读入图灵机,然后从屏幕读入输入数据
输入数据按字符串读入,每行一个输入,按ctrl-z 结束输入。
接着将运行结果输出到屏幕。如果发生死锁(死循环),会自动判断。

输入文件turing.txt的格式是,每一行表示TM的表格的某一行
如果某个格子不存在,该位置上是一个*,如果某个状态不存在,该位置上也是一个*

例如,对于TM = S+的输入文件turing.txt内容为:

1L2 1R1
0R3 1L2

对于TM = P- 输入文件为:

*   0R2
103 *

下面这个TM将输入n复制一份

0R6 0R2
0R3 1R2
1L4 1R3
0L5 1L4
1R1 1L5

下面这个TM把输入n变为2n

0R* 0R2
0R3 1R2
1R4 1R3
1L5 *
0L6 1L5
0R1 1L6

预编译参数 TRACE_EXECUTION 可以控制是否输出执行过程
如果将其注释掉再编译就可以不显示TM执行的中间过程。

*/

#define TRACE_EXECUTION

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

const char* TM_FILE = "turing.txt";

const int MAX_STATE = 100;

struct Command {
    char data, movement;
};

istream& operator>>(istream& in, Command& cmd)
{
    char ch;
}

#ifdef DEBUG
ostream& operator<<(ostream& out, const Command& cmd)
{
    if (cmd.undefine) {
}
#endif

struct Config {
    int pointer, state;
};

bool operator==(const Config& left, const Config& right)
{
    return ( (left.pointer == right.pointer) &&
}

ostream& operator<<(ostream& out, const Config& config)
{
    out << "( " << config.pointer + 1
}

////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -