- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二:算符优先文法处理算术表达式
一、 实验目的:算术表达式的文法可以是(你可以根据需要适当改变) :
E t E+E|E-E|E*E|E/E| (E) |i
根据算符优先分析法,将表达式进行语法分析,判断一个表达式是否正确。
二、 实验时间:上机二次。
三、 实验过程和指导:
(一) 准备:1?阅读课本有关章节,花一周时间确定算术表达式的文法,设计出算符优先关 系表;2?考虑好设计方案;3?设计出模块结构、测试数据,初步编制好程序。
(二) 上课上机:上机调试,发现错误,分析错误,再修改完善。教师根据学生的设计方案 与学生进行探讨,以修改方案和代码。
(三) 程序要求:
程序输入/输出示例:
如参考C语言的运算符。输入如下表达式(以分号为结束)和输出结果:
(1) 10;
输出:正确
(2) 1+2;
输出:正确
(3) (1+2)/3+4-(5+6/7);
输出:正确
(4) ((1-2)/3+4
输出:错误
(5) 1+2-3+(*4/5)
输出:错误
TOC \o 1-5 \h \z 注意:1?为降低难度,表达式中不含变量(只含无符号整数) ;
2?如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好) ;
3?测试用的表达式事先放在文本文件中,一行存放一个表达式,同时以分号分割。同时将预 期的输出结果写在另一个文本文件中,以便和输出进行对照;
4?对学有余力的同学,可增加功能:当判断一个表达式正确时,输出计算结果,计算过程用 浮点表示,但要注意不要被 0除。
程序思路(仅供参考):
1?借用实验一的结果,可将其中的取字符函数几乎原封不动地移植过来,其中的分割和分析 单词的方法可借用过来分割现在这个实验的运算符、常量和变量。
2?模块结构:(1)初始化:设立算符优先关系表(或优先函数) 、初始化变量空间(包括堆
栈、结构体、数组等);(2)控制部分:将一个表达式从文件中读出; (3 )词法分析:将表
达式分割成单词序列;(4)利用算符优先文法进行表达式处理: 根据算符优先关系表对表达
式单词序列进行堆栈操作,如果遇到错误则显示错误信息。
(四) 练习该实验的目的和思路:
程序比较复杂,需要利用到大量的编译原理, 也用到了大量编程技巧和数据结构, 通过这个
练习可极大提高编程能力。程序规模大概为 250行。本实验的结果可作为课程设计的基础。
通过练习,掌握对表达式进行处理的一种方法。
(五) 为了能设计好程序,主意以下事情:
1?模块设计:将程序分成合理的多个模块(函数) ,每个模块做具体的同一事情。
2?写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。
3.编程时注意编程风格:空行的使用、注释的使用、缩进的使用、变量合理命名等。
四、上交:
程序源代码(源代码中以注释的形式说明程序的功能,主文件名为 by3);
已经测试通过的测试数据 10 组(全部存在 test3.txt 文件中,以“第一组输入 /输出 /第二组 输入/输出/第三组输入/输出……”的格式存放);
实验报告按照提供的模板填写:
(1)功能描述:该程序具有什么功能?
(2) 程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用 关系图、程序总体执行流程图(参考课本第二章) 。
(3) 实验过程记录:出错次数、出错严重程度、解决办法摘要。
(4) 实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少时间上机输入和调 试?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你 的收获有哪些?
您可能关注的文档
- 简单而又暖心的情话.docx
- 简单网络时间协议.docx
- 简单美食:朗姆酒烤鸡翅的制作.docx
- 简单的记事本程序java编写.docx
- 简帛语言文字研究第一辑目录.docx
- 简单随机抽样课后作业.docx
- 简单随机抽样课堂检测.docx
- 简报(宣讲服务理念提升工作质量).docx
- 简明中国学前教育史a卷.docx
- 简明情况登记表.docx
- 2026国核自仪系统工程有限公司校园招聘考试备考题库及答案解析.docx
- 2025商洛广济心血管病医院招聘(5人)考试备考题库及答案解析.docx
- 2025信丰县妇幼保健院药学专业技术人员见习生招聘1人考试备考题库及答案解析.docx
- 广安市广安区龙安乡人民政府2025年选用1名片区纪检监督员考试备考题库及答案解析.docx
- 2025云南文山市医疗保障局选聘医疗保障基金社会监督员15人考试备考题库及答案解析.docx
- 2026北京科技大学非教师岗位招聘110人考试参考题库及答案解析.docx
- 2025中国地质调查局西安矿产资源调查中心招聘(5人)考试参考试题及答案解析.docx
- 2025山东滨州惠民县老年大学招聘兼职舞蹈教师考试备考试题及答案解析.docx
- 2026国药集团校园招聘考试参考题库及答案解析.docx
- 北京市朝阳区未来实验学校教师招聘(小初高多学科+实习岗位)考试参考试题及答案解析.docx
原创力文档


文档评论(0)