- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、什么是尾递归 * Logo程序设计 (授课讲稿) 吴剑辉 第四讲 简单递归 我们知道,已定义的过程名可视为新的命令直接来执行;另外,还可以在一个过程中允许使用已定义的过程,即过程的嵌套调用。如果在一个过程体的末尾出现自身过程名,这是一种特殊的过程调用方式。称之为调用自身“命令”,叫做尾部递归。 一、什么是尾递归 二、用尾递归画图 三、进入色彩世界 0d58b4b8 龙印战神 /read/1/1937/ 相同点:两种方式编写,海龟都要以“FD 100 RT 90”作图,并重 复出现。 不同点:重复命令是有限的重复,根据设定的重复次数(4 次)来 执行。而尾部递归是无限的重复,每当调用到 ZFX时,又 作为命令执行,并反复进行。 说 明:递归过程不能自动停下来,只能用Ctrl+G组合键强行终止 或操作工具栏相关功能图标。最好在设计递归过程时,通 过设置条件使其自动停止。 1、对比分析:以画一个边长为100的正方形为例。 用重复命令编写:REPEAT 4[FD 100 RT 90] 尾部递归过程编写: TO ZFX FD 100 RT 90 ZFX END 2、线段的奇妙变幻。(分析下列编程所画出的图形变化) ⑴、TO ZHX1 :X :N RT :N FD :X END ⑵、TO ZHX2 :X :N RT :N FD :X ZHX2 :X :N END ⑶、TO ZHX3 :X :N IF :X200 STOP RT :N FD :X ZHX3 :X+5 :N END ⑷、TO ZHX4 :X :N :M IF :X200 STOP RT :N FD :X ZHX4 :X+:M :N :M END ⑸、TO ZHX5 :X :N :M RT :N FD :X WAIT 50 ZHX5 :X :N+:M :M END ? ZHX1 100 0 ? ZHX1 100 90 ? ZHX2 100 90 ? ZHX2 100 144 ? ZHX3 100 90 ? ZHX3 100 144 ? ZHX4 0 118 2 ? ZHX4 0 61 0.4 ? ZHX4 100 144 0.4 ? ZHX5 15 3 10 ? ZHX5 20 2 10 ? ZHX5 20 3 100 可控制时间的长短,等待约n/100秒 WAIT n 延 时 停止正在执行中的命令 STOP 停 止 如果( IF )后面给定的条件成立,那么就执行命令1, 否则就执行命令2 IF……THEN…… IF…THEN [条件1] [条件2] 条 件 说 明 全 称 命 令 【知识点】:控制判断命令 说明:条件都用“比较算式”表示。常用的“比较符号”有: ⑴、 大于;⑵、 小于;⑶、= 等于; ⑷、= 大于或等于(“=”和“=”的意义是相同的); ⑸、= 小于或等于(“=”和“=”的意义是相同的)。 在递归过程中,常根据实际的需要,对参数进行加(+)、减(-)、乘(*)、除(/)的运算,最后画出各种有趣的图形来。 在实践中,我们将会发现有时候所写的过程,执行结果并没有按照我们所期望的去做。这种“意外的发现 ”正是促使你去思考、去探索、去尝试更多的创造。 动脑筋,画一画 用上述编写的递归过程,试输入实际参数,分别画出下列图形。 1、用尾部递归方式,画出如图所示的五个连续正方形。 TO ZF1 :X :N IF :N1 STOP REPEAT 4[FD :X RT 90] RT 90 FD :X LT 90 ZF1 :X :N-1 END 执行: ?ZF1 20 5↙ 这里以正方形的个数来计算,运用“递减器”。 也可运用“累加器”。即: TO ZF2 :X :N IF :N4 STOP REPEAT 4[FD :X RT 90] RT 90 FD :X LT 90 ZF2 :X :N+1 END 对照一下,执行过程时,哪一种形式较方便?(画8个、10个呢 ?) 同时要注意条件的
文档评论(0)