递归算法实例及程序实现-全国获奖.docxVIP

递归算法实例及程序实现-全国获奖.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《递归算法及其实现》教学设计

温州翔宇中学杨永孟

一、教材分析

《递归算法及其实现》是选自浙江教育出版社出版、陶增乐教授主编的《算法与程序设计》第五章第五节内容,也是整本书最后一节内容。通过学习递归算法可以培养学生“大事化小,小事化了”的递归能力,而学习递归算法的程序实现则是前面所学的自定义函数的具体应用。

二、学情分析

教学对象是高中二年级学生,他们已经对“算法”有了深入了解,并初步掌握了基本的“VB”语言,又经过学习程序设计的各种结构,已经积累了用计算机编程解决现实中的问题的初步经验。在此基础上深入学习和体会递归算法的概念与应用,用自定义函数实现递归算法,对学生来说既充满吸引力,又是一次有一定难度的挑战。

三、教学目标

知识与技能:

1、理解什么是递归算法,学生用递归算法的思想分析问题

2、能够应用自定义函数方法实现递归算法的编程

过程与方法:

学生参与讨论,通过思考、动手操作,体验递归算法的方法

情感态度与价值:

结合数学中的实例,激发学生的数学建模的意识,培养学生多维度的思考问题和解决问题。

四、重点难点

重点:

理解什么是递归算法,学生用递归算法的思想分析问题

应用自定义函数方法实现递归算法的编程

难点:

应用自定义函数方法实现递归算法的编程

五、教学策略

由于本节理论性较强,知识又比较系统,所以采用目标教学法为主,辅以情境教学,增强学生对知识的理解记忆。为突出学生的主体地位,这节课,通过情景体验法来加深对递归法的认识,通过任务驱动法来实现递归编程,最后分层次达成教学目标,让不同层次的学生都能体会到用递归法解决问题的乐趣。

六、教学环境

多媒体教室,极域电子教室,VB,投影

七、教学准备

我专门准备了一个参考实例(求N的阶乘源代码)和一个待加工的半成品课堂任务,目的是为了学生在有限的课堂中能更清楚的了解算法与程序设计思想,不同层次的学生都学有所获。

八、教学过程

环节

内容

教学双边活动

设计意图

开门

见山

递归

定义

师:之前我们已经一同学习了四种算法,今天杨老师再来和大家分享一种新算法:递归算法。

师:展示课题《递归算法及其实现》

再展示本节课的四块教学内容:递归的定义、递归的要素、递归的过程及递归程序的实现。

师:定义一般是抽象化、理论化的,那么我们就先来看两张图片《神秘的箱子》和《蒙娜丽莎》,再通过“幸运选号器”随机选择一位同学来说一说这两张图片的共同点,初步认识递归,在此基础上引出递归的定义:在函数、过程的运行中直接或间接地调用自身的算法就是递归算法。

师:再结合“老和尚的故事”来突出“调用自身”的含义,同时顺手抛出:“老和尚的故事”是不是递归算法由此联系到“算法的特征”来进一步认识递归算法。

开门见山

点明课题

通过分析两张图片,初步认识递归。

联系“算法的特征”,进一步认识递归。

环节

内容

教学双边活动

设计意图

师生

探究

递归

要素

师:既然“老和尚的故事”不是递归算法,那么真正的递归算法是怎么样的由此引出递归的两大要素:递推公式和边界条件。

通常把一个大型复杂的问题通过“递推公式(也叫递归方程)”层层转化为一个与原问题相同或相似的但规模更小的问题来求解。当通过反复的调用,把问题的规模小到一定程度时,必须能直接给出问题的解,即有明确的结束递归的边界条件(也叫递归出口)。

师:以计算n!(n的阶乘)为例

归纳:n!=1(n=1)→边界条件

n!=n*(n-1)!(n1)→递推公式

循序渐进

结合阶乘的推导来辅助理解递归的要素

环节

内容

教学双边活动

设计意图

层层

推进

递归

过程

师:现在我们已经知道递归的两大要素,那么递归的具体过程又是怎样由此引出递归的两个阶段:递推阶段和回归阶段。

将原问题不断地分解为新的子问题,逐渐从未知的向已知的方向推进,最终达到已知的条件,即结束递归的边界条件,这时递推阶段结束。接着从已知条件出发,按照“递推”的逆过程,逐一求值回归,最终到达“递推”的开始处,结束回归阶段,完成递归调用。

师:以计算5!为例,展示递推和回归这两个阶段。

环环相扣

继续引用阶乘的例子来展示递推和回归

这里不用n!,而用5!演示会更直观易懂

环节

内容

教学双边活动

设计意图

启发

主体

程序

实现

师:学到这里同学们已经跃跃欲试,于是再结合已经相对熟悉的阶乘完整展示“从得出递推公式、确定边界条件,接着把它们翻译成VB语言,最后借助自定义函数来实现阶乘的计算”全过程。

给出完整的参考例子,为后面的课堂任务铺垫。

环节

内容

教学双边活动

设计意图

任务

驱动

课堂

实践

师:展示《孙大圣吃仙桃》

有一天孙大圣去蟠桃园摘了若干个仙桃,当即吃了一半还觉得不过瘾,又多吃了一个。第二天接着吃剩下仙桃中的一半,仍觉得不过瘾又多吃了一个,以后孙大圣

您可能关注的文档

文档评论(0)

haolaoshi520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档