求100 以内的素数武汉理工大学.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求100 以内的素数武汉理工大学

学 号: 课 程 设 计 题 目 求100 以内的素数 课程设计任务书 学生姓名: 专业班级: 指导教师: 张素文 工作单位: 自动化学院 题 目: 求100 以内的素数(1)用筛法求出这些素数。 (2)在屏幕上显示出求素数的动态过程(在屏幕上先显示出100 以内的所有数, 再动态地删去不符合要求的数,删除的过程要明显)。 (3)计算这些素数的平均值(取整,四舍五入),以十进制形式输出,并让该值 以红色显示。 (4)数据的输入和结果的输出都要有必要的提示,且提示独占一行。 1月8日~1月13日:整体流程,程序细节 1月14日~1月15日:调试程序,报告撰写 1月16~1月17日::交设计报告,程序演示,答辩 指导教师签名: 2014 年 1 月 6 日 系主任(或责任教师)签名: 年 月 日 目录 摘要 1 求100 以内的素数 2 1、程序的功能 2 1.1 初始条件 2 1.2 要求完成的主要任务 2 2、程序的设计思想与流程 3 2.1 屏幕显示1至99模块 3 2.2 删除合数保留素数并显示 4 2.3 求和程序 6 2.4 求平均值并显示 7 3、调试过程 8 3.1 汇编报错及解决方案 8 3.2 程序调试运行过程 8 4、心得体会 12 参考资料 13 附录 14 摘要 在数学的学习中,我们会经常接触到素数这个概念。素数又称数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数(不包括0)整除的数。因为合数是由若干个质数相乘而得来的,所以,没有质数就没有合数,由此可见素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。 求100 以内的素数用筛法求出这些素数。 在屏幕上显示出求素数的动态过程(在屏幕上先显示出100 以内的所有数,再动态地删去不符合要求的数,删除的过程要明显)。 计算这些素数的平均值(取整,四舍五入),以十进制形式输出,并让该值以红色显示。 数据的输入和结果的输出都要有必要的提示,且提示独占一行。 2、程序的设计思想与流程 在分析了程序所需要完成的任务后,我认为是可以不需要调用子程序而只需要把程序分成四个模块来完成,分别将程序分为屏幕显示1至99显示、删除合数保留素数并显示、求和程序、求平均值并显示。 2.1 屏幕显示1至99模块 由于DOS的9号调用输出的是ASCⅡ码,因此我们在输出到屏幕的时候一定要将其先转换为ASCⅡ码再使用9号调用输出。考虑到ASCⅡ码转化为数字较为麻烦,因此可以定义两个组数据buf、buf1,其中buf用于存放1~99,buf1用于存放1~99的ASCⅡ码。这段程序的流程图如图2-1。 这段程序运用的两次loop循环分别实现把0~99送到buf、将0~99的ASCⅡ码送到buf1。在循环完毕后,采用dos的9号调用将buf1的数据输出到屏幕上,即1~99输出到屏幕上。 完成这段程序后,跳到下一个模块,即删除合数保留素数并显示模块。 图2-1屏幕显示1至99模块的流程图 2.2 删除合数保留素数并显示 这段代码用了很多跳转的语句,编程时在这里花掉了很大的精力和时间。 在判断这个数是不是素数时,考虑到1、2、3容易判断是素数,我首先将buf的首地址送到bx中,然后从bx+3即4开始判断。判断方法是从2开始除这个数,若有余数为0, 图2-2 删除合数保留素数并显示模块的流程图 则表明这个数是合数,就要删除,否则用3除。一直到比这个数小1时还不能除尽,则将这个数保留,计数加1。具体的流程图如图2-2。 2.3 求和程序 图2-3 求和程序模块的流程图 在这里,我采用了一个loop循环,由于之前的模块没有把buf里的合数删除,而buf1的合数的ASCⅡ码已经被删除,因此选用buf1,所以在使用buf1前,要先将ASCⅡ码转换为数字。程序的流程图如图2-3。 2.4 求平均值并显示 图2-4 求平均值并显示模块的流程图 这个模块采用顺序结构,比较容易,特别要注意数字与其ASCⅡ码转换的问题。 3、调试过程 3.1 汇编报错及解决方案 在程序的运行过程中,会出现一些错误,这时就需要我们进行调试来查找出错误所在。我遇到的一些错误总结如下: (1)Symbol already defined elsewhere报错如图3-1,意思为符号已经定义过了,当用伪指令将同一个符号连续定义

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档