《递归算法的实现》教学设计2

文档属性

名称 《递归算法的实现》教学设计2
格式 zip
文件大小 10.0KB
资源类型 教案
版本资源 教科版
科目 信息技术(信息科技)
更新时间 2009-12-14 16:52:00

图片预览

文档简介

递归算法的实现
教材分析
“算法的程序实现”是高中信息技术教育出版社《算法与程序设计》选修模块第三单元 的内容,本节课是“递归算法的程序实现”,前面学习了用解析法解决、穷举法解决、在数组中查找数据、对数进行排序以及本节的前一小节知识点“什么是自定义函数”的学习,,在学习自定义函数的基础上,学习递归算法的程序实现是自定义函数的具体应用,培养学生“自顶向下”、“逐步求精”的意识起着重要的作用。
学情分析
教学对象是高中一年级学生,前面学习了程序设计的各种结构,在学习程序设计各种结构的应用过程中的培养了用计算机编程解决现实中的,特别的学习循环语句的过程中,应用了大量的“递推”算法。前一节课学习了如何自定义函数,在此基础上学习深入学习和体会自定义函数的应用。以递推算法的逆向思维进行求解,在学习过程中体会递归算法的思想过程。多维度的思考和解决是提高学生的学习兴趣关键。
学 校 顺义一中 授课教师 屈海方 班 级 高一
授课时间 寒假培训 课 型 练习课 课 时 1
教学内容 递归算法的实现
教学目标 知识与技能目标:
1)、理解什么是递归算法
2)、学会分析任务,建立相应的递归式数学模型 3)、能够运用自定义函数的方法实现递归算法编程2、过程与方法: 1)通过描述生活中的例子和恰当的习题,使学生理解递归算法 2)通过练习,总结递归算法命题的规律3、情感态度与价值观: 1)结合数学中的实例,激发学生的数学建模的意识,培养学生多维度的思考和解决。
教学重点 1、理解什么是递归算法
2、如何建立递归算法的数学模型
教学难点 运用自定义函数的方法实现递归算法编程
教 法 任务驱动、演示法、讲解法、小组合作学习
教 具 计算机房上机实习。
教师活动 学生活动 设计意图
直接引入新课1)提出新概念----递归 在定义过程或函数时又出现了调用本过程或者函数的成分,即调用了它自己本身,这称为递归。2)通过两个事例理解什么是递归①《老和尚讲故事》故事 从前有座山,山里有个庙,庙里有个老和尚会讲故事,讲什么呢?从前有座山,山里有个庙,庙里有个老和尚会讲故事…………… ②两面镜子互映(教师准备好两面镜子) 在每面镜子中都有对面镜子的像,同时在像中也应该有和像同样的场景…………,每个镜子中的像是什么样子呢?3)通过典型数学习题体会递归算法 有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁;问第4个人多少岁,他说比第3个人大2岁;问第3个人多少岁,他说比第2个人大2岁;问第2个人多少岁,他说比第1个人大2岁;最后问第一个人多少岁,他说是10岁,请问第5个人多少岁? 新课讲解(用递归算法解题的一般过程)-----以上题为例 10 (n=1) 步骤一、建立数学模型


F(n-1)+2 (n>1) F(n)=
步骤二、用 vb语言实现(采用自定义函数的方法) Functiong s (byval n as integer) As Integer If n=1

(这部分知识以学生填空的形式给出) then s=10 else s=s(n-1)+2 end if end function
认真听讲



脑海中勾画出故事的画面,体会什么是递归。
回答计算的结果,并简单阐述解题过程

分析实现过程建立数学模型
学生自己尝试写代码。没有思路的同学根据老师的提示,完成填空题。 体会算法的实现过程
从递归算法的概念出发,让学生从故事和实践活动中体会递归法的内涵,加深对递归思想的理解。 通过一道简单的数学题,让学生很快体会到了用递归思想的解题的过程。 使学生由对概念的理解转成实际应用,有利于学生的很快掌握
与同学熟悉的函数相联系,利用知识的迁移使学生很快的掌握了这部分知识。


没有马上给出结论,使学生处于积极思考的过程中,便于学生理解掌握。
练习(基础题)有一天小猴子摘若干个桃子,当即吃了一半还觉得不过瘾,又多吃了一个。第二天接着吃剩下桃子中的一半,仍觉得不过瘾又多吃了一个,以后小猴子都是吃尚存桃子一半多一个。到第10天早上小猴子再去吃桃子的时候,看到只剩下一个桃子。问小猴子第一天共摘下了多少个桃子


1 (day=10)


(Tao(day+1)+1)*2 (day<10)Tao(day)=

Functiong tao (Byval day as integer) As Integer

(这部分知识学生做答) If day=10 then tao=1 else tao= (Tao(day+1)+1)*2 end if end function2)求N!(做的快的同学选做) 1*2*3*4…………*20的积,用递归的形式编程。(答案学生向教师索取) 学生认真做题。








请同学回答建立的数学模型和自定义的函数






有能力的同学做






加强练习,巩固知识。









分层教学,使有能力的同学始终处于积极思考的过程中
提高练习题 如果每对兔子每月繁殖一对子兔,而子兔在出生后第二个月就有生殖能力,试问第一月有一对小兔子第十二月时有多少对兔子? 提示:1、1、2、3、5………………由数列的规律建立数学模型 思考题 猴子运玉米棒:一只小猴将A处的一堆玉米棒运往B处,它每次可能运一只或两只。写一函数求n只玉米棒运完共有多少种运送方式? 思考、分析、讨论 培养学生分析、解决能力,煅练学生“数学建模”建构主义的学习观认为:学习不是被动接收信息,而是主动地建构意义,以自己原有的知识经验为基础对外部信息进行主动地选择、加工和处理,人而获得自己的意义过程
总结:1、递归算法解题关键是建立数学模型。
2、 递归命题的规律递归初始条件(递归出口)递归公式(关键)递归结束条件
板书: 递归算法的实现
递归算法定义

(day=10)
调用了它自己本身

二、填空
1)Functiong s (byval n as integer) As Integer 2)tao(day)=
(day<10)
If n=
then s=
三、递归命题的规律
1)初始条件(递归出口)
2)公式(关键)
3)结束条件
else
s=
end if
end function
同课章节目录