




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号: 课 程 设 计课程名称 汇编语言程序设计设计题目求fibonacci数列前n项学 院计算机科学与技术专 业计算机科学与技术班 级姓 名指导教师杨荣英2011年12月30日课程设计任务书学生姓名: 专业班级: 指导教师: 杨荣英 工作单位: 计算机科学与技术学院 题目: 求fibonacci数列前n项初始条件:理论:完成了汇编语言程序设计课程,对微机系统结构和80系列指令系统有了较深入的理解,已掌握了汇编语言程序设计的基本方法和技巧。实践:完成了汇编语言程序设计的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法。要求完成的主要任务: (包括课程设计工作量及其技术要求
2、,以及说明书撰写等具体要求)进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界面的设计。具体的设计任务及要求:1) 输入要求输出的项数n;2) 在屏幕上输出fibonacci数列的前n项;3) 程序采用子程序结构,结构清晰;4) 友好清晰的用户界面,能识别输入错误并控制错误的修改。在完成设计任务后,按要求撰写课程设计说明书;对课程设计说明书的具体要求请见课程设计指导书。阅读资料:1)ibmpc汇编语言程序设计实验教程实验2.42)ibmpc汇编语言程序设计(第2版)例6.11时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试,和验收。周5:撰写
3、课程设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日1. 设计题目求fibonacci数列前n项2. 设计要求2.1设计说明本程序主要是实现计算fibonacci数列的前n项并且显示在屏幕上,因此在程序运行中,首先要把fibonacci数列的前n项计算出来,这里的n有用户输入,计算机得到n值后会计算出数列,然后后程序会把得到的前n项显示在屏幕上。2.2功能要求首先,我们需要输入要求的fibonacci数列的项数。然后,系统把fibonacci数列前n项显示在屏幕上。本程序采用数组来存储fibonacci数列前n项。2.3原始条件及参数2.2.1首先,我是先输入要求的f
4、ibonacci数列的项数,如下图:1,1,2,3,5,8是输入6后求得的fibonacci数列的前6项,最后通过屏幕打印出来。2.2.2参数在这个程序中,主要一个数组存放数据。3. 设计思路3.1设计方案及基本流程3.1.1在开始编程时,对于fibonacci数列的实现,我们想到了数组,即用数组来存放数列,数组的项长短是由输入的n决定的,而不是事前计算好很长的项,然后由n的大小来打印。3.1.2其次,在计算fibonacci数列的项的时候要考虑周到,当输入1或2的时候计算机也要能正确的显示。3.1.3计算好数列的前n项后要正确的显示在屏幕上,这里用逗号把各项分开,看的时候能够比较明了和清楚。
5、3.2程序框图建立fibonacci数列的前n项并且打印到屏幕上。开始保护堆栈,设置段寄存器为当前值输出提示文字并输入n值n>2?屏幕打印数组值结束yn调用计算fibonacci数列子程序。利用公式f(n)=f(n-1)+f(n-2),计算的结果直接存入数据段的数组屏幕打印数组的前n 项置数组前2项为(1,1)4. 程序清单以下为完整的源程序。datareasegmentstring1db'please input the number: ',13,10,'$'string2db13,10,'here is:',13,10,'$
6、39;bufferdb4db?db4 dup(?)numberdb?mulfactdb1feidb254 dup(?)datareaendscodeareasegmentmainprocfarassumecs:codearea,ds:datareastart:pushdssubax,axpushaxmovax,datareamovds,axleadx,string1movah,09int21hleadx,buffermovah,0ahint21hcallconvertnummoval,numberleadx,string2movah,09int21hcallinit;moval,buffer+
7、1;andax,00ffh;movsi,axcalloutputfei;movfeisi+1,24h;leadx,fei;movah,09;int21hretmainendp;=convertnum proc nearpushbxmov si,buffer1and si,00ffhmov cx,simov mulfact,1mov bx,0next:mov al,buffersi+1;cmp al,'0'js exit;cmp al,'9'ja exitsub al,30hand ax,000fhmov dl,mulfactmul dladd bx,axmov
8、al,mulfactmov dl,10mul dlmov mulfact,axdec siloop nextmov number,blpopbxretconvertnumendp;=initprocnearmovcx,alandcx,00ffhandax,00ffhmovsi,1;andsi,00ffhmovfei+1,1movfei+2,1loop1:subcx,2cmpsi,cxjnbexitmovbl,0addbl,feisiaddbl,feisi+1movfeisi+2,blincsijmploop1exit:retinitendp;=outputfeiprocnearmovcl,nu
9、mberandcx,00ffhmovsi,0loop4:cmpsi,cxjzbreakmovax,feisi+1andax,00ffhcalloutputincsijmploop4break:retoutputfeiendp;=outputprocnearpushaxpushbxpushcxpushdxcmpax,100jlg2movbl,100divbladdal,30hmovbh,ahmovdl,almovah,2int21hmoval,bhcbwg2:cmpax,10jlg4movbl,10divblmovbh,ahaddal,30hmovdl,almovah,2int21hmoval,
10、bhcbwg4:addal,30hmovdl,almovah,2int21hmovdl,20hmovah,2int21hpopdxpopcxpopbxpopaxretoutputendpcodeareaendsendstart5. 运行结果运行的结果为fibonacci数列的前n项显示在屏幕上,用逗号把各项分开。5. 1当输入时,返回的结果。5. 2当输入2时,返回的结果5. 3当输入3时,返回的结果。5. 4当输入12时,返回的结果。6. 心得体会6.1 自我评价经过几天的努力工作,一个功能简单的小系统终于完成了。虽然不是很复杂,但是仍然有很大的成就感。这个小系统基本上完成了课程设计的要求,
11、能进行fibonacci数列前n项的计算和显示,但也有一些局限,比如说界面并不是很好看,今后在这方面还需要做相应的改进。这是我个人对系统做的一些简单评价,也许还有更多的地方值得改进,希望老师给予指出,今后会改进的更好。6.2 心得体会及开发感悟终于完成一个完整的小程序,我感到十分高兴。感悟很多。在程序的制作过程中,遇到了很多意想不到的困难,自己一个人解决起来有很大的困难,于是也少不了同学的帮助,深刻体会到开发程序不只是一两个人就能很好的完成的,要大家互相帮助,共同探讨问题,才能更好的解决困难。对于本程序(求fibonacci数列前n项),表面上看去似乎很简单,但接下来遇到的困难就让我不这么认为了。首先数列的保存我想到了数列,可是本数列的前两项都是1,怎么样是的输入1或2时能够正确的显示呢?这个问题困饶了我很久,后来问了一位同学才得到了比较好的解决办法。在输入n值的时候首先判断它和2的大小关系,如果大于2,则定义数列前两项为1,且执行f(n)=f(n-1)+f(n-2);如果n等于或小于2,则直接打印第一项或前两项。最后,我觉得接到一个任务不能立刻就下手编程序,而是应该先规划一下程序,仔细列出框架和一些关键细节的实现方法,然后在编程,盲目的编写程序只会让以后的工作很难展开,这些经验必将对以后的学习起到重要的作用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 反恐防暴应急预案
- 热液烫伤的急救与护理
- 2025年普洱货运从业资格证考试技巧
- 2025年份次季度二手车交易电子合同区块链存证协议
- (41)-4【苏教】数学基础卷03
- 4.1+公民基本义务(教学课件)-2024-2025学年八年级道德与法治下册高效课堂同步教学课件(统编版)
- 25年3月民宿众筹项目连带责任借款专项协议
- 协议书一式三份
- 二零二五版限制性股权转让协议书
- 二零二五版专利权转让协议参考样本
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(801-900题)
- 2024年黑龙江出版集团招聘笔试真题
- 2024年4月27日浙江省事业单位招聘考试《职业能力倾向测验》真题及答案
- 【初中历史】辽宋夏金元时期经济的繁荣 课件 2024-2025学年统编版七年级历史下册
- 2025-2030中国橄榄球行业市场全景调研及投资价值评估咨询报告
- 砌体结构检测试题及答案
- 跌倒坠床的预防及护理
- DB32T 5061.1-2025 中小学生健康管理技术规范 第1部分:心理健康
- 2025年宁波职业技术学院单招职业倾向性测试题库审定版
- 2025年洛阳科技职业学院单招职业技能测试题库及答案(考点梳理)
- JJF(冀) 105-2011 烟气采样器地方规程
评论
0/150
提交评论