二、新知传授,实践探究
1、了解“递归调用”
任务一:看图形,找规律
请同学们看屏幕,看看这张小海龟画的是一个什么样的图形?它有什么规律没有?
(运用广播教学软件,写一组命令,小海龟的运行过程)[反复的运行程序]
说说看,通过你的观察,你发现了什么?
生:小海龟每画完一条多边形的边就会增加他的边长,所以画的图形越来越大,成为了螺旋图。
如何用命令来实现呢?
Fd 20 rt 120
Fd 30 rt 120
Fd 40 rt 120
Fd 50 rt 120
Fd 60 rt 120
……………
可不可以用重复命令呢?
生:不行,因为小海龟的步长在变。
师:同学们,我们在数学中有未知数X,它是一个变量,在我们Logo语言中也可以设置一个变量,也就是我们经常所说的参数。现在我们一起来看看小海龟画三角形螺旋图用的积木。
to lxsjx :a [定义过程lxsjx与变量A,A是指三角形的边长]
fd :a rt 120 [画三角形的一条边,并转角120度]
wait 3 [等待3秒]
lxsjx:a+10 [三角形的边长增加10]
end [过程lxsjx定义胜利]
注意:第四条命令调用了lxsjx这个过程。
过程自身是可以进行自我调用的,这种过程的自我调用就叫做“递归调用”。而“递归调用”的命令出现在程序段最后(END命令上面一行)一般称为“尾递归”。
在命令行中输入:lxsjx后,小海龟就会自动执行命令。(出示课件,出现程序流程图)
任务二:画出螺旋三角形
2、实践体验,了解小海龟画图思路
输入螺旋三角形的命令,调用看看,是否画出了螺旋三角形?
[同学输入命令操作,师巡视辅导]
生提出问题:怎么样才干让小海龟停止画呢?
小海龟重复不时的对过程进行“递归调用”,就会不时地重复下去,要想停止,按CTRL+G键。
3、新知讲解,实践体验
有没有一种更好的方法来解决这个问题呢?
接下来我们认识一个“条件命令”:IF(条件表达式) THEN (命令) (出示课件)
条件命令:
to lxsjx :a [定义过程lxsjx与变量A,A是指三角形的边长]
IF:a>150 then stop [假如边长大于150,则停止]
fd :a rt 120 [否则:画三角形的一条边,并转角120度]
wait 3 [等待3秒]
lxsjx:a+10 [三角形的边长增加10]
end
(出示程序流程图)
在电脑中输入这组命令试试看,小海龟听话不?
任务三:运用条件命令,画出螺旋三角形
[同学动手操作,教师巡视辅导]
4、实践拓展
任务四:P37页三种螺旋图的积木
考虑:转角的度数是依据什么?
[同学实践操作]
转角的度数 三、反馈交流
各组交流P37页螺旋图的积木画法。]
转角的度数是依据图形的边形和内角来决定的。
四、我们的收获
完成P38页的自我评价活动