全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言递归调用教学设计教学目标及依据:根据教学大纲和本节学习重点,结合学生知识现状, 使学生学会使用和设计递归函数去解决较复杂的问题。教学重点难点:递归函数的定义、递归问题的分类、递归函数设计的一般步骤理解递归函数的内涵、确定递归结束条件。搞清楚函数递归调用的运行轨迹和各层调用中参数和变量的值是真正掌握递归的关键。教学方法及依据:依照五星教学方法,结合游戏激发学习兴趣,巧解概念,然后进行例题分析,最后进行实验在解决实际问题中跟进一步的掌握知识。教学手段:多媒体课件及教学视频。教学课时:理论两课时+实验一课时教学过程:1、 激发旧识:在上课之前先让学生回去复习函数的知识,清楚的掌握函数的定义,函数的参数,函数的值,函数类型等知识为递归调用做好准备。2、 示证新知:在学生熟知已学过的函数知识后就可引出要学习的递归调用进行学习,这一步骤也是一个承上启下的关键,在这一部分中学生因在老师的带领下学习递归调用,在学习过程中可以结合游戏的方式来让学生来扮演递归运行轨迹中各层 次的调用函数通过学生之间的提问和回答来模仿函数之间传递的数据然后把游戏过程表示成递归公式。最后写出程序。通过这样的过程。学生很容易搞清 楚函数递归调用的运行轨迹和各层调用中参数和变 量的值从而能更好地理解和掌握递归。2.1递归函数的基本知识:在这一部分老师通过之前已经做好的课件给学生讲解递归函数的基本知识。2.1.1递归函数概念:递归函数即自调用函数,在函数体内部直接或间接地自己调用自己,即函数的嵌套调用是函数本身。2.1.2递归函数的形式:直接递归调用:函数中出现调用函数本身间接递归调用:间接递归调用是指函数中调用了其他函数而该其他函数却又调用了本函数。2.1.3递归条件:须有完成函数任务的语句个确定是否能避免递归调用的测试 一个递归调用语句先测试,后递归调用。 2.1.4设计递归函数分治法(分割求解)后置递归法回溯法分别讲授这三种方法的思想在接下来具体程序的讲解中再融会贯通2.2直接递归调用:在课堂授课时,教师在面对在座的一列学生时(假设这列学生有5名),问最后一名学生,即第5名学生。他和他前面这一列学生的年龄总和是多少(假设学生之间不知道相互的年龄),这时第5名学生要知道他和他前面这一列学生的年龄总和,就需先向他前面的第4名学生提相同的问题第4名学生又需向第3名学生提相同的问题,依次类推,直到最前面的第1名学生。这时第1名学生前面已无其他学生,这时他只需将自己的年龄告诉后面的第2名学生。第2名学生将前面同学的答案加上自己的年龄然后把结果告诉后面的第3名学生,依次类推,第5学生将第4名学生的答案加上自己的年龄,再告诉教师,教师就可以知道这列学生年龄的总和。上述游戏中求第n个学生和他前面这一列学生年龄总和的功能可用递归函数totalAge(n)来实现算法可表示为下面的递归公式。 返回myAge+totalAge(n-1) n1返回maAge n=1totalAge(n)=给出程序如下所示:#include #include int totalAge(int n1 /用于求第n个学生和他前面这一列学生的年龄总和 int total,myAge;,变量myAge表示第n个学生的年龄 printf(”进入totalAge(d)kn”,n); prinf(”请输入第d排学生的年龄 ,n); scanf(”dt,myAge); if(n1) total=myAge+totalAge(n-1); else if(n=l1/递归结束条件 total=myAge; printf(”从totalAge(d)qI1dkn”,n,tota1); getehO; retumtotal; voidmainO intm: prinf(”请输入该列学生的人数:”); scarf(“dt,m); if(m1)FtotalAge(n)= 返回myAge (n=1) 返回myAge+FtotalAge(n-1) (n1)MtotalAge(n)= 返回myAge (n=1)程序如下所示: #include #include int MtotalAge(int n); int FtotalAge(int n); int MtotalAge(int n) /用于求第n排男生处的结果 int myAge;,/变量myAge表示第n排男生的年龄 int total; ,/变量total表示第n排男生处的结果prinf(”进入MtotalAge(d)n”,n1; prinf(请输入第d排男生的年龄I1,n); scanf(”d”,&myAge); if(n1) total=myAge+FtotalAge(n-一11; else if(n=l1,/递归结束条件 total=myAge; prinf(”从Mt0talAge(d)中返回d、ll”,ntota1); getch0; returntotal; int FtotalAge(int n) /用于求第n排女生处的结果 int myAge;,/变量myAge表示第n排女生的年龄 int t0tal: ,/变量total表示第n排女生处的结果 prinf(”进入otalAge(d)kn,n); prinf(”请输入第d排女生的年龄I,n); scanf(”d&myAge); if(n1) total=myAge+MtotalAge(n-1); else if(n=11)/递归结束条件 total=myAge; prinf(”从Fl0ta ge(d)中返回d、ll”,n,tota1); getch0; retum total; void main0 int m: prlntf(请输入排数:”); scanf(”d,m); m=0) prinf(”学生不能少于1排!Xn”1) else printf(”学生的年龄总和为:dn,MtotalAge(m)+Ftota一 Age(m); 间接递归由于相对较为复杂执行过程中出现函 数调用的交叉和循环,所以这部分内容,很多教师不讲授我们通过游戏的方式使看起来复杂的过程变得生动和易于理解。可以通过以下图结合刚刚的程序和游戏更具体形象的给学生讲解。3、 尝试应用:在两个理论课时之后紧跟着安排上机实验巩固理论课上学到的新知识,在解决实际问题中得到提高。因为在理论课上引进通过游戏给学生具体的讲解了递归函数的注意事项和特点还有怎么设计一个递归函数,并通过游戏让学生也参与进来进行具体的程序讲解。所以在上机实验的时候可以再出几个类似的例子,但是,可以在难度上增加一点,这样可以让学生在解决实际问题中吸收新知识,达到能更好的运用解决实际问题的目的。4、 总结归纳:在上机实验结束前学生将自己设计的程序上交给老师,老师在审阅每个同学的作业后给予评价,指出学生在程序中表现出来的不足和亮点,给学生提出意见。最后针对整个班级的编程状态给出一个全面的建议,提出大多数人都会犯的错误,给出建议加以改进,最后交上一份比较完整的程序。5、 融会贯通:在最后课程实践中给出综合性强的题目让学生利用递归来设计程序实现实际问题中设计的功能,这样不仅仅是让学生掌握递归调用的知识还能将之前所学的知识都运用上起到一个整体融会贯通的效果自我评价:整体教学过程的框架和步骤基本上是根据五星教学法设计的,中间通过做游戏的方式引入递归的概念让学生来扮演递归运行轨迹中各层次的调用函数通过学生之间的提问和回答来模仿函数之间数据的传递使原来枯燥的教学变得活跃和有趣学生在游戏中轻松掌握了本来看似深奥和难以理解的知识点。游戏的穿插这也迎合了五星教学法的核心的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年【安全员-C证】报名考试及安全员-C证模拟考试题库及答案
- 食品线上考试试题及答案
- 核酸实验室(PCR)高危病原微生物溢洒事故应急演练方案
- 功能测试计划中的沟通频率与汇报安排
- 养老护理员失智老人营养搭配建议
- 个人职业发展计划与年度目标制定
- 无人机巡检操作员晋升通道及技能提升方案
- 审核发现整改有效性跟踪总结
- 教师招聘心理健康教育课程设计
- 电梯维护保养技术要点
- 2025时事政治热点题库附参考答案
- 2025年老年人驾考三力测试题库及答案
- 2025及未来5年中国人物彩灯市场分析及数据监测研究报告
- 2025消防宣传月启动宣讲课件
- 期中测试卷- 2025-2026学年英语五年级上学期 人教新起点版(含答案解析)
- 电石生产安全技术规定
- 2025至2030中国双臂机器人行业项目调研及市场前景预测评估报告
- 角磨机安全使用规范
- 中意人寿的岗前考试及答案解析
- 数字化技术在职业院校岗位实习管理与质量评价中的应用探究
- 黄褐斑培训课件
评论
0/150
提交评论