编译原理中有限自动机程序
// B_1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
int exch[4][2]={1,2,3,2,1,3,3,3};//这个是2维数组吗?具体是怎么样的
void judge(char *s)
{
int cur = 0, i = 0;
while(s[i])
{
if(s[i]-'a' > 1||s[i] < 'a')
break;
cur=exch[cur][ s[i++] - 'a'];//这一句怎么理解?
}
if(s[i] == 0 && cur == 3)
printf("%s √ Right!\n\n",s);
else printf("%s × Wrong!\n\n",s);
}
void main()
{
char str[100];
while(1)
{
printf("有限自动机,判断是否符合 (a|b)*(aa|bb)(a|b)*正则式\n");
printf("请输入字符串: ");
gets(str);
judge(str);
}
}
...全文
相关推荐
编译原理课程2017年秋季学期四个核心实验项目集合_包含简单的C语言词法分析器实现有限自动机的确定化与最小化递归下降分析子程序构建以及LL1语法分析器的设计与开发_旨在通过实践深入.zip
编译原理课程2017年秋季学期四个核心实验项目集合_包含简单的C语言词法分析器实现有限自动机的确定化与最小化递归下降分析子程序构建以及LL1语法分析器的设计与开发_旨在通过实践深入.zip
编译原理-有限自动机.zip
编译原理课程实验-有限自动机的确定化和最小化: 实验目的:利用状态表和有限自动机的运行原理编写和设计程序,判断输入的自动机是DFA还是NFA,如果是NFA,利用子集法将其确定化,然后利用求同法或求异法将所得的DFA最小化。 实现功能:1.建议以文本文件形式来描述自动机,例如:第一行:表示状态个数;第二行开始表示为状态转换表;最后一行给出接受状态列表。2.根据读进去的自动机内容,判断其类别(NFA还是DFA?)。3.若是NFA,利用子集法将其确定化。4.将DFA最小化。5.输入测试符号串,输出测试结果。
正则式到有限自动机的自动转换 课程设计 好用
编译原理正则式到有限自动机的自动转换的课程设计报告...WORD文档,超好用
编译原理实验查填符号表(含源代码和运行结果)
编译原理实验查填符号表(含源代码和运行结果)
杭电编译原理实验——有限自动机的确定化和最小化
利用状态表和有限自动机的运行原理编写和设计程序,判断输入的自动机是DFA还是NFA,如果是NFA,利用子集法将其确定化,然后利用求同法或求异法将所得的DFA最小化。


