c语言的递归算法流程图,递归法_C语言递归法_递归算法经典实例
學知識,解決實際問題。
(3)從簡單問題出發,逐步增加難度,增強解決問題的能力。
情感態度與價值觀:
(1)理解遞歸的意義,學會將大問題分解為小問題的思想方法。
(2)在解決問題的過程中進一步培養和提升學生的分析、歸納、總結、解決問題的能力。
(3)培養學生的主動探究分析解決問題的能力。
四、教學重點與難點
學習重點:
掌握
能針對具體問題找到遞歸出口、總結歸納出遞歸函數關系式。
學習難點:
正確高效的應用遞歸法分析、解決實際問題。
五、教學策略
情境教學法、分組討論法、任務驅動法
六、教學環境及資源準備
教學環境:
多媒體機房、因特網
教學資源:
課件、電子檔案袋
七、教學過程(可以用嵌套表格呈現具體內容)
教學環節(第1學時)
教師活動
學生活動
用時
新課導入
大屏幕展示一段視頻:(問題1)有5個人坐在一起,問第5個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第3個人,又說比第2個人大2歲。問第2個人,說比第1個人大2歲。最后問第1個人,他說是10歲。請問第5個人多大?
(設計意圖:利用學生的心理特性,激發學習興趣,引出遞歸的概念,導入新課。)
請同學簡單描述求解過程。
4
問題分析
引導學生回答問題
(1)遞歸必須有終止條件,終止條件是什么?
(2)列出問題1的遞歸關系式,age(n)函數如何定義?
(3)舉例說明,哪些實際問題適合使用遞歸方法解決?
回答老師問題
(1) 終止條件age(1)=10
(2) 函數為:
10 n=1
age(n)=
age(n-1)+2 n>1
(3)求階乘問題、猴子吃桃問題等。
8
算法設計
遞歸調用過程可以分為:先不斷調用(回推),再依次退回(遞推)。
上述遞歸調用過程表示如下:
學生在word中畫出函數的調用過程圖,將其存儲到電子檔案袋中:
5
編程實現
巡視教室,指導學生寫出正確的程序,具體代碼如下:
Public class ages
{
Static int age(int n)
{ if (n==1)
Return 10;
Else
Return n+2
}
Public static void main(String args[])
{ System.out.println(“age(5)=”+age(5);)
}
}
學生嘗試寫出程序代碼,不斷的修改,調試,直到運行無誤,將其存入電子檔案袋“我的作品”中,并以定稿形式發布。遞歸法(參照課本129頁,階乘程序代碼)
8
任務擴展
布置任務,教材第133頁“實踐與思考”第1題
教師給予指導。
自主分析,確定遞歸函數關系式和遞歸出口,試著寫出程序。遞歸法
12
討論、總結
1.學生通過分組討論,回答下列問題:
(1)符合什么條件的問題,適合使用遞歸法解決?
(2)遞歸算法的設計步驟分為四個步驟?
2.教師對學生回答,給予歸納、總結。
8
教學環節(第2學時)
教師活動
學生活動
用時
溫故知新
通過任務,回顧上節課知識:
(問題2)斐波納契(Fibonacci)函數問題。有一對兔子,從出生后第3個月起每個月都生一對兔子。小兔子長到第3個月后每個月又生一對兔子。假設所有兔子都不死,問第20個月兔子的總數是多少?
學生填表,回答問題,教師巡查指導(見“關鍵環節提煉”)
自主分析,完成下列問題:
(1) 歸納出遞歸函數
(2) 確定遞歸出口
(3) 填寫程序(關鍵環節提煉)
12
提出問題
大屏幕展示梵塔圖片,教師講述梵塔故事的來歷,以此引入新課。
(設計意圖:利用學生的心理特性,激發學習興趣,引導學生自己動手解決問題,并幫助他們分析問題、歸納問題。)
本文來自電腦雜談,轉載請注明本文網址:
http://www.pc-fly.com/a/jisuanjixue/article-25299-1.html
總結
以上是生活随笔為你收集整理的c语言的递归算法流程图,递归法_C语言递归法_递归算法经典实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 和菜鸟一起深入学习国嵌实验之简单Make
- 下一篇: 跨页数据传递的两种方式