课题名称】第三 第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 = Fn-1 + Fn-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题:用递归法求解两个整数的乘积。
    分析:可得递推公式Amn = M + Am(n-1)  ( 注:Am1=M×1=M )
    程序:Private Sub Command1_Click()
Function Amn(m As Long, n As Long) As Long
  If n = 1 Then
    Amn = m
  Else
    Amn = m + Amn(m, n - 1)
  End If
End Function
  Dim n As Long
  Dim m As Long
  Dim result As Long
  result = Amn(m, n)
  Text3.Text = result
End Sub
第2题:说说下面程序的功能
Private Sub Form_click()
  Call reverse
End Sub

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。