End if
End function
其中“tu =tu(month -1)+tu(month -2)”这行代码体现了函数自己调用自己,用递归法实现了问题,“If month =1 or month =2 then tu=1”这行代码体现了递归法的必要条件——结束条件。在此,为了让学生对递归法理解透彻,学生在做题时一定要清楚两点:一,要清楚自定义函数的作用,如例题中函数的作用是计算某一个月有的兔子对数;二,要清楚自定义函数如何自己调用自己的,以及整个程序的运行过程,学生的头脑中要有图2这样一幅图。
通过这题由简到难,通过学生自主探究,分析解决问题,通过教师提示讲评,学生对递归法这一知识点进行了巩固和完善。
课后我对这节课进行了反思:通过本节课的学习,由游戏引入课题,激发了学生的学习兴趣,整个教学过程课堂气氛很活跃,再由简单、典型的例题进行详细的剖析讲解,从学生完成任务的情况来看整堂课的教学能够完成教学任务,最后从简到难的例题讲评,帮助学生巩固完善知识,同时学生的自主探究,分析问题,解决问题的能力也得到了提高。学习递归法这一节内容,一定要杜绝学生对题目的死记硬背,一定要让学生对递归法理解透彻,这样才能熟练地运用递归法的思想去分析问题、编写程序解决问题。
最后建议教材上的例子简单化点,不仅仅是递归法这一节内容,像前面的“解析法解决问题”、“穷举法解决问题”例子都过于复杂了,就算让学生用学习了多年的熟悉的数学、物理去解,都解不出答案,那更不用说让学生去用刚学不久的相应的算法去解决问题了,这样会从一开始就把学生的兴趣降到最低,让学生对所要学习的相关知识产生抵触心理,从而影响教学效果。