计算机理论导引 试卷,计算机理论导引实验3-图灵机(Turing)的模拟预览.doc

HUNAN UNIVERSITY

计算理论导引

实验报告

题 目:图灵机(Turing)的模拟学生姓名:学生学号:专业班级:计算机科学与技术2班上课老师:实验日期:2014-1-6目 录

一、实验目的2

二、实验内容2

三、实验代码2

四、测试数据以及运行结果8

五、实验感想9

一、实验目的

1、掌握Turing机的概念。

2、掌握Turing机的运行过程,了解每一个格局的转化。

二、实验内容

对于任意给定的一台Turing机和任意给定的字符串w ( w不含空格),编程模拟此Turing机的运行过程,要求输出从开始运行起的每一格局。

三、实验代码

/*****************************************************************

图灵机的模拟过程

计科二班20110801212张琦佳

*****************************************************************/

# include

# include

# include

ofstream outfile("homework.txt");//打开文件

# define N 1000//纸带长度

# define S 10//纸带前的空余

# define M 10//数字长度

int state;//记录当前状态

int currentpos;//记录当前位置

int halt;//退出

int i;//临时辅助变量

int s;//临时存储状态

char tape[N];//纸带长度

char number[M];//存储x

char c1;//临时存储字符

char c2;//临时存储字符

char d;//方向输出

void start()

{

for(i = 0;i < N - 1;i++)//初始化纸带

tape[i] = 'B';

tape[N-1] = '\0';

cout<

while(1)//判断二进制

{

state = 1;

cout<

cin>>number;

for(i = 0;i < M && number[i] != '\0';i++)

if(number[i] >'1' || number[i] < '0')

state = 0;

if(state)

break;

else

cout<

}

for(i = S;i < S + M && number[i-S] != '\0';i++) //将数字写入纸带

tape[i] = number[i-S];

currentpos = S;//初始化

halt = 1;//此时state = 1

d = 'R';//初始为右移

cout<

}

void homework()//写入文件

{

outfile<

outfile<

outfile<

outfile<

outfile<

outfile<

outfile<

}

void print()//输出函数

{

cout<"<

o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值