编译原理 实验一.doc

编译原理 实验一.doc

ID:61499919

大小:159.00 KB

页数:8页

时间:2021-02-07

编译原理 实验一.doc_第1页
编译原理 实验一.doc_第2页
编译原理 实验一.doc_第3页
编译原理 实验一.doc_第4页
编译原理 实验一.doc_第5页
资源描述:

《编译原理 实验一.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、电子信息学院实验报告书课程名:《编译原理》题目:实验一代码优化实验实验类别【设计】班级:BX1211学号:42姓名:刘勇评语:实验态度:认真()一般()差()实验结果:正确()部分正确()错()实验理论:掌握()熟悉()了解()不懂()操作技能:强()一般()差()实验报告:好()一般()差()成绩:指导教师:郭煦批阅时间:2015年3月10日1、实验内容或题目代码优化实验2、实验目的与要求(1)学习具体的代码优化方法(2)掌握良好的编程习惯(3)将指导书中给出的代码进行优化,比较优化前后代码的运行时间,并结合相应的代码优化方法分析实验结果。3、实验步骤与源程序⑴实验步骤只能够被

2、1和其本身整除的数称素数。编写程序,求给定范围内的所有素数。有下列方法可以实现:1.数字n可以从2除到n-12.数字n可以从2除到n/23.数字n可以从2除到n的算术根⑵源代码1.#include#include#include#include#include#defineUPPERLIMIT30000/*变量声明*/intiindex;intiprime;intiprimes_count=1;intiflag,icflag;clock_tstart,stop;/*functiondeclaratio

3、ns*/intfnprime(intiulimit);intfnprimeby2(intiulimit);intfnprimeroot(intiulimit);intmain(intargc,char**argv){fnprime(UPPERLIMIT);/*预留其他两个函数的调用*/return0;}intfnprime(intiulimit){start=clock();iprime=0;for(iprime=3;iprime<=iulimit;iprime=iprime+2){iflag=1;for(iindex=3;iindex<=iprime-1;iindex=iind

4、ex+2){/*检查到n-1*/icflag=iprime%iindex;if(icflag==0)/*素数标记,iflag=0表示非素数*/iflag=0;}if(iflag!=0)iprimes_count++;}stop=clock();printf(“starttime:%d”,start);printf(“stoptime:%d”,stop);printf(“Clocks/sec:%d”,CLOCKS_PER_SEC);printf(“Thetimetakenis%dmillisecondsandthenumberofprimesare%d”,(stop

5、-start),iprimes_count);return0;}计算素数方法1packagewe;importjava.lang.*;importjava.awt.*;importjavax.swing.*;publicclasschen{publicstaticvoidmain(Stringargs[]){longstartTime=System.currentTimeMillis();finalintUPPERLIMIT=30000;intnum,i;for(num=2;num<=UPPERLIMIT;num++){for(i=2;i<=num/2;i++){if(num%i

6、==0)break;}if(i>num/2){System.out.println(num+"是素数");}}longendTime=System.currentTimeMillis();longtimr=endTime-startTime;Stringweg=String.valueOf(timr);JOptionPane.showMessageDialog(newJFrame(),"运行时间为"+weg);}计算素数方法2packagewe;importjava.lang.*;importjava.awt.*;importjavax.swing.*;publicclassch

7、en{publicstaticvoidmain(Stringargs[]){longstartTime=System.currentTimeMillis();finalintUPPERLIMIT=30000;intnum,i;for(num=2;num<=UPPERLIMIT;num++){for(i=2;i<=Math.sqrt(num);i++){if(num%i==0)break;}if(i>Math.sqrt(num)){System.out.println(num+"是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。