当前位置:首页 >> 其它课程 >> 高中《算法与程序设计》中的递归算法

高中《算法与程序设计》中的递归算法


高中《算法与程序设计》中的递归算法 《算法与程序设计》是高中信息技术中重要的选修课之一。课 程中涉及多种算法,比如:解析法、穷举法、递归法等,其中递归 法教师最难讲解,学生也最不容易理解,很多师生对递归法望而却 步。在此,笔者结合自己的上课实践与大家共同探讨递归算法的教 学。 一、明确教学目标 新课标指出: “算法部分旨在使学生进一步体验算法思想,了解算 法在解决问题过程中的地位

和作用,并能从简单问题出发,设计解 决问题的算法。 ”递归算法的教学目标是学会用递归算法的思想分 析问题。为了实现该目标,很多教师从递归函数代码的理解出发带 领学生学习递归算法,而代码的反复调用很容易给学生理解造成困 难。笔者认为指导学生利用递归思想来分析问题是最重要的,理解 了递归思想以后,代码的编写就变得相对容易了。 二、学生知识准备 所有的知识都不是空中楼阁,必须有一定的前期知识准备。学生 开始学习递归算法前应该已经熟练掌握了顺序结构、分支结构、循 环结构,对程序设计语言有了一定的了解,能解决一些有一定难度 的程序,有一定的分析问题的能力。而且,学生应该已经掌握了自 定义函数,包括函数名、函数参数、函数参数之间的传递等知识。 三、理解递归过程 兴趣是最好的老师,越难理解的知识点越需要抓住学生的兴趣点。 对于递归算法的学习,我们可以先让学生玩“汉诺塔”游戏。让他 们把塔盘从少到多慢慢增加,一边玩一边总结游戏攻略。通过老师 的引导及动画课件,学生应该可以总结出“n 个塔盘从 a 移动到 c” 的问题可以转换成三个小问题:1.把 n-1 个塔盘从 a 移动到 b;2. 把第 n 个塔盘从 a 移动到 c;3.把 n-1 个塔盘从 b 移动到 c。教师 只要适时地加以总结: “要想解决复杂问题,可以先把复杂问题转 化成简单问题,把问题化解到最小,简单问题解决了,那复杂问题 也随之解决。 ”并给出递归算法的概念: “直接或间接调用本身的算 法” ,以及递归算法的核心思想:递归分为两个部分,一是递推: 大事化小;二是回归:由小及大。当然,教师也可以用“从前有座 山”这个大家耳熟能详的故事加以补充说明。 四、把握分析思路 在学生初步了解递归思想后,教师不应急着进入代码的讲解,可 以引导学生用递归思想来分析问题, 从简单到复杂, 从具体到一般。 可以从分析求 5!开始,分析并总结出求 n!的方法。在讲解的过 程中,教师可以借助黑板来板书分析思路。 (如图) 当分析完 5!的求解过程以后,教师可以让学生分析讨论出数学模 型,其中包括:递归公式和边界条件 这是一个典型的双分支选择结构语句,可以用 if 语句来实现。 五、结合分析完成代码 在学生分析透彻以后,可以让学生试着根据以往的函数知识完成 代码的编写。这时可以利用“半成品”的形式,主要是让学生填写 递归函数的主体(判断语句) 。然后,教师结合代码再次说出递归 的过程, 学生的印象就很深刻了。 这里学生可能会在两个地方出错: 1.写成 fac(n)=fac(n-1)*n,解释:函数的调用只能在表达式 中,而等号是赋值语句,左边只能是变量而不能是表达式。2.函数 数据类型和接受返回值的变量数据类型不符,解释:赋值语句等号 左右两边数据类型必须相同。 六、适时巩固知识 n! 数学模型讨论出以后, 学生和教师一起经历了问题分析的过程。 这时教师可以适当小结递归概念、递归核心思想、递归边界条件, 来帮助学生巩固所学知识。 然后,学生可以用斐波那契数列来进行练习。之所以用斐波那契 数列来练习,是因为这个数列学生能很快找到规律,但又因为

更多相关文档:

《算法与程序设计的递归算法与递归程序》说课稿(高中信息技术精品)

《算法与程序设计的递归算法递归程序》说课稿 一、说教材 (一)说教材的地位和作用 本节课内容选自粤教版《算法与程序设计》选修 1 中第四章第五节, 隶属...

《算法与程序设计的递归算法与递归程序》说课稿

《算法与程序设计的递归算法递归程序》说课稿 一、说教材 (一)说教材的地位和作用 本节课内容选自粤教版《算法与程序设计》选修 1 中第四章第五节, 隶属...

高中信息技术 算法与程序设计-递归算法的实现教案 教科版

高中信息技术 算法与程序设计-递归算法的实现教案 教科版_初二政史地_政史地_...在他的著作《算盘书》中许多有趣的 问题,最富成功的问题是著名的“兔子繁殖...

高中信息技术_算法与程序设计-递归算法的实现教案_教科版

高中信息技术_算法与程序设计-递归算法的实现教案_教科版_其它课程_高中教育_...在他的著作《算盘书》中许多有趣的 问题,最富成功的问题是著名的“兔子繁殖...

高中信息技术_算法与程序设计题库(含答案)

高中信息技术_算法与程序设计题库(含答案)_其它课程_高中教育_教育专区。算法与...在该工程代码窗口指定的位置中编写代码实现:若 a 大于 0,则 i 的值为"正数...

浙江高中算法与程序设计学生活动手册答案

浙江高中算法与程序设计学生活动手册答案_其它课程_高中教育_教育专区 暂无评价|0人阅读|0次下载浙江高中算法与程序设计学生活动手册答案_其它课程_高中教育_教育专区...

高中信息技术《算法与程序设计VB(选修)》

高中信息技术《算法与程序设计VB(选修)》_其它课程_高中教育_教育专区。高中信息...3、递归法:如果一个函数自己调用了自己,这种算法叫递归算法。例如函数 A 自己...

高中算法与程序设计实践指导参考答案

高中算法与程序设计实践指导参考答案_高三数学_数学_高中教育_教育专区。VB实践指导答案高中算法与程序设计实践指导参考答案(第二章) 第一节可视化程序开发工具(P10-...

递归算法的实现

递归算法的实现_其它课程_高中教育_教育专区。高中信息技术 递归算法的实现【课标...【教材分析】“算法的程序实现”是《算法与程序设计》选修模块第三单元的内容,...
更多相关标签:
高中算法与程序设计 | 汉诺塔递归算法程序 | 如何设计递归算法 | 递归算法设计 | 算法与程序设计 | 分形算法与程序设计 | 算法与程序设计ppt | 程序设计的典型算法有 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com