有穷自动机 - 范文中心

有穷自动机

07/06

有穷自动机设计

1. 实验目的

编写实现一确定的有限自动机程序,能够检验某一输入串是不是一给定文法的句子。

2. 实验内容

通过c语言实现有穷自动机。

设计思路:

通过输入字符串,然后软件内置规则进行推导,从而实现了有穷自动机,其中大量使用了switch case来实现多个推导规则。

3. 源程序

#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;

}

}

int 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();

}

4. 程序运行结果测试

{

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();

}

4. 程序运行结果测试


相关内容

  • 电动机的毕业论文
    电动机发展现状.工作原理和运行维护 摘要: 近几十年来,随着电力电子技术.微 电子技术及现代控制理论的发展,中.小功率电动机在工农业生产及人们的日常生活中都有极其广泛的的应用.特别是在乡镇企业及家用电器中,更需要有大量的中.小功率电动机.由 ...
  • 自动控制原理----自动化学科概论-节选
    本文由牛皮波贡献pps文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看.自动化的内容与应用范围(1) 自动化的内涵与外延 日常生活中,较少听到"自动化" 日常生活中,较少听到"自动化 ...
  • 柴油机噪声故障诊断
    柴油机噪声故障诊断 [2007-03-16] 关键字:柴油机噪声 汽车发动机在运行中可能发生故障,同时发出异响和噪声,可用发动机故障诊断方法来诊断,主要是用听觉来诊断,有条件的可借助于简单的听诊工具或发动机异响测试仪来诊断,但最简便的方法就 ...
  • 电气工程及自动化专业考研学校科目
    电气工程及自动化专业考研学校科目 2008年03月21日 星期五 20:29 北京工业大学 421自动控制原理 复试:1.电子技术 2.计算机原理 北京航空航天大学 [双控] 432控制理论综合或433控制工程综合 [检测] 433控制工程 ...
  • 专业课考试科目
    北京工业大学 421自动控制原理 复试:1.电子技术2.计算机原理 北京航空航天大学 [双控]432控制理论综合或433控制工程综合 [检测]433控制工程综合或436检测技术综合 [系统]431自动控制原理或451材料力学或841概率与数 ...
  • 机械制造及其自动化毕业论文
    中央广播电视大学 毕 业 设 计(论文) 机械设计制造及其自动化方向 --机械设计制造及其自动化发展方向的研究 姓 名: 学 号: [1**********]5 指导教师: 叶俊华 专 业: 机械设计制造及其自动化 年 级: 2010年秋季 ...
  • 高转速发动机和低转速发动机
    高转速发动机和低转速发动机(技术帖) 网络上经常出现所谓高转速发动机还是低转速发动机好的争论,说发动机低转速好的一方强调其扭矩大加速性好的优点,而鼓吹高转速发动机好的一方以一级方程式赛车为例,反问为什么最高级的运动车用高转速发动机,而在争论 ...
  • 一种用于微观组织模拟的三维元胞自动机模型
    第27卷第2期 2005年6月南昌大学学报・工科版 Journal of Nanchang University (Engineering &Technol ogy ) Vol . 27No . 2 Jun . 2005 文章编号: ...
  • [中国航空发动机:制造.型号和机型]
    <中国航空发动机:制造.型号和机型> 2013-12-20 一.中航南方动力有限责任公司................................................................. 2 1. ...
  • 自动取款机(ATM)项目可行性研究报告
    自动取款机(ATM )项目可行性研究报告 核心提示:自动取款机(ATM )项目投资环境分析,自动取款机(ATM )项目背景和发展概况,自动取款机(ATM )项目建设的必要性,自动取款机(ATM )行业竞争格局分析,自动取款机(ATM )行业 ...