




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
西北师范大学计算机科学与工程学院学生实验报告 学号专业计算机科学与技术姓名课程名称计算机编译原理班级实验名称生成四元式序列课程类型专业课实验目得: 编程实现生成四元式得语法分析程序,掌握得结合语法分析实现翻译方案得思路与方法。 实验内容: 实验输入:输入任意得赋值语句表达式; 实验输出:相应得四元式序列。 测试实例: 输入表达式 1、a=((b+c)*d–e/f)*2 2、q=((x*x+w)—(y/y—e))*r 实验代码: #include〈stdio、h〉 #include<stdlib、h〉 #defineMAX100 voidSET_Mul_Div(inti,intm); voidSET_Add_Sub(intj,intm); voidprint(); intm=0; intcount=0; chartempvar='A'; inttemp; charstring[MAX];//用于存放表达式 intmain() { intp[MAX]; charch; intc=-1,q=0; printf("请输入赋值语句:\n”); while((ch=getchar())!=’\n’) { string[m++]=ch; if(ch==’=’||ch=='+'||ch=='-’||ch=='*'||ch==’/’) count++; elseif(ch=='(’) { p[++c]=m—1; } elseif(ch==’)') { q=m-1; SET_Mul_Div(p[c],q);//从左括号处理到又括号 SET_Add_Sub(p[c],q); temp=(int)tempvar-1; tempvar=(char)temp; string[p[c]]=string[m-1]=tempvar; c--; temp=(int)tempvar+1; tempvar=(char)temp; } } /********调用生成四元式得函数********/ print(); /*********判断就是否成功**********/ if(count==0) printf("Successful!\n”); else printf("Wrong!"); printf(”\n"); system("pause”); } voidSET_Mul_Div(inti,intm)//处理乘除运算 { for(i++;i〈=m-1;i++) { if(string[i]=='*'||string[i]=='/') { printf("(%c%c%c%c)\n",string[i],string[i-1],string[i+1], tempvar); string[i-1]=string[i]=string[i+1]=tempvar; count-—; temp=(int)tempvar+1; tempvar=(char)temp; } } } voidSET_Add_Sub(intj,intm)//处理加减运算 { j++; for(;j<=m-1;j++) { if(string[j]==’+’||string[j]==’-’) { printf(”(%c%c%c%c)\n",string[j],string[j—1],string[j+1],tempvar); string[j—1]=string[j]=string[j+1]=tempvar; count--; temp=(int)tempvar+1; tempvar=(char)temp; } } } /*打印*/ voidprint() { inti; for(i=0;i<=m-1;i++)//处理乘除运算 { if(string[i]=='*'||string[i]==’/') { printf("(%c%c%c%c)\n",string[i],string[i-1],string[i+1],tempvar); string[i-1]=string[i]=string[i+1]=tempvar; count--; temp=(int)tempvar+1; tempvar=(char)temp; } } intj; for(j=0;j<=m-1;j++)//处理加减运算 { if(string[j]==’+’||string[j]==’—') { printf("(%c%c%c%c)\n",string[j],string[j—1],string[j+1],tempvar); string[j—1]=string[j]=string[j+1]=tempvar; count——; temp=(int)tempvar+1; tempvar=(char)temp; } } intk; fo
Ta的资源

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中考试模拟试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中综合测试试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中综合测试模拟试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中统考试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中统考模拟试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中经典试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中经典模拟试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中监测试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中监测模拟试题含解析

2024-2025学年吉林九台区加工河中学七年级数学第一学期期中检测试题含解析

lj****88
实名认证
内容提供者


最近下载
贵州省城市管理行政执法条例.doc
贵州省城市管理行政执法条例.doc
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf