?

淺談《遞歸法的實現》課堂教學

2015-03-02 09:09金云江蘇省昆山經濟技術開發區高級中學江蘇昆山215300
現代教育科學·中學教師 2015年6期
關鍵詞:昆山兔子例題

金云(江蘇省昆山經濟技術開發區高級中學,江蘇 昆山 215300)

淺談《遞歸法的實現》課堂教學

金云
(江蘇省昆山經濟技術開發區高級中學,江蘇 昆山215300)

“遞歸法的實現”是教育科學出版社高中《算法與程序設計》 (選修)第三章第五節第三小節的內容。我對本小節教授制定了一定的教學策略,“從游戲來引入課題”,“從簡單、典型例題來講解知識”,“從簡到難來完善鞏固知識”,從而完成教學任務。

一、用游戲引入課題,激發學生興趣

我們學校學生的整體知識基礎比較低,“算法與程序設計”與數學又有很大的關聯,遞歸法對學生來說是非常難的,學生無法理解和想象。因此,我通過設計游戲,讓學生親身體驗,在歡快的氣氛中理解遞歸法。游戲內容:將一句詩“柳暗花明又一村”的七個字寫在七張紙上,請八個同學排成一排,七張紙依次貼在第一個到第七個同學的背后,每一個同學只能看前一個同學背后的字,從第一個同學開始依次問下一個同學是句什么詩,然后由最后一個同學開始依次告訴前一個同學他所知道的所有內容,最后第一個同學就能猜出是句什么詩了。這個游戲清楚明了地蘊含了遞歸法——遞推和回歸。前面學習了自定義函數,這個游戲用自定義函數可以這樣描述:

Private Function what(number).如果我是最后一個,我就告訴你是什么字;否則,我問了下一個同學后再一起告訴你End Function。這個函數的作用就是得到第number個學生知道的字,所以要知道這句詩是什么,就要不停地用這個函數,從而引出遞歸法就是函數自己調用自己。

二、用簡單、典型例題,分析講解知識

教材上用了兔子繁殖的例題來實現遞歸法,對學生來說是比較難的,就算是讓學生用數學的方法來做,學生也不一定能正確的算出答案,更不用說用剛學習的遞歸法了,并且在這個程序中用到了在函數中兩個同時調用函數自己,那對學生來說就是難上加難了,所以我就用簡單、典型的例題來講解,幫學生一起用遞歸法來分析問題。例:計算5!。這個題如果讓學生用數學來做是非常簡單的,人人都會,這樣再用遞歸法來分析就簡單了。分析如下:用遞歸法的思想,5!可以看成(4! ×5),4!可以看出(3!×2)……直到最后一定要知道1!等于1。

某一個數的階乘都可以看成是它前一個數的階乘乘以它自己本身,根據分析能夠編寫這樣的自定義函數,作用是計算某個數的階乘。

在這代碼中“s=s(n-1)×n”就是再一次調用了此函數,體現了遞歸法。

學生會覺得很熟悉,在前面學習程序的基本結構時,學習了循環的嵌套,學生都知道,要內循環都運行完了,再運行外循環;同樣的,在函數調用時也是,從內到外,內部的代碼運行結束了,再運行外部的代碼。通過上述的分析、講解,學生會比較容易的掌握遞歸法。

三、從簡到難,完善鞏固知識

在學生對遞歸法有一定掌握的基礎上,再來實現兔子繁殖的問題。要用遞歸法來實現此問題,在自定義函數中要用到兩個同時調用函數自己。例:有人養了一對兔子,這對兔子以后每月生一對兔子,新生兔子從第三個月開始,也是每月生一對兔子,問12個月后這人有多少對新生兔子?通過分析,能得出這樣一個數列,數學上也稱為斐波那契數列:1,1,2,3,5,8……

學生自己討論探究,分析結果如下:如果是第一個月或是第二個月,兔子數都只有一對,否則,兔子數等于前一個月的兔子數加前兩月的兔子數。根據分析結果,讓學生自主編寫程序,然后教師評講,展示正確代碼。

其中“tu=tu(month-1)+tu(month-2)”這行代碼體現了函數自己調用自己,用遞歸法實現了問題,“If month=1 or month=2 then tu=1”這行代碼體現了遞歸法的必要條件——結束條件。在此,為了讓學生對遞歸法理解透徹,學生在做題時一定要清楚兩點:一是要清楚自定義函數的作用,如例題中函數的作用是計算某一個月有的兔子對數;二是要清楚自定義函數如何自己調用自己的,以及整個程序的運行過程。

通過這題由簡到難,通過學生自主探究,分析解決問題,通過教師提示講評,學生對遞歸法這一知識點進行了鞏固和完善

金云(1984-),女,江蘇昆山人,江蘇省昆山經濟技術開發區高級中學,中小學一級。研究方向:信息技術教學。

猜你喜歡
昆山兔子例題
黃旙綽與昆山腔考
昆山三慮五金機械有限公司
昆山邁晟科精密機械有限公司
昆山三慮五金機械有限公司
由一道簡單例題所引發的思考
由一道簡單例題所引發的思考
兔子
向量中一道例題的推廣及應用
問渠哪得清如許 為有源頭活水來
守株待兔
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合