微机原理课程设计-杨辉三角课程设计

上传人:xzh****18 文档编号:35524242 上传时间:2018-03-17 格式:DOC 页数:21 大小:376KB
返回 下载 相关 举报
微机原理课程设计-杨辉三角课程设计_第1页
第1页 / 共21页
微机原理课程设计-杨辉三角课程设计_第2页
第2页 / 共21页
微机原理课程设计-杨辉三角课程设计_第3页
第3页 / 共21页
微机原理课程设计-杨辉三角课程设计_第4页
第4页 / 共21页
微机原理课程设计-杨辉三角课程设计_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《微机原理课程设计-杨辉三角课程设计》由会员分享,可在线阅读,更多相关《微机原理课程设计-杨辉三角课程设计(21页珍藏版)》请在金锄头文库上搜索。

1、 课课程程设设计计报报告告课程 微机原理课程设计 题目 杨辉三角实现 系 别 物理与电子工程学院 年 级 09 专 业 电子信息工程 班 级 电信(2)班 学 号 1604092010 学生姓名 师骏 指导教师 职 称 设计时间 2012-3-192012-3-31 常熟理工学院课程设计报告- 1 目目 录录引言 2第一章杨辉三角简介 21.1 杨辉三角历史 2 1.2 杨辉三角性质 2第二章汇编语言简介 42.1 汇编语言概况 4 2.2汇编语言优点及缺点 4第三章程序设计流程图 6第四章子程序设计 74.1 输入子程序 7 4.2 杨辉三角算法子程序 8 4.3 计算输出数字长度子程序 9

2、4.4计行前数字间空格子程序 94.5 输出子程序 11结束语 13参考文献 13附录 14附录 A 14 附录 B 18常熟理工学院课程设计报告- 2 杨辉三角实现杨辉三角实现引言中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。中国古代数学史曾经有自己光辉灿烂的篇章,而杨辉三角的发现就是十分精彩的一页。杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。第一章 杨辉三角简介1.1 杨辉三角历史 北宋人贾宪约 1050 年首先使用“贾宪三角”进行高次开方运算。11 世纪中国宋代数学家杨辉在详解九章算法里讨论这种形式的数表,并说明此表引自 11 世纪前半贾宪的

3、释锁算术 ,并绘画了“古法七乘方图” 。故此,杨辉三角又被称为“贾宪三角” 。元朝数学家朱世杰在四元玉鉴 (1303 年)扩充了“贾宪三角”成“古法七乘方图”。意大利人称之为“塔塔利亚三角形” (Triangolo di Tartaglia)以纪念在 16 世纪发现一元三次方程解的塔塔利亚。在欧洲直到 1623 年以后,法国数学家帕斯卡在 13 岁时发现了“帕斯卡三角” 。布莱士帕斯卡的著作Trait du triangle arithmtique(1655 年)介绍了这个三角形。帕斯卡搜集了几个关于它的结果,并以此解决一些概率论上的问题,影响面广泛,Pierre Raymond de Mon

4、tmort(1708 年)和亚伯拉罕棣美弗(1730 年)都用帕斯卡来称呼这个三角形。1.21.2 杨辉三角性质杨辉三角性质 1、每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1。2、第 n 行的数字个数为 n 个。常熟理工学院课程设计报告- 3 3、第 n 行数字和为 2(n1)。 (2 的(n-1)次方)4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。5、将第 2n+1 行第 1 个数,跟第 2n+2 行第 3 个数、第 2n+3 行第 5 个数连成一线,这些数的和是第 2n 个斐波那契数。将第 2n 行第 2 个数,跟第 2n+1 行第 4 个数、第

