结构化程序设计 筛选算法 设计技术 应用.doc

结构化程序设计 筛选算法 设计技术 应用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构化程序设计 筛选算法 设计技术 应用

福建工程学院计算机与信息科学系 实验报告– 2012 学年第 二 学期 任课老师: 章 静 课程名称 结构化程序设计 班级 计1002 座号 3100305126 姓名 王文杰 实验题目 筛选算法设计技术的应用 实验时间 实验开始日期:2012年3月20日 报告提交日期:2012年4月1日 实验目的、要求 实验题目 设计程序求任意给定范围之间的素数。答优的同学要设计出优化算法! 实验要求 1.该实验的课内学时是4个课时。 实验步骤与内容 按如下顺序写: 主要设计思想; 筛选策略是在一个包含所有解的(有限)集合中,删去不符合要求的元素,留下的就是所要求的解。这种方法犹如将掺有沙子的豆子,用网眼大小适当的筛子筛一下,把沙子筛走,留下的就是干净的豆子一样,所以叫做筛选策略。例用筛选法求2~100之间的所有素数。解:我们用下面的方法来解这题:先建立一个含有2~100之间所有自然数的数表,在数表中删去2的倍数(不包括2);然后找2后面第一个被保留的数p(是3),再删除p的倍数(不包括p);然后再找下一个被保留的数(是5),继续上述步骤:这样继续下去,直至P大于100为止。这样数表中剩下的数就是所要求的所有素数。这个求素数的方法称为爱拉托散(Eratosthenes)法。nt data[100005];中初始化所有元素为0,然后将整数相乘作为下标,对应data数组中下标的元素赋值为-1(非素数)。 所有函数的简要说明; void input(int *min,int *max);//输入函数 void prime(int *data,int dataLen);//将相应范围内数组中的非素数下标的值赋为-1 void print(int *data,int dataLen,int min);//输出相应范围内非-1元素的下标,即为素数。 所有源代码; #include string.h #include stdio.h void input(int *min,int *max); void prime(int *data,int dataLen); void print(int *data,int dataLen,int min); int main() { int min,max; int data[100005]; while(1) { input(min,max); memset(data,0,sizeof(int)*max); prime(data,max); print(data,max,min); } return 0; } void input(int *min,int *max) { printf(请输入你要查找的范围(用逗号隔开逗号):); scanf(%d,%d,min,max); } void prime(int *data, int dataLen) { int i,j; for(i=2;i=dataLen;i++) { for(j=2;i*j=dataLen;j++) if(data[i*j]==0) data[i*j]=-1; else continue; } } void print(int *data, int dataLen,int min) { int i; printf(该范围内的素数如下:\n); for (i=2;i=dataLen;i++) { if (data[i]==0) if(i=min) printf(%d ,i); } printf(\n); } 试验过程记录 记录试验中遇到的困难及解决方法; 在编码、调试过程中刚开始忽略了0、1和2的特殊性判断以及范围最后一个数的判断,造成了一些错误,通过反复的实验修改后正确。 实验结果记录以及与预期结果比较以及分析 记录每次实验结果以及分析情况 总结以及心得体会 通过本次实验,我掌握了筛选算法的使用,开拓了视野,学会了用不同的方法解决素数问题。提高了解决问题的效率。在实验过程中我遇到了很多问题。我通过反复的实验调试最终完美的解决了。 指导老师评阅意见 指导老师: 年 月 日 填写内容时,可把表格扩大。实验的源程序代码(要有注释)附在表后。 1

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档