螺号声声

——过程的递归调用与条件判断

关于《信息技术过程的递归调用与条件判断》的教学设计和反思(通用1篇)

教学目标:

1、理解递归调用的定义及应用,并能熟练运用递归调用画出精妙的图形。

2、学会暂停和终止“过程”运行的三种*作。

3、正确认识二种条件判断语句的格式及区别,并能使用它们判断控制“过程”的执行。

4、理解条件运算符的作用和“真”、“假”逻辑值的概念。

教学重、难点:

1、学会暂停和终止“过程”运行的三种*作。

2、正确认识二种条件判断语句的格式及区别,并能使用它们判断控制“过程”的执行。

教学方法:

教学法、演示法、练习法、讨论法

教具、学具:

电脑、演示图案

教学过程:

一、复习导入

1、复习教材37页图7.2.

2、前面我们已经学会了很多画图的知识,通过运用所学的知识使我们画的图越来越美丽了,荀子说过“学不可以已也”,我们是不是就满足所学的那点知识呢?相信大家一定不会的,我们要不断的学习新知识,让我们经验越来越丰富,作的图越来越美丽。今天我们就一起来学习新知识“过程的递归调用与判断”。

谁会讲故事“从前有座山……”

二、新授课

1、展示:准备的课件图案。

这些图美不美?你知道它们是怎么画的呢?要不要试一试。

2、递归调用

在学习画图之前,我们首先要学习一个熟语“递归调用”。一个过程不但可以调用别的过程,还可以调用自已本身,我们把这种调用称为递归调用。

例:

toyuan:r

setpc6

repeat36[fd2*pi*:r/36rt10]

end

tohailuo:r

yuan:rrt10

hailuo:r+1

end

说明:

(1)过程hailuo每次调用yuan画出一半径为:r的圆后,就旋转10°,再调用自已本身画出一个更大的圆。

(2)过程的递归调用,不仅使过程本身被重复调用,而且可以实现过程中的变量有规律地变化。

3、让小海龟适可而止

在执行以上的过程中,我们会看到一个“重画缓冲区已满,部分图形将被丢失”(教材43页图8.2)的对话框,原因是什么呢?

从上面的过程可以知道:过程不断地调用它自已(递归调用),就会无限地执行下去。

那么我们怎样让小海龟“适可而止”,停下来歇会呢?我们来了解一下以下几种让过程停下来的方法:

(1)单击工具栏上的“中断”图标,过程终止运行;

(2)单击工具栏上的“暂停”图标,过程暂停运行。要让过程继续运行,再单击工具栏上的继续图标。

(3)按住键盘上的ctrl键不放,再按g键,过程就停止运行。

这几种方法都需要我们手动干预,我们可不可以加入一个命令让它停下来呢?

在hailuo过程中递归调用前增加一条使用条件判断命令的语句就行了。格式如下:

if<判断条件>then<命令>

功能:当判断条件成立时,先执行then后面的命令,再执行过程中的下一条命令。

例:

if:r>68thenstop

stop命令是终止当前过程的运行,这个判断条件是指组成小螺号的半圆超过68时,绘图立即停止。

例画四边形(图8.3第2图)螺旋线的过程:

tosblx:b

if:b>150thenstop

fd:brt360/4

sblx:b+10

end

(运行的格式:sblx10)

教材43页图8.1停止的格式为:

toyuan:r

setpc6

repeat36[fd2*pi*:r/36rt10]

end

tohailuo:r

if:r>80thenstop

yuan:rrt10

hailuo:r+1

end

