- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验2 有穷状态自动机
科学与工程学院学生实验报告
学号 专业 计算机 班级 姓名 课程名称 编译原理 课程类型 必修 实验名称 实验二、有穷状态自动机 实验目的:
掌握有穷状态自动机的概念、其存储表示及其与正则文法的联系;
掌握运行有穷状态自动机的概念。 实验内容:
从正则文法构造有穷状态自动机,运行有穷状态自动机识别字符串。
输入:任意的有穷状态自动机和带识别的字符串;
输出:对输入字符串运行相应有穷状态自动的过程;
要求:
以简便方式输入有穷状态自动机;
除给出运行过程,还给出识别结论。
说明:
对于非确定的有穷状态自动机的运行采用交互方式;
以简便方式输出运行过程。
测试文法为:
A::=a,A::=b
A::=Aa
B::=Bb
C::=Cc
B::=Acb
B::=Cb
实验代码如下:
#includestdio.h
#includestring.h
#includemath.h
void main()
{
int i,j,k1,k2,t=0,t1,g,l,f,f1,tag=0;
char a[20][20]={0};
char c[20][20]={0};
char K[50]={0};
char e[50]={0};
printf(请输入规则个数:\nf=);
scanf(%d,f);
printf(请依次输入文法规则:);
for(i=0;if;i++)
scanf(%s,a[i]);
K[0]=S;
t1=1;
for(i=0;if;i++)
for(j=0;jstrlen(a[i]);j++)
if(a[i][j]=Aa[i][j]=Z)
K[t1++]=a[i][j];
for(i=0;it1-1;i++)
{ for(j=t1-1;ji;j--)
if(K[j]==K[i])
for(g=j;gt1;g++)
{ K[g]=K[g+1];
t1--;
}
}
for(i=0;if;i++)
for(j=0;jstrlen(a[i]);j++)
if((a[i][j]=a a[i][j]=z)||(a[i][j]=40 a[i][j]=57))
e[t++]=a[i][j];
for(i=0;it-1;i++)
{ for(j=t-1;ji;j--)
if(e[j]==e[i])
for(g=j;gt;g++)
{ e[g]=e[g+1];
t--;}}
for(i=0;if;i++)
{
c[i][0]=M;c[i][1]=(;c[i][3]=,;c[i][5]=);c[i][6]==;
if((a[i][4]=Aa[i][4]=Z)((a[i][5]=aa[i][5]=z)||(a[i][5]=40 a[i][5]=57)))
{
c[i][2]=a[i][4];
c[i][4]=a[i][5];
c[i][7]=a[i][0];
}
else
{
c[i][2]=S;c[i][4]=a[i][4];c[i][7]=a[i][0];
}
}
f1=f;
for(i=0;if1-1;i++)
{
for(j=i+1;jf1;j++)
if(c[i][2]==c[j][2]c[i][4]==c[j][4])
{
l=strlen(c[i]);
c[i][l]=c[j][7];
for(k1=j;k1f1;k1++)
for(k2=j;k2strlen(c[k1]);k2++)
c[k1][k2]=c[k1+1][k2];
f1--;
}
}
for(i=1;if1;i++)
if(strlen(c[i])8)
tag=1;
if(tag==1)
printf(该有穷状态自动机是非确定的.\n);
else { printf(该有穷状态自动机是确定的.\n);}
printf(K={);
for(i=0;it1;i++)
printf(%c ,K[i]);
printf(});
printf(\n);
printf(W={);
for(i=0;it;i++)
printf(%c ,e[i]);
printf(});
printf(\
您可能关注的文档
最近下载
- 超市网上购物系统.pdf VIP
- 2025年护理上半年工作总结及下半年工作计划.docx VIP
- 仓储管理员职业技能鉴定考试题及答案.pdf VIP
- 词汇导图语境助记Unit-4-Stage-And-Screen.ppt VIP
- 八氟环丁烷安全技术说明书MSDS.docx VIP
- 2024年最新医院财务科招聘考试题目含答案.doc VIP
- 大单元视域下的单元整体教学与实施.pptx VIP
- 第2讲 Silvaco TCAD 工艺仿真.pdf
- 如何制作吸引人的课件:技巧与步骤.ppt VIP
- T∕CAMET 11001.1-2019 智慧城市轨道交通 信息技术架构及网络安全规范 第1部分:总体需求.docx VIP
文档评论(0)