BX121028俞佳星实验一 代码优化实验.doc_第1页
BX121028俞佳星实验一 代码优化实验.doc_第2页
BX121028俞佳星实验一 代码优化实验.doc_第3页
BX121028俞佳星实验一 代码优化实验.doc_第4页
BX121028俞佳星实验一 代码优化实验.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子信息学院实验报告书课程名:编译原理 题 目: 实验一 代码优化实验 实验类别 【设计】 班 级: BX1210 学 号: 121003531028 姓 名: 俞佳星 评语:实验态度:认真( ) 一般( ) 差( )实验结果:正确( ) 部分正确( )错( )实验理论:掌握( ) 熟悉( ) 了解( ) 不懂( )操作技能:强( ) 一般( ) 差( )实验报告:好( ) 一般( ) 差( )成绩: 指导教师: 郭煦 批阅时间:2015年 3 月 10 日 VB.NET程序设计 实验报告 - 4 -1、 实验内容或题目a) 学习具体的代码优化方法 b) 掌握良好的编程习惯 2、实验目的与要求将指导书中给出的代码进行优化,比较优化前后代码的运行时间,并结合相应的代码优化方法分析实验结果。3、 实验步骤与源程序 实验步骤 只能够被1和其本身整除的数称素数。编写程序,求给定范围内的所有素数。有下列方法可以实现: 数字n可以从2除到n-1 数字n可以从2除到n/2 数字n 可以从2除到n的算术根 源代码#include #include #include #include #include #define UPPERLIMIT 30000 /* 变量声明*/ int iindex; int iprime; int iprimes_count = 1; int iflag,icflag; clock_t start,stop; /*function declarations*/ int fnprime(int iulimit); int fnprimeby2(int iulimit); int fnprimeroot(int iulimit);int main(int argc,char *argv) fnprime(UPPERLIMIT); /*预留其他两个函数的调用*/ fnprimeby2(UPPERLIMIT); fnprimeroot(UPPERLIMIT);return 0; int fnprime(int iulimit) 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( start time : %dn,start); printf( stop time :%dn,stop); printf( Clocks/sec : %dn,CLOCKS_PER_SEC); printf( The time taken is %d milli seconds and the number of primes are %dn,(stop-start),iprimes_count); return 0; int fnprimeby2(int iulimit)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(n start time : %dn,start); printf( stop time :%dn,stop); printf( Clocks/sec : %dn,CLOCKS_PER_SEC); printf( The time taken is %d milli seconds and the number of primes are %dn,(stop-start),iprimes_count); return 0; int fnprimeroot(int iulimit)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(n start time : %dn,start); printf( stop time :%dn,stop); printf( Clocks/sec : %dn,CLOCKS_PER_SEC); printf( The time taken is %d milli seconds and the number of primes are %dn,(stop-start),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论