逆波兰式分析实验报告

上传人:M****1 文档编号:564860733 上传时间:2023-09-21 格式:DOC 页数:5 大小:47.01KB
返回 下载 相关 举报
逆波兰式分析实验报告_第1页
第1页 / 共5页
逆波兰式分析实验报告_第2页
第2页 / 共5页
逆波兰式分析实验报告_第3页
第3页 / 共5页
逆波兰式分析实验报告_第4页
第4页 / 共5页
逆波兰式分析实验报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《逆波兰式分析实验报告》由会员分享,可在线阅读,更多相关《逆波兰式分析实验报告(5页珍藏版)》请在金锄头文库上搜索。

1、实 验 报 告姓名:孙岩学号:1408080211班级:惠普开发142学校:青岛科技大学Mail: 教师:宮生文实验报告:实验名称:逆波兰式分析实验目的和要求将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。实验内容和步骤:一、实验内容对于这个实验,总共用了三个函数,即主函数、算术表达式转换为后缀表达式函数、根据后缀表达式求取表达式的计算值。主要完成的功能是接收一个包含加减乘除以及括号的算数表达式,进而将其转换为后缀表达式,从而通过此后缀表达式求出该算数表达式的值。二、实验步骤1、基于实验的内容,构造程序所需的模块2、根据已建构的模块,写

2、出各个模块的相应程序代码3、在主函数中调用模块来完成所要得到的效果在本程序中,首先定义了数组常量exmax,用于存储后缀表达式,操作对象在前,运算符在后;其次,是trans()函数,它的作用是将算数表达式转换为后缀表达式;其次是compvalue()函数,它的作用是根据后缀表达式求取对应算数表达式的算数值;最后是主函数模块,主要是通过对以上几个模块的调用。实验代码如下:#include#include#include#define max 100char exmax; /*存储后缀表达式*/void trans() /*将算术表达式转化为后缀表达式*/char strmax; /*存储原算术表

3、达式*/char stackmax; /*作为栈使用*/char ch;int sum,i,j,t,top=0;printf(*n);printf(*输入一个求值的表达式,以#结束。*n);printf(*n);printf(算数表达式:);i=0; /*获取用户输入的表达式*/doi+;scanf(%c,&stri);while(stri!=# & i!=max); sum=i;t=1;i=1;ch=stri;i+;while(ch!=#)switch(ch)case (: /*判定为左括号*/top+;stacktop=ch; break; case ): /*判定为右括号*/while(

4、stacktop!=() ext=stacktop;top-;t+;top-;break; case +: /*判定为加减号*/case -: while(top!=0&stacktop!=()ext=stacktop;top-;t+;top+;stacktop=ch;break;case *: /*判定为乘除号*/ case /:while(stacktop=*|stacktop=/)ext=stacktop;top-;t+;top+;stacktop=ch;break;case :break;default:while(ch=0&ch=9) /*判定为数字*/ext=ch;t+;ch=st

5、ri;i+;i-;ext=#;t+;ch=stri;i+;while(top!=0)ext=stacktop;t+;top-;ext=#;printf(nt原来表达式:);for(j=1;jsum;j+)printf(%c,strj); printf(nt后缀表达式:,ex);for(j=1;j=0&ch=9) d=10*d+ch-0; /*将数字字符转化为对应的数值*/ ch=ext;t+; top+; stacktop=d;ch=ext;t+;printf(nt计算结果:%gn,stacktop);int main()trans();compvalue();return 0;三、实验过程记录:实验截图: 程序中出现的问题 1、程序中的数组使用与平常使用的不太一样,即对数组的存取都是从下标为1的地方开始。四、实验总结: 通过这次实践,我主要有几个方面的收获: 1. 对语法制导翻译原理有了进一步的理解。 2. 对逆波兰式的翻译过程在实践中的应用有了深刻地认识和理解,把所学的知识应用于实践中。更深刻的理解了编译原理的实际应用。 3. 本次试验激发了我的学习兴趣,培养了我独立发现问题、分析问题、解决问题的能力。也增强了我与同学交流沟通共同解决问题的能力。 4. 理解了编译原理和各个学科之间的融合渗透,锻炼了编程的能力,达到学以致用的目的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号