5、2n+2行第 6 个数这些数之和是第 2n-1 个斐波那契数。6、第 n 行的第 1 个数为 1,第二个数为 1(n-1),第三个数为 1(n-1)(n-2)/2,第四个数为 1(n-1)(n-2)/2(n-3)/3依此类推。7.两个未知数和的 n 次方运算后的各项系数依次为杨辉三角的第(n+1)行。图 1-2-1 杨辉三角 图 1-2-2 杨辉三角数学公式常熟理工学院课程设计报告- 4 第二章 汇编语言简介2.12.1 汇编语言概况汇编语言概况根据本次设计要求:通过汇编语言编写汇编程序要求能够在提示信息下,从计算机键盘任意输入一个数据,在输出提示信息后显示相应的杨辉三角。下面对汇编语言作简单

6、的介绍。汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言

7、的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如 MASM,TASM 等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写 windows 的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。2.22.2汇编语言优点及缺点汇编语言优点及缺点汇编语言直接同计算机的底层软件甚至硬件进行交互,它具有如下一些优点:(1)能够直接访问与硬件相关的存储器或 I/O

8、端口;(2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;(3)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁;(4)能够根据特定的应用对代码做最佳的优化,提高运行速度;常熟理工学院课程设计报告- 5 (5)能够最大限度地发挥硬件的功能。同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:(1)编写的代码非常难懂,不好维护;(2)很容易产生 bug,难于调试;(3)只能针对特定的体系结构和处理器进行优化;(4)开发效率很低,时间长且单调。常熟理工学院课程设计报告- 6 第三章 程序设计流

9、程图程序设计流程图首先程序开始时在电脑上显示输入提示信息,提醒输入的操作数只能是 1 到 10 之间的正整数,超 过这个范围或太小则显示提示信息输入的数过大。得到杨辉三角的阶数之后即调用一个算法子程序来 求相应阶数的每一个数值,每求出一个数值即将其数压入堆栈中保存起来,方便以后输出数字时直接 调用。算完之后,通过外层循环 di 计数输出每一行,与此同时又通过内层循环 si 计数输出一行中的每 一个数,在输出数字时通过调用 show 子程序将数字均以十进制输出,在输出数值的时候通过 showspace 函数来控制数与数之间的空格及行前空格的输出,上半部分的数字输出之后将其所有数值 及空格格式都存

10、在一个预制的存储单元内,然后直接实现逆序输出,这样最终能在屏幕中打印出一个 菱形的杨辉三角。 主程序流程图如图 3.1 示:图 3.1 主程序流程图常熟理工学院课程设计报告- 7 第四章第四章 子程序设计子程序设计4.14.1 输入子程序输入子程序输入用 int 16 ah 为 0 这一功能,从键盘读字符,字符存在 al 中,输入时用 cmp 判断 令其只能输入字符09每次输入的字符转化为十进制存并阔展为字存入 ax 中,再将 ax 与初始为 0 的 bp 交换,再将 ax 乘以十后与 bp 相加,结果存在 bp 中,再返回输入, 这样就能输入两位数。 shur procpush cxpush

11、 bxxor bp,bpmov bx,10mov cx,2 input:mov ah,0 ;键盘输入数据存在 al 中int 16hcmp al,0dh ;以回车结束输入jz okcmp al,0 ;只允许输入 09jb inputcmp al,9ja inputmov ah,0eh ;显示有效输入int 10hsub al,30h ;化 ASCII 为十进制cbw ;字节扩展为字xchg ax,bpmul bx ;扩大 10 倍add bp,ax ;加一位 loop input ok:nop ;数值结果在 BP 中pop bx ;恢复用到的寄存器pop cxret shur endp常熟理工学院课程设计报告- 8 4.24.2 杨辉三角算法子程序杨辉三角算法子程序求某 m 行 n 列的数 C(n, m)时采用递归的方法求出该数具体算法是: C(n, m) = 1 (n m)即某位置组合数等于上一行左右两数之和,先算出左肩上的数并压栈保存,再次调 用 C 过程求出右肩上的数并压栈保存,左肩与右肩的数相加从而可以求出下一行的组合 数吗,其间存在递归调用,直至求出最大的那个数才返回初始调用的 call 的下一个语句。C proc push bpmov bp, spsub sp, 2 ; 预留一个存储位置mov bx, bp+6 ; 保存 m 到 bxcmp bx,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机原理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号