电子信息学院实验报告书课程名:《编译原理》题目:实验一代码优化实验实验类别【设计】班级:BX1210学号:121003531028姓名:俞佳星评语:实验态度:认真()一般()差()实验结果:正确()部分正确()错()实验理论:掌握()熟悉()了解()不懂()操作技能:强()一般()差()实验报告:好()一般()差()成绩:指导教师:郭煦批阅时间:2015年3月10日《VB.NET程序设计》实验报告-1-1、实验内容或题目a)学习具体的代码优化方法b)掌握良好的编程习惯2、实验目的与要求将指导书中给出的代码进行优化,比较优化前后代码的运行时间,并结合相应的代码优化方法分析实验结果。3、实验步骤与源程序⑴实验步骤只能够被1和其本身整除的数称素数。编写程序,求给定范围内的所有素数。有下列方法可以实现:数字n可以从2除到n-1数字n可以从2除到n/2数字n可以从2除到n的算术根⑵源代码#includestdio.h#includeconio.h#includetime.h#includemath.h#includeio.h#defineUPPERLIMIT30000/*变量声明*/intiindex;intiprime;intiprimes_count=1;intiflag,icflag;clock_tstart,stop;/*functiondeclarations*/intfnprime(intiulimit);intfnprimeby2(intiulimit);intfnprimeroot(intiulimit);intmain(intargc,char**argv){fnprime(UPPERLIMIT);/*预留其他两个函数的调用*/fnprimeby2(UPPERLIMIT);fnprimeroot(UPPERLIMIT);return0;}intfnprime(intiulimit){《VB.NET程序设计》实验报告-2-start=clock();iprime=0;for(iprime=3;iprime=iulimit;iprime=iprime+2){iflag=1;for(iindex=3;iindex=iprime-1;iindex=iindex+2){/*检查到n-1*/icflag=iprime%iindex;if(icflag==0)/*素数标记,iflag=0表示非素数*/iflag=0;}if(iflag!=0)iprimes_count++;}stop=clock();printf(starttime:%d\n,start);printf(stoptime:%d\n,stop);printf(Clocks/sec:%d\n,CLOCKS_PER_SEC);printf(Thetimetakenis%dmillisecondsandthenumberofprimesare%d\n,(stop-start),iprimes_count);return0;}intfnprimeby2(intiulimit){iprimes_count=1;start=clock();iprime=0;for(iprime=3;iprime=iulimit;iprime=iprime+2){iflag=1;for(iindex=3;iindex=iprime/2;iindex=iindex+2){/*检查到n/2*/icflag=iprime%iindex;if(icflag==0)/*素数标记,iflag=0表示非素数*/iflag=0;}if(iflag!=0)iprimes_count++;}stop=clock();printf(\nstarttime:%d\n,start);printf(stoptime:%d\n,stop);printf(Clocks/sec:%d\n,CLOCKS_PER_SEC);printf(Thetimetakenis%dmillisecondsandthenumberofprimesare%d\n,(stop-start),iprimes_count);return0;《VB.NET程序设计》实验报告-3-}intfnprimeroot(intiulimit){iprimes_count=1;start=clock();iprime=0;for(iprime=3;iprime=iulimit;iprime=iprime+2){iflag=1;for(iindex=3;iindex=sqrt(iprime);iindex=iindex+2){/*检查到sqrt(n)*/icflag=iprime%iindex;if(icflag==0)/*素数标记,iflag=0表示非素数*/iflag=0;}if(iflag!=0)iprimes_count++;}stop=clock();printf(\nstarttime:%d\n,start);printf(stoptime:%d\n,stop);printf(Clocks/sec:%d\n,CLOCKS_PER_SEC);printf(Thetimetakenis%dmillisecondsandthenumberofprimesare%d\n,(stop-start),iprimes_count);return0;}测试数据与实验结果(可以抓图粘贴)运行结果4、结果分析与实验体会《VB.NET程序设计》实验报告-4-通过这次试验,我们学习了具体的代码优化方法。在实验中我们发现了不同的算法有着不同的运算效率,选着合适的算法可以极大地节约运算时间。