博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验三
阅读量:5243 次
发布时间:2019-06-14

本文共 1483 字,大约阅读时间需要 4 分钟。

一、        实验目的

1、掌握有穷状态自动机的概念;  

2、掌握有穷状态自动机的存储及表示方法;
3、掌握有穷状态自动机与正则式之间的关系。
 
实验内容和要求

1、输入正规式; 

2、构造该正规式的有穷状态自动机;

3. 以五元组形式输出。

练习:

²  (a|b)*abb

²  l(l|d)*

²  1(1010*|1(010)*1)*0

 

#include 
//s为初态,z为终态int in(int s,int z) { if(s == z) { printf("3\nlook!the last status belongs to Z"); return 1; } else { return 0; } } //s为状态,t为输入的字符 int step(int s,char t) { if(t == 'a') switch(s) { case 0:return 1; case 1:return 3; case 2:return 1; case 3:return 3; } else if(t == 'b') switch(s) { case 0:return 2; case 1:return 2; case 2:return 3; case 3:return 3; } } int realize(char *input) { int z = 3; int s,i; s = 0; for(i=0;input[i]!='\n';i++) { printf("%2d",s); s = step(s,input[i]); } if(in(s,z)) { return 1; } else { return 0; } } main() { int i; int a; char input[40]; printf("FA=({0,1,2,3},{a,b},M,0,{3})\n"); printf("M:\n"); printf(" M(0,a)=1 M(0,b)=2\n"); printf(" M(1,a)=3 M(1,b)=2\n"); printf(" M(2,a)=1 M(2,b)=3\n"); printf(" M(3,a)=3 M(3,b)=3\n"); printf("请输入你要检查的串"); lop: for(i=0;input[i-1] != '\n';i++) { scanf("%c",&input[i]); } for(i=0;input[i-1]!='\n';i++) { if(input[i] != 'a'&&input[i] != 'b'&&input[i] != '\n') { printf("input error,enter again please:\n"); goto lop; } } printf("the status sequence is :\n"); a = realize(input); if(a == 1) printf("\nSo this string can be identified\n"); else printf("\nSo this string can't be identified\n"); printf("press enter to exit the program\n"); getchar(); } 很难弄,理解起来也有困难,有点蒙

转载于:https://www.cnblogs.com/a13798508446/p/6103120.html

你可能感兴趣的文章
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
WPF自定义集合控件概述与遇到的问题
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
pytest的参数化测试
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
docker运行环境安装-centos(一)
查看>>
安装Pygame和pip的艰辛之路
查看>>
Hibernate的实体类为什么需要实现 java.io.Serializable 接口
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
Min Stack
查看>>
老鸟的Python入门教程
查看>>
Ubuntu下非常给力的下载工具--uget+aria2
查看>>
Nginx配置
查看>>
棋盘覆盖问题
查看>>
vs2003无法调试 解决方法收藏
查看>>
.net-一般处理程序及生命周期
查看>>
linux sed命令
查看>>
[Cycle.js] Making our toy DOM Driver more flexible
查看>>