信奥赛 Logo程序设计-04 简单递归_第1页
信奥赛 Logo程序设计-04 简单递归_第2页
信奥赛 Logo程序设计-04 简单递归_第3页
信奥赛 Logo程序设计-04 简单递归_第4页
信奥赛 Logo程序设计-04 简单递归_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(授课讲稿) 吴剑辉第四讲 简单递归 我们知道,已定义的过程名可视为新的命令直接来执行;另外,还可以在一个过程中允许使用已定义的过程,即过程的嵌套调用。如果在一个过程体的末尾出现自身过程名,这是一种特殊的过程调用方式。称之为调用自身“命令”,叫做尾部递归。一、什么是尾递归二、用尾递归画图三、进入色彩世界0d58b4b8 龙印战神 一、什么是尾递归相同点:两种方式编写,海龟都要以“FD 100 RT 90”作图,并重 复出现。不同点:重复命令是有限的重复,根据设定的重复次数(4 次)来 执行。而尾部递归是无限的重复,每当调用到 ZFX时,又 作为命令执行,并反复进行。说 明:递归过程不能自动停下

2、来,只能用Ctrl+G组合键强行终止 或操作工具栏相关功能图标。最好在设计递归过程时,通 过设置条件使其自动停止。1、对比分析:以画一个边长为100的正方形为例。用重复命令编写:REPEAT 4FD 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 EN

3、D、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命 令全 称

4、 说 明条条 件件IFTHENIFTHENIFTHEN IFTHEN 条件条件1 1 条件条件22如果如果( IF )( IF )后面给定的条件成立,那后面给定的条件成立,那么就执行命令么就执行命令1 1, 否则就执行命令否则就执行命令2 2停停 止止STOPSTOP停止正在执行中的命令停止正在执行中的命令延延 时时WAIT nWAIT n可控制时间的长短可控制时间的长短, ,等待约等待约n/100n/100秒秒【知识点】:控制判断命令说明:条件都用“比较算式”表示。常用的“比较符号”有: 、 大于;、= 大于或等于(“=”和“=”的意义是相同的); 、= 小于或等于(“=”和“=”的意义是相

5、同的)。在递归过程中,常根据实际的需要,对参数进行加(+)、减(-)、乘(*)、除(/)的运算,最后画出各种有趣的图形来。 在实践中,我们将会发现有时候所写的过程,执行结果并没有按照我们所期望的去做。这种“意外的发现 ”正是促使你去思考、去探索、去尝试更多的创造。动脑筋,画一画用上述编写的递归过程,试输入实际参数,分别画出下列图形。 1、用尾部递归方式,画出如图所示的五个连续正方形。 TO ZF1 :X :N IF :N4 STOP REPEAT 4FD :X RT 90 RT 90 FD :X LT 90 ZF2 :X :N+1END 对照一下,执行过程时,哪一种形式较方便?(画8个、10个

6、呢 ?) 同时要注意条件的设定!执行执行: ?ZFZF2 20 0 二、用尾递归画图2、在操作中认识变幻规律 与“重复命令”编写类同。注意分析海龟的位置和方向的不同变化,规律性大致有四种基本组合图形。、位置不变、方向改变。TO ZFX11 :B :N IF :N1 STOP REPEAT 4FD :B RT 90 RT 90 ZFX11 :B :N-1 END ? ZFX11 100 4 TO ZFX12 :B :N IF :N1 STOP REPEAT 4FD :B RT 90 RT 90 ZFX12 :B/2 :N-1END? ZFX12 100 4TO ZFX21 :B :N TO ZF

7、X22 :B :N IF :N1 STOP IF :N1 STOP REPEAT 4FD :B RT 90 REPEAT 4FD :B RT 90 FD :B FD :B ZFX21 :B :N-1 ZFX22 :B/2 :N-1END END? ZFX21 100 4 ? ZFX22 100 4、位置改变、方向不变。TO ZFX31 :B :N TO ZFX32 :B :N IF :N1 STOP IF :N1 STOP REPEAT 4FD :B RT 90 REPEAT 4FD :B RT 90 FD :B FD :B LT 90 LT 90 ZFX31 :B :N-1 ZFX32 :B

