条件判断命令还有一种格式:IF<判断条件>THEN<命令1>ELSE<命令2>。它的功能是:当判断条件满足时,执行THEN后面的“命令1”,否则就执行ELSE后面的“命令2”。也就是“命令1”或“命令2”必须选择执行其中的一条,然后才能执行过程中的下一条命令。
第2课时 3、观看海龟的表演
总想看看小海龟是怎样一笔一笔地绘出美丽的作品的,可是它爬得也实在是太快了。不过我们可以在hailuo过程调用它本身之前加入一条Wait 命令(如Wait 10),让小海龟执行完一次递归调用后休息一会儿,再执行下一次递归调用,这样就能好好欣赏小海龟的表演了。
格式:Wait 休息时间数
功能:让小海龟休息一会儿,再接着执行下一条命令。
智多星:学了这么多条命令,有些命令的格式或作用记不清了,怎么力?别着急,只要你还记得命令的名称就可以用“? 命令名”命令来弹出这条命令的帮助窗口,十分方便,只不过你的英文得为你争气,实在不行就只好猜一猜了。
提问:条件判断语句能不能放在hailuo过程中的递归调用之后呢?如果想画个比图8.1更大或者更小的螺号,上面的过程又该如何修改呢?
三、知识着陆
“递归”真的很神奇,居然能自己调用自己,这样就能很容易地画出有规律变化的图形。不过可别忘了加一句条件判断语句,否则小海龟会很老实地一直“忙”下去,大家总不忍心让它累着吧?如果再加上Wait命令,你就可以很清楚地看到小海龟的绘画过程了。
四、视野拓展
“递归”是一种非常奇妙的算法(计算机解决问题的方法),也是编写程序时经常要用到的一种算法。奇妙的背后是比较难于理解,但用起来却异常简洁的思想。
说白了,递归就像我们小时候最常听的那个老掉牙的故事:“从前有座山,山上有座庙??”也就是直接或间接调用了调用者自身,就像上面的故事那样,故事中引用了故事本身。生活中很多事物就是这样,既那么深奥又那么简单。
五、创作天地(作业)
1、 图8.3中的三条奇妙的曲线都是用一个递归过程绘制的,只不过调用过程时使用了不同的参数,还真想不出除了“递归”,我们还有什么方法能画出如此简洁的美妙曲线?请大家一起来编写这个过程,并试着更换参数看一看还能用它画出哪些图形。 2、 “糖葫芦好看竹签儿穿,象征幸福和团圆。”画一串冰糖葫芦。
六、课后反思:
第9课 杨柳青青
——多龟作图
教学目标:
1、学会用SETTURTLES命令设置绘画的小海龟的数目。 2、用TELLALL、TELL和EACH命令激活小海龟进行绘画。 3、会用TURTLES和WHO命令查看小海龟的当前状态。 4、提高学生逻辑思维的缜密性。 教学重、难点:
重点:掌握多龟作图命令的格式及作用。
难点:激活并指挥不同编号的小海龟完成各自的绘画任务。 教学课时安排:2课时 教学过程:
第一课时 一、 任务导航
当春风轻轻吹起,杨柳就开始透露出春的气息。当柳哨吹响,那融融的春意就随着哨音满世界飘荡。让我们一起来画出柳树姑娘那长长的辫子,让春风吹动它在池塘里轻轻摇曳,多么清爽,多么美丽!
二、教授新课 1、 先画柳叶
第7课我们学习了如何画花瓣,其实画叶子的过程和画花瓣几乎是一样的,看一看能不能很快写出来。
TO zuoye
Repeat 2 [Repeat 6 [FD 2*PI*30/36 RT 10] RT 180-60] END
TO youye
Repeat 2 [Repeat 6 [FD 2*PI*30/36 RT 10] RT 180-60]
2、再画柳枝
柳枝也不难画,只要想到叶子与叶子之间的部分也是一小段半径很大的圆弧就可以了。
TO hu
Repeat 1 [FD 2*PI*666/120 RT 3] END
TO liuzhi1
Repeat 5 [hu zuoye hu youye] END
TO liuzhi2
Repeat 4 [hu zuoye hu youye] END
第二课时
3、画出青青柳条
这么多条柳枝都让一个小海龟来画,会把它累坏的。大家一定会想起齐天大圣孙悟空,拨一根毫毛,吹出小猴万千,要是小海龟也有这么大的法术就好了。别小瞧人,小海龟确实能分出32767只小海龟
呢,怎么样,厉害吧!不过,这需要用setturtles n(n的取值范围是1到32767之间的整数),否则就只有16只小海龟原地待命了。
格式:setturtles n
功能:分身出n只会画画的小海龟。
例如:命令setturtles 20可以分身出20只小海龟,它们从0开始编号,分别为0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19。
输入setturtles命令可以随时查看有多少只小海龟正在原地待命。
有的同学可能着急了:“这么说,最少也有16只小海龟可供我们指挥,那么每次发出的命令却只有一只小海龟去执行,剩下的连点影子都看不见呢?
原来,海龟都比较贪睡的,平时只有0号海龟处于活动状态,可供调遣,其余的海龟都在呼呼大睡呢。想叫醒它们画画,必须用TELLALL。
格式:TELLALL n1 n2 功能:同时叫醒编号从n1到n2的海龟,让它们执行后面的命令。 例如:TELLALL 0 15将叫醒编号为0-15的小海龟一起同时画画。 我们还可以用WHO命令查看一下当前有哪些醒着的小海龟。 设置并叫醒多只小海龟后,就可以指挥它们同时作画了。 DRAW TELLALL 0 15 SETPC 10 SETW 3 PU LT 45 FD 250 RT 135
这些小海龟都挤在一块,怎么画画?现在我们先让它们一字排开。
EACH [FD 35*WHO] RT 90 135 PD
EACH [命令列表]命令指挥每一只醒着的小海龟同时执行列表中的所有命令,通常与WHO命令配合使用,以便使不同编号的小海龟分别以自己的编号为参数执行相应的命令。上面这条命令指挥2号海龟前进70步,3号海龟前进105步,??。
接下来要让奇数列和偶数列的各8只小海龟分别执行过程
liuzhi1和liuzhi2,画出整幅图,这时候要用到TELL命令而不是TELLALL命令。
格式:TELL [小海龟的编号表]
功能:只叫醒并指挥编号表列出编号的小海龟作画,而让其余的海龟继续睡觉。
TELL [0 2 4 6 8 10 12 14] LT 5 liuzhi1
TELL [1 3 5 7 9 11 13 15] LT 9 liuzhi2
小知识:
无论是命令列表还是小海龟的编号表,都必须写在方格括号内,且之间要用空格隔开。青青柳枝图画好后,大家认真总结一下吧。 三、知识着陆
小海龟们真是不够团结,总是让0号海龟独自干活,其他的天天睡大觉。这样不行,我们得用SETTURTLES和TELLALL命令把它们都叫起来,谁想偷懒,就用TURTLES或WHO命令查出它,人多力量大嘛。不过同时指挥这么多小海龟协同作画,让谁工作,让谁休息,一定要安排得井井有条,这对我们大家可是一个不小的考验。
四、视野拓展
指挥一只小海龟画复杂图形既慢又麻烦,许多只小海龟一起协作绘制要简单高效得多。现在计算机的处理速度越来越快(每秒种运算上亿次或更高),但对于地质勘探、天气预报、遥感图像分析等大量信息处理,仍需耗费很长的时间,由此大规模并行处理计算机应运而生。所谓并行处理,是相对于串行(即顺序执行)处理而言的,它采用多到几千个处理单元在同一时间协作运行以完成同一任务。其中,每个处理单元都配备有自己的存储器、磁盘、操作系统和众多应用软件的副本。当一个处理任务单元分别处理计算机时,它的系统软件就把这个任务分成很多个部分,每个处理单元分别完成其中的不同部分,分工协作,大大缩短了处理时间。这就好比人们要去挖一条长1000米的沟,一个人每小时可以挖10米,10个人即可挖100米,100个人一起挖,那么这条沟一个小时就挖完了。
五、创作天地