实验报告成绩: 指导教师审核(签名): 年 月 日

预习报告□ 实验报告□

无符号数的有穷自动机的实现

(一)实验目的

无符号数的有穷自动机的实现目的是使学生掌握文法的形式描述,穷自动机的概念。将文法转换成有穷自动机的方法,理解出错处理程序思想,如何用状态矩阵实现一个穷自动机的机内表示。

(二)实验内容

1.无符号数的BNF描述

( d | . | e

(d | . | e |ε

( d

e | d | ε

( d | + | -

( d

( d | ε

2.将G[]文法转换成有穷自动机。

3.构造状态矩阵;将有穷自动机的状S1 S2 ……Sn及输入的字a1 a2 ……am 构成一个n*m的矩阵。

4.用状态矩阵设计出一个词法分析程序。

5.扫描无符号数,根据文法给出无符号数出错的位置。

(三)实验要求

1.学生课前要认真阅读实验指导,理解实验内容与相关理论知识的关系,并完成预习报告

2.用C语言或其它高级语言编写程序

3.写出实验报告

实验报告成绩: 指导教师审核(签名): 年 月 日

预习报告□ 实验报告□

无符号数的有穷自动机的实现

(一)实验目的

通过上机实习,熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。

(二)实验内容

1.无符号数的BNF描述

( d | . | e

(d | . | e |ε

( d

e | d | ε

( d | + | -

( d

( d | ε

2.无符号数的有穷自动机实现的思想

用0-----表示无符号数; 用1-----表示余留无符号数;

用2----表示十进制小数;用3-----表示余留十进制小数;

用4-----表示指数部分; 用5-----表示整指数;

用6-----表示余留整指数。

输入无符号数序列,从左到右扫描,遇到“#”号结束扫描。设一个字符数组,接收输入的无符号数,对输入的无符号数逐一进行分析,用一个中间变量接收当前字符。当前字符值发生错误时,输出错误信息;当前字符值正确时,分析下一个字符,反复判断,直至分析完毕。

3.无符号数的有穷自动机(Z表示结束符)

无符号数有穷自动机由图1所示。

图1 有穷自动机

4.无符号数有穷自动机的状态转换矩阵

无符号数有穷自动机的状态转换矩阵由表1所示。

de·+-ε0142ΦΦΦ1142ΦΦZ23ΦΦΦΦΦ334Φ5ΦZ46ΦΦΦ5Φ56ΦΦΦΦΦ66ΦΦΦΦZ

(三)实验要求

1.学生课前要认真阅读实验指导,理解实验内容与相关理论知识的关系,并完成预习报告

2.用C语言或其它高级语言编写程序

3.写出实验报告

(四)程序流程图

(五)程序代码

// zhangtianyou.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include

#define LEN 30

int main()

{

char number[LEN]={0};

lab0:int i=0;

printf("Please input a number:\n");

scanf("%s",number);

if(number[i]=='#')

{

printf("input this number

有穷自动机的最小化c语言代码,无符号数有穷自动机实现.doc相关推荐

  1. 最大化/最小化/关闭窗口代码集锦

    在制作网页时,我们常常需要用到这类代码,很简单也很实用 最大化窗口: <OBJECT id="max" type="application/x-oleobject& ...

  2. C语言中无符号数和有符号数之间的比较和运算

    学C语言的同学看看以下代码运行结果会多少 源代码 #include <stdio.h> void main(void) {unsigned char uchar_num = 1;char ...

  3. java中有符号数和无符号数,C语言中无符号数和有符号数之间的运算

    C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. unsigned int和int进行运算 ...

  4. 成绩查询系统c语言,学生成绩查询系统C语言代码(分服务器端和客户端).doc

    学生成绩查询系统C语言代码(分服务器端和客户端) 客户端:#include#include#include #pragma comment(lib , "Wsock32.lib " ...

  5. C语言中无符号数和有符号数相加问题

    看个题: #include<stdio.h> int main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); ...

  6. c语言中时间字符化,C语言字符画,字符闪画.doc

    C语言字符画,字符闪画.doc (32页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 星星图#include #include #de ...

  7. 【电力系统】基于遗传算法实现电力系统中的有功功率损耗最小化附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  8. 温室大棚控制系统C语言代码,{新}温室大棚控制系统设计.doc

    摘 要 本课题运用STC89C52单片机.DS-18B20 数字温度传感器M4QA045电动机.ULN-2003A集成芯片.湿敏电阻,以及四位八段数码管等元器件,设计了温湿度报警电路.M4QA045电 ...

  9. 骑士飞行棋 c语言代码,骑士飞行棋源代码.doc

    骑士飞行棋源代码 骑士飞行棋源代码using System;using System.Collections.Generic;using System.Linq;using System.Text; ...

最新文章

  1. 服务器显示内存已超标,服务器显示内存已超标
  2. 文件操作01 - 零基础入门学习C语言60
  3. http协议基础(七)通用首部字段
  4. python3精要(49)-生成器
  5. ASP.NET三层架构之不确定查询参数个数的查询
  6. Linux 入门必看:如何60秒内分析Linux性能
  7. oracle in 索引_Oracle 性能优化总结
  8. MMdnn Visualizer网络可视化
  9. 使用Json封装scroll,已处理其兼容性问题
  10. 组策略复制失败排错思路实例
  11. 深度置信网络JAVA代码,DeeBNetV2.2 深度置信网络源码,有配合的文档可以参考,详见内容 matlab 247万源代码下载- www.pudn.com...
  12. 利用Python制作微信跳一跳外挂,又来带你装一波X!
  13. ECharts绘制图表
  14. Android软件图标分辨率,android app icon 图标大小尺寸
  15. c语言常量定义的数组初始化
  16. FPGA 光纤传输IP核的使用
  17. java遍历文件夹下所有图片_遍历指定文件夹下的所有图片,并复制到指定目录下...
  18. 【Nuxt】nuxtjs脚手架的安装及问题解决
  19. windows 7可用软件搜索贴~(转)(申请置顶)
  20. 第二届中国移动“梧桐杯”大数据应用创新大赛复活赛

热门文章

  1. SCIENCE ADVANCES | 精神分裂症患者肠道微生物组调节小鼠谷氨酸-谷氨酰胺-GABA循环和精神分裂症相关行为
  2. ​Hello Qt(四十七)——QtQuick基础​
  3. 道金斯科普三部曲_道金斯在神的物体上
  4. MyBatis进行增删改查
  5. 牛客小白月赛25 C.白魔法师
  6. 教你自制五星级大酒店用的调味品
  7. colored manual page
  8. ElasticSearch(四):ES nested嵌套文档与父子文档处理
  9. 公用网络切换为专用网络的详细步骤
  10. python情人节之玫瑰花与表白方式_python情人节之玫瑰花与表白方式-Go语言中文社区...