8、/2 :N-1END END? ZFX31 100 4 ? ZFX32 100 4、位置改变、方向也改变。TO ZFX41 :B :N TO ZFX42 :B :N IF :N1 STOP IF :N1 STOP REPEAT 4FD :B RT 90 REPEAT 4FD :B RT 90 ZFX41 :B :N-1 ZFX42 :B/2 :N-1END END? ZFX41 100 4 ? ZFX42 100 4 、位置不变、方向也不变。3、画超级葫芦串。?THL 10 5 3?THL 10 8 5TO THL2 :R :N FD :R*2 PU FD :R PD THL1 :R :N P

9、U SETXY 0 0 PDENDTO THL :R :M :N DRAW FS HT REPEAT :MTHL2 :R :N RT 360/:MENDTO THL1 :R :N IF :N1 STOP STAMPOVAL :R :R PU FD :R*2.2 PD THL1 :R*1.2 :N-1END主过程:子过程:4、画树枝。TO SHIZI :R :N IF :N15 STOP SETBG :S WAIT 100 BJ :S+1END ?DRAW FS BJ 02、画一个变幻的彩球(如右图) 。方法一:方法一:TO CQ1 :C IF :C15 STOP SETPC :C PU LT

10、90 FD 100 RT 90 PD REPEAT 360FD 100*PI/180 RT 1 PU RT 90 FD 50 PD FILL FD 50 LT 90 WAIT 50 CQ1 :C+1END方法二:方法二:TO CQ2 :C IF :C15 STOP SETPC :C (STAMPOVAL 100 100 TRUE) WAIT 50 CQ2 :C+1END3、画出一幅多彩七巧板 (如右图)。TO QQB :B DRAW HT SETPC 9 RT 45 FD :B RT 135 FD :B*1.4142 RT 135 FD :B PU RT 135 FD :B/4 PD FILL

11、 PU BK:B/4 RT 45 PD SETPC 2 FD :B RT 135 FD :B*1.4142 RT 135 FD :B PU RT 135 FD :B/4 PD FILL PU BK :B/4 RT 135 PD SETPC 14 FD :B/2 RT 135 FD :B/2*1.4142 RT 135 FD :B/2 PU RT 135 FD :B/8 PD FILL PU BK :B/8 LT 45 PD SETPC 3 REPEAT 4FD :B/2 LT 90 PU LT 45 FD :B/8 PD FILL PU BK :B/8 LT 45 FD :B/2 PD SET

12、PC 11 FD :B/2 RT 135 FD :B/2*1.4142 RT 135 FD :B/2 PU RT 135 FD :B/8 PD FILL PU BK :B/8 RT 45 FD :B/2 RT 45 PD SETPC 13 REPEAT 2FD :B/2*1.4142 RT 90 RT 45 FD :B PU BK :B RT 22 FD :B/8 PD FILL PU BK :B/8 LT 22 PD SETPC 12 REPEAT 2FD :B/2 LT 135 FD :B/2*1.4142 LT 45 PU LT 45 FD :B/8 PD FILL PU BK :B/8

13、 RT 90 FD :B/2*1.4142 LT 90 PD SETPC 0 REPEAT 4FD :B*1.4142 LT 90 PU HOME PDEND4、画出多层重叠的彩色正方形 (如右图,随机色彩)。第一步:TO ZFD1 :B HT LT 90 REPEAT 4FD :B/2 RT 90 FD :B/2 RT 90END第二步: TO ZFD2 :B IF :B20 STOP SETPC RANDOM 14 PU FD 10 PD ZFD1 :B PU FD :B/2 PD FILL PU BK :B/2 PD ZFD2 :B-20END ?DRAW FS ZFD2 2005、画满天的星星。命 令全 称 说 明赋 值MAKE “X (表达式)把表达式的值赋给变量。表达式可用具体数字或算式。求随机数RANDOM :X产生一个从1X之间(包括1和 X)的随机的整数TO MTXX :N DRAW FS HT XX :NENDTO XX :N IF :N1 STOP MAKE X 315-RAND

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论