高中信息技术第7课:第四节递归法优秀教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【课题名称】第三章第4节——递归法
【目标要求】
1.知识与技能:探源斐波那契数列的生成规律,理解递归函数的构造技能。
2.过程与方法:认知用归纳法对探索规律的技巧,掌握递归函数的编写。
3.情感态度与价值观:通过免子问题认知由递推公式所表达的数列的某项数值求解的方法问题。
【重点难点】
重点:免子问题的分析与递归函数编写的正解。
难点:递归函数的调用运行的根本原理。
【策略与方法】
通过对免子繁殖的逐月分析,归纳每月免子总数的生成规律,进而获得一个递推公式,由此作为编写递归函数的重要依据。
最后通过一个较小数5为例来分析递归函数调用的根本原理。
【实施过程】
一、提出问题
一位农夫养了一对小兔子,他发现小兔子在出生的第二个月就长成了大兔子,每对大兔子每月可繁殖一对小兔子。
如果一年内没有发生死亡的话,那么一年后这个农夫将有多少对兔子?
能否编程来帮助农夫求解答案呢?
二、问题分析
1.尝试列出每个月的兔子对数:
第n个月 1 2 3 4 5 6 7 8 …
小兔子 1 0 1 1 2 3 5 8 …
大兔子0 1 1 2 3 5 8 13 …
总数 1 1 2 3 5 8 13 21 …
2.仔细观察,推断出其中的规律。
假设Fn表示第n个月的兔子对数。
F1=1,F2=1,F3=F1+F2,……,则有 Fn = F n-1 + F n-2
三、设计算法。
输入月数n
如果n=1或n=2,那么 Fi(n)=1
否则 Fi(n) = Fi(n-1) + Fi(n-2)
打印Fi(n)
四、编写编程。
1. 新建工程,完成界面设计。
2. 编程代码。
Private Sub Command1_Click()
Dim n As Long
Dim result As Long
result = Fi(n)
Text2.Text = result End Sub
Function Fi(n As Long) As Long If n = 1 Or n = 2 Then Fi = 1 Else
Fi = Fi(n - 1) + Fi(n - 2) End If End Function
五、调试运行程序。
1. 按F8键逐句运行程序,观察程序的执行过程,记录递归函数的调用情况。
2.
六、加大输入的月数,观察程序的运行情况。
七、体验活动〔P144〕
第1题:用递归法求解两个整数的乘积。
分析:可得递推公式A mn = M + A m(n-1) ( 注:A m1=M ×1=M ) 程序:Private Sub Command1_Click()
Dim n As Long
Dim m As Long
Dim result As Long
result = Amn(m, n)
Text3.Text = result
End Sub 第。