必威体育Betway必威体育官网
当前位置:首页 > IT技术

实验一(二) DFA识别字符串

时间:2019-10-30 12:45:05来源:IT技术作者:seo实验室小编阅读:80次「手机版」
 

dfa

代码地址 链接

一、实验目的

通过本次实验,加深对DFA及其识别的语言的理解,学习对一般的DFA的表达方法与编程实现方法。

二、实验任务

编写一个C语言程序,模拟实现DFA识别字符串的过程。

三、实验内容

(1)DFA的输入;

(2)DFA的存储与读写;

(3)DFA的正确性检查;

(4)DFA的语言集列表显示;

(5)DFA的规则字符串判定;

四、内容说明:

(1)DFA的输入:

分别输入DFA的“字符集”、“状态集”、“开始状态”、“接受状态集”、“状态转换表”等内容,并保存在设定的变量中。

(2)DFA的存储与读写:

将上述DFA的五元组保存在一个文本文件中,扩展名指定为.dfa。请自行设计DFA文件的存储格式,并说明其含义。能将保存在内存变量中的DFA写入DFA文件,也能将DFA文件读入内存中。(思考:对稀疏DFA(转换表中为空的地方较多)或用“或”表达转换的DFA(如下的测试用例三),如何改进DFA转换表的表达。)

(3)DFA的正确性检查:

1检查所有集合的元素的唯一性。

2检查“开始状态”是否唯一,并是否包含在“状态集”中。

3检查“接受状态集”是否为空,并是否包含在“状态集”中。

4检查“状态转换表”是否满足DFA的要求。

5检查“状态转换表”并非填满时的处理是否得当…

(4)DFA的语言集列表显示:

输入待显示的字符串的最大长度N,输出以上定义的DFA的语言集中长度≤N的所有规则字符串。(提示:注意算法while循环的次数)

(5)DFA的规则字符串判定:

输入(或用字符集随机生成)一个字符串,模拟DFA识别字符串的过程判定该字符串是否是规则字符串(属于DFA的语言集)。

五、测试用例

这里写图片描述

这里写图片描述

六、编程实现

1 读入文件:

第一行是”字符集”,

第二行是”状态集”、

第三行是”开始状态”,

第四行是”接受状态集”、

剩余行是”状态转换表”,0a1表示:输入字符’a’由状态0跳转到状态1。

2 测试执行

  DFA(1):

这里写图片描述

测试结果:

这里写图片描述

输出文件:

这里写图片描述

DFA(2):

这里写图片描述

测试结果:

这里写图片描述

输出文件

这里写图片描述

DFA(3) 其中的'|'表示任意字符,即图中的others。

这里写图片描述

测试结果

这里写图片描述

输出文件

这里写图片描述

文章最后发布于: 2017-11-09 00:12:06

相关阅读

以GQ实验室为例:如何做公众号选题?

如果你是刚加入GO实验室的一名内容运营人员,主要工作是负责公众号的原创内容,每周你们都需要开选题会,面对这种情况,你打算怎么做呢?背

DOE实验设计操作手册

本文以设计纸飞机为例,记录整个DOE设计过程,供参考Paper Plane Plate(DOE)从现在开始,你队将从事于飞机制造项目,主要任务是开发比竞

实验四 应用层和传输层协议分析(PacketTracer)

具体细节待完善!!一、实验目的:通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议

Sniffer pro安装与基本抓包实验

实验目的 抓取一次完整的网络通信过程的数据包实验(ping, ICMP协议) 实验环境 硬件:三台虚拟机均为Windows XP系统(命名为PC1,PC2,监

sadfasdfasdfasdf

adsfasdfasdfasdfsadfasdfasdfasd

分享到:

栏目导航

推荐阅读

热门阅读