收藏 分销(赏)

编译原理论文添加新的程序语句.doc

上传人:仙人****88 文档编号:8553359 上传时间:2025-02-18 格式:DOC 页数:5 大小:729.50KB 下载积分:10 金币
下载 相关 举报
编译原理论文添加新的程序语句.doc_第1页
第1页 / 共5页
编译原理论文添加新的程序语句.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
编译原理实验 《添加新的程序语句》 学生姓名 徐超、吕吉龙、陈浩 张小龙、 刘涛、 王闪闪 所属学院 信息工程学院 专 业 计算机科学与技术 班 级 12-2 、 12-3 指导教师 史召峰 塔里木大学教务处制 1.实验目的 掌握另一种添加语句功能的方法。 2. 实验要求 通过深入的了解语句的内在功能,利用等价的方法实现语句的编译过程。 3. 实验内容 将repeat语句等价变换用while语句实现repeat语句。本次实验利用C++语言实现。 4. 实验程序 #include "stdafx.h" #include<iostream> using namespace std; #define NAME "Ant" //宏定义 void guess_number(); //以下四句是函数的声明,以便主函数的调用 void guess_name(); int factorial(); void wqnum(); int main() { cout<<"----------------------------do_while()结构测试程序-------------------------- \n"; cout<<"-------------------------1:Guess my favorite number -----------------------\n"; cout<<"-------------------------2:Guess my name---------------------------------- \n"; cout<<"-------------------------3:生成~1000以内的完全数-------------------------\n"; cout<<"-------------------------4:计算n的阶乘-------------------------------------\n"; cout<<"-------------------------5: Enter q to quit---------------------------------"; int choose; while(cin>>choose) { switch(choose) { case 1: guess_number(); break; case 2: guess_name(); break; case 3: wqnum(); break; case 4: cout<<factorial(); break; default: cerr<<"error number choose\n" <<"please try again"; } cout<<endl; cout<<"----------------------------do_while()结构测试程序-------------------------- \n"; cout<<"-------------------------1:Guess my favorite number -----------------------\n"; cout<<"-------------------------2:Guess my name---------------------------------- \n"; cout<<"-------------------------3:生成~1000以内的完全数-------------------------\n"; cout<<"-------------------------4:计算n的阶乘-------------------------------------\n"; cout<<"-------------------------5: Enter q to quit---------------------------------"; } return 0; } void guess_number() { const int N=7; int n; do {cout<<"please enter my favorite number: "; cin>>n;} //将括号里的内容标记为S while(n!=N);//n和N相同时标记为B cout<<" Good lucky! "<<N<<"is my favorite\n" <<"Bye!";//标记该语句为C } //则上面的语句相当于执行S语句,直到有B语句才执行C语句 void guess_name() { char name[20]; do { cout<<"Please guess what's my name: "; cin>>name; } //将括号里的内容标记为S while(strcmp(NAME,name));//标记字符NAME和name相同时为B cout<<" Yeah! You got it!\n";//该语句标记为C //则上面的语句相当于执行S语句,直到有B语句才执行C语句 } int factorial() { cout<<"Please enter the number: "; int n; cin>>n; int result=1; int i=1; do { result=result*i; i=i+1; } while(i<=n);//标记i>n语句为B语句 return result; //则上面的语句相当于执行S语句,直到有B语句返回result,并结束该函数 } void wqnum() { int i,s,k; i=1; cout<<"1~1000以内的完全数\n"; do { s=0; for(k=1;k<i;k++) { if(i%k==0) s+=k; } if(s==i) { printf("%d,its factors are",i); for(k=1;k<i;k++) { if(i%k==0) printf("%d,",k); } printf("\n"); } i++; }//标记括号内的语句为S语句 while(i<=1000);//标记i>1000为B语句 //则上面的语句相当于执行S语句,直到有B语句才结束该函数 } 完全数,又称完美数或完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4 + 7 + 14=28。后面的数是496、8128。 5. 实验结果 实验分析见实验内容的程序。 6. 实验总结 本实验主要运用了C++中的do-while语句。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服