(运行格式为:hailuo1

说明:在运行的过程中,要输入的数据不在过程中,而是在按f2键后出现的命令窗口中的过程名后输入适当的数字。

提示:

(1)判断条件中可以使用的条件运算符号有:>>=<<=等。

(2)条件判断命令还有一种格式:if<判断条件>then<命令1>else<命令2>。它的功能是:当判断条件满足时,执行then后的“命令1”,否则就执行else后面的“命令2”。也就是“命令1”或“命令2”必须选择执行其中的一条,然后才执行过程中的下一条命令。

3、观看海龟的表演

海龟的表演太快了,我们甚至来不及看清它是怎样画的,同学们一定很好奇吧?那么我们能不能用一个命令来控制海龟的画图呢?如果能用一个命令来控制,让我们能清楚地看到海龟表演的过程,那该多好呀。

其实,这种想法是可以实现的,我们可以在hailuo过程调用它本身之前加入一条wait命令(如:wait10),让小海龟执行完一次递归调用后休息一会儿,再执行下一次递归调用,这样我们就能慢慢地观看小海龟表演了。

例教材43页图8.1停止的格式:

tohailuo:r

wait50

if:r>80thenstop

yuan:rrt10

hailuo:r+1

end

同学们可以执行该过程体验一下,要想让小海龟走慢一点,我们就把wait后面的数字设置大一点,如wait100就比wait50慢,呵,有越吧。

提示:

我们已经学了不少命令吧,它们的格式和作用你是不是都记得呢?如果记不得,那我们该怎么办呢?

别急,只要你还记得命令的名称就可以了,“用?命令名”来*出这条命令的帮助窗口,十分方便的。不过,要看看你的英文功底啊?加油吧!如:

?fd(按回车键就会*出一个帮助窗口)

三、巩固练习

学生分组复习本节课讲的内容,互相交流讨论,看看你还能不能利用递归调用知识设计出别的图形来。

四、作业

有余力的学生可以合作完成教材4546页创伤天地中的两个大题。

参考过程:

第1大题:

第一图:

tolxx:a:b

setpc10

fd:alt:b

if:a>200thenstop

lxx:a+2:b

end

说明:在执行这个过程时,除了在命令窗口中对“lxx:a:b”格式要输入数字外,还应该在编辑窗口中对“lt:b”命令的转向角度确定。如画一个六边形的递归调用为:

tolxx:a:b

wait50

setpc10

fd:alt60

if:a>200thenstop

lxx:a+2:b

end

(执行格式为:lxx1010)

在这个过程中,就可以画出三个甚至更多的类似图形,只是在转向的度数上有差异,如120度就是三角形;90度就是四边形即第二图,180度就是第三图。

如果你有兴趣,你可以试一试这个过程:

tolxx:a:b

wait50

setpc10

fd:alt120rt10

if:a>200thenstop

lxx:a+2:b

end

说明:这个过程在第一次右转的后面又进行了第二次右转,度数因自已而定,就显示出了一种另外的效果,有趣吧?一个过程,可以变换不同的参数、角度、进行不同的转向等都可以得到另外的效果。

第二图:

tosblx:b

if:b>150thenstop

fd:brt360/4

sblx:b+10

end

(运行:sblx40)

第三图:

tolxx:a:b

wait50

setpc10

fd:alt90lt2

if:a>200thenstop

lxx:a+2:b

end

提示:细心的小朋友一定会发现,三个图都是用一个过程来执行的,只是在执行过程中的参数发生了变化而已。

第2大题

toyuanhu:r

repeat18[rt5fd30*pi/18rt5]rt180

end

tothl:r

if:r<5rt90fd70bk70rt90stop

yuanhu:r

thl:r3

yuanhu:r

end

(运行:thl5)

提示:在这个过程中,需要对“repeat18[rt5fdr*pi/18rt5]rt180”需要对命令中的r确定一个数字,如确定数字为30时“repeat18[rt5fd30*pi/18rt5]rt180”

教学反思:

在本节课的教学中,如果讲得太多,太杂,就会让学生觉得很困难,失去学习兴趣。所以从展示自已设计的图形入手,让学生先轻松地观赏。激发起学生兴趣后就可以选择一个来讲解。重点就放在一个图案上,让学生反复练习,熟练掌握。然后在一个过程中变换不同的量来观察一下不同的效果。至于其他的图案过程,教师可以提供出来作学生选学,学有余力的学生可以*完成,也可以合作完成。不过,最好是合作完成,因为他们*完成的难度大,易出错,并且一旦出现了错误的时候,就很难调整了。所以后面的创伤天天的很多过程,教师只作参考*的提供,学生可尝试。