- 5
- 0
- 约2.54千字
- 约 4页
- 2017-06-08 发布于重庆
- 举报
汉语编程关于汉编词“递归”
关于递归调用的实例:阶乘
编 阶乘 n r --- n1 1- ♂ 1 就 ↑↓ ∽ * ↑↓ 看数摞 等键 ♀ 递归 看数摞 等键 ♀ 否则 ♀ 然后
。
运行结果:
4 4 阶乘 [2] 12 3 [2] 24 2 [1] 24 [1] 24 ★.
看数摞 [1] 24 ★.
等键 此词的功能为,等待键盘输入,将键盘输入的ASCII码放在数摞上,
这里,我们执行 “ 4 4 阶乘 ” 后 可以按任意键查看每次递归运行时,
数摞的变化,等键输入的内容已用“♀” 清除,因此,我们看到的数摞变化,
即为,递归调用本身的数摞变化。
我们需要按四次等键,程序才能执行完毕,每次递归调用都有两次等键操作,
由此可知,本次求4的阶乘,共进行了两次递归调用。
由以上运行结果表明,求4有阶乘,共做了两次递归循环:
输入参数:4 4
做第一次递归后,数摞变为:12 3 12 4*3 数摞状态为:[2] 12 3
做第二次递归后,数摞变为:24 2 24 4*3*2 数摞状态为:[2] 24 2
反回结果:24 数摞状态为:看数摞 [1] 24 ★.
本次程序运行并没有
做第三次递归 24 4*3*2*1,因为,程序中设置了条件 1- ♂ 1 就 ↑↓ ∽ * ↑↓ 看数摞 等键 ♀ 递归 看数摞 等键 ♀ 否则 ♀ 然后 就是说,只有 自变量r 大于1时,才执行递归操作
否则,就会清除r,并且退出递归调用,反回阶乘值
做第三次递归,也就是24 24*1的情况,对于1来说,
任何数,乘1都等于本身,所以,没必要做这一次递归,
事实上,是可以设置成,求4的阶乘做三次递归的,将
程序改为如下:
编 阶乘1 n r --- n1 1- ♂ 0 就 ↑↓ ∽ * ↑↓ 看数摞 等键 ♀ 递归 看数摞 等键 ♀ 否则 ♀ 然后
。
运行结果如下:
摞初始 ★
4 4 阶乘1 [2] 12 3 [2] 24 2 [2] 24 1 [1] 24 [1] 24 [1] 24 ★.
看数摞 [1] 24 ★.
由以上运行结果表明,求4有阶乘,共做了三次递归循环:
输入参数:4 4
做第一次递归后,数摞变为:12 3 12 4*3 数摞状态为:[2] 12 3
做第二次递归后,数摞变为:24 2 24 4*3*2 数摞状态为:[2] 24 2
做第三次递归后,数摞变为:24 2 24 4*3*2*1 数摞状态为:[2] 24 1
反回结果:24 数摞状态为:看数摞 [1] 24 ★.
从以上测试,我们可以知道,在汉编中,递归调用,是调用“递归”这个词这前的
代码内容,数摞状态:
[2] 12 3 [2] 24 2 [2] 24 1
是执行三行递归循环的状态
三次递归循环后,再执行三次“递归”词后面的代码,本词中,“递归”词后面,
只有代码“看数摞 等键 ♀”,而这个代码,正是查看递归调用后数摞状态的,
所以,编译器上会显示如下的数摞状态:
24 [1] 24 [1] 24 ★.
注意“看数摞 [1] 24 ★.”是执行完“4 4 阶乘”指令后,我们为了查看阶乘的
结果,而输入的“看数摞”指令,得到的数摞状态。
由此可见,在汉编中,递归调用,在“递归”词前,必须保证参数合法,
即本例中,参数为两个数,那么,在递归词前面的数摞,必须是合法的两个数
否则,编译器会出现异常提示。在“递归”词后面,如果有代码,那么,
是递归调用完成“递归”词前的代码后,再以同样的次数调用“递归”词后的
代码,根据这一原理,上面的“阶乘”词 可以简化为:
编 阶乘2 n --- n1 ♂ 1 就 ♂ 1- 看数摞 等键 ♀ 递归 * 看数摞 等键 ♀ 然后
。
运行结果如下:
4 阶乘2 [2] 4 3 [3] 4 3 2 [4] 4 3 2 1 [3] 4 3 2 [2] 4 6 [1] 24 ★.
看数摞 [1] 24 ★.
此运行结果表明,做了三次递归循环,执行过程如下:
第一步:汉编词“递归”前代码循环调用
第一次递归:数摞变为:4 3 数摞等键查看状态为: [2] 4 3
第二次递归:数摞变为:4 3 2 数摞等键查看状态为: [3] 4 3 2
第三次递归:数摞变为:4 3 2 1 数摞等键查看状态为: [4] 4 3 2 1
第二步:汉编词“递归”后代码等同前面次数的循环调用
第一次:数摞变为:4 3 2 2 2*1 数摞等键查看状态为: [3] 4 3 2
第二次:数摞变为:4 6 6 3*2*1 数摞等键查看状态为: [2] 4 6
第三次:数摞变为:24 24 4
您可能关注的文档
- 汉明码编译码实验.doc
- 汉明码纠错判原理.doc
- 汉明码编译码文档.doc
- 汉景港湾4号私募投资基金.docx
- 汉朝历代皇后简介.doc
- 汉柯数码复印机部分参数.doc
- 汉柯数码复印机故障代码表.doc
- 机械通气的临床应用呼吸治疗.ppt
- 汉江奇石资源与文化.doc
- 汉江安康站径流量模型.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)