999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python教學(xué)中的遞歸函數(shù)教學(xué)設(shè)計

2022-05-30 15:43:24蔡毅仁
電腦知識與技術(shù) 2022年10期
關(guān)鍵詞:教學(xué)設(shè)計案例

摘要:通過情景引入幫助學(xué)生對遞歸算法建立豐富的感性經(jīng)驗,激發(fā)學(xué)生的學(xué)習(xí)興趣,進(jìn)而引導(dǎo)學(xué)生學(xué)習(xí)遞歸的概念和應(yīng)用條件,最后通過對6個典型案例的分析總結(jié),幫助學(xué)生掌握遞歸函數(shù)的設(shè)計方法,讓學(xué)生體會到遞歸算法解決問題的獨(dú)特和高效。文章還結(jié)合Python的Turtle圖像函數(shù)庫進(jìn)行遞歸作圖,用直觀的繪圖過程促進(jìn)學(xué)生對遞歸函數(shù)的理解和應(yīng)用,取得良好的教學(xué)效果。

關(guān)鍵詞:Python;遞歸函數(shù);算法;教學(xué)設(shè)計;案例

中圖分類號:TP312? ? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2022)10-0129-02

1 引言

Python語言是高中信息技術(shù)必修課程,具有開源性,語言結(jié)構(gòu)和形式簡潔,非常適合作為中學(xué)生的編程入門語言。在Python的教學(xué)過程中函數(shù)占據(jù)著非常重要的地位,其中遞歸函數(shù)既是教學(xué)重點(diǎn)也是教學(xué)難點(diǎn)。遞歸函數(shù)語句雖然比較簡捷,但遞歸算法的思想學(xué)生較難理解,且函數(shù)在執(zhí)行時又會調(diào)用自身,執(zhí)行過程復(fù)雜,導(dǎo)致學(xué)生學(xué)習(xí)困難。

要理解遞歸函數(shù),理解遞歸算法是基礎(chǔ)。而要理解遞歸算法的思想,必須對遞歸算法有形象具體的認(rèn)識。

2 直觀有趣的教學(xué)情景引入

教師在開始進(jìn)行遞歸算法的教學(xué)時,一定要先創(chuàng)設(shè)情景。通過生動有趣的情景來激發(fā)學(xué)生的求知欲,激發(fā)學(xué)生的學(xué)習(xí)主動性。算法教學(xué)內(nèi)容本身就比較抽象,如果教師不注重創(chuàng)設(shè)情景,教學(xué)過程就會顯得很枯燥。

遞歸函數(shù)的教學(xué)一般是通過斐波那契的兔子問題來引入的。斐波那契的兔子問題有趣但不夠直觀。事實上生活中還有更通俗易懂的遞歸的例子,如:讓學(xué)生朗讀童謠《從前有座山》,通過學(xué)生熟悉的童謠,讓學(xué)生輕松愉快地接受遞歸概念。也可以讓學(xué)生動手玩?zhèn)鹘y(tǒng)游戲“九連環(huán)”“漢諾塔”,通過實踐了解遞歸的過程。通過導(dǎo)入情境,幫助學(xué)生建立關(guān)于遞歸的感性經(jīng)驗,同時也有效激發(fā)學(xué)生的學(xué)習(xí)興趣。

3 遞歸函數(shù)概述

通過創(chuàng)設(shè)情景的鋪墊,讓學(xué)生有了充分的關(guān)于遞歸的經(jīng)驗,接下來教師就可以自然地引入遞歸的概念。

遞歸函數(shù)的典型特征是函數(shù)直接或間接調(diào)用函數(shù)本身。通過該特征,學(xué)生可以很容易學(xué)會判斷一個函數(shù)是不是遞歸函數(shù)。但學(xué)生往往不明白函數(shù)為什么要調(diào)用函數(shù)自身,不明白什么樣的問題可以用遞歸算法解決。

遞歸算法的“自己調(diào)用自己”是手段,其目的是把較大的問題不斷地分解成較小的問題,直到問題可以直接得到答案[1]。

采用遞歸函數(shù)解決問題需要符合三個條件:

(1) 原問題可以通過較小的問題來解決;

(2) 較小的問題與原問題有相同的解法;

(3) 有一個明確的結(jié)束條件。

4 通過案例分析學(xué)習(xí)促進(jìn)概念的理解

在理解了遞歸算法的解題思路并懂得了采用遞歸函數(shù)的三個條件后,還需要通過案例分析幫助學(xué)生進(jìn)一步理解應(yīng)用,把遞歸算法通過程序語言轉(zhuǎn)化為遞歸函數(shù)的程序代碼。

4.1 典型的案例1:遞歸法求累加

累加的一般形式為:acc (n) =1+2+3+…n。利用遞歸算法求累加,可表達(dá)為:

acc(n) = n+acc(n-1),n>1。acc(0)=0。

遞歸結(jié)束條件為:n<=1[2]。

在python中其遞歸函數(shù)的程序代碼可以這樣實現(xiàn):

def acc(n):? ?#定義累加函數(shù)acc

if n<=1:? ? #遞歸結(jié)束條件

return n

else:

return n+acc(n-1)? #調(diào)用函數(shù)自身

#調(diào)用遞歸函數(shù) 求1+2+3+…+10

print(acc(10))

4.2 典型的案例2:求階乘n!

求階乘:n!=n×(n-1)×(n-2)…×2×1= n×( n-1)!

利用遞歸算法求階乘n!,可以把求n的階乘的問題轉(zhuǎn)化成求n-1的階乘的問題。遞歸結(jié)束條件為:n<=1。在python中其遞歸函數(shù)的程序代碼可以這樣實現(xiàn):

def fact(n):? #定義函數(shù)fact

if n<=1:? ?#遞歸結(jié)束條件

return n

else:

return n*fact(n-1)? #調(diào)用函數(shù)自身

#調(diào)用遞歸函數(shù)fact求20!

print(fact(20))

4.3 典型的案例3:斐波那契數(shù)列

fib(n)=fib(n-1)+fib(n-2),n>1。fib(1)=1;fib(0)=0

利用遞歸算法求斐波那契數(shù)列,可以將求fib(n) 轉(zhuǎn)化為求fib(n-1) +fib(n-2) 。遞歸結(jié)束條件為:n<=1。在python中其遞歸函數(shù)的程序代碼可以這樣實現(xiàn):

def fib(n):? #定義函數(shù)fib

if n<=1:? ? #遞歸結(jié)束條件

return n

else:

return fib(n-1) + fib(n-2)? #調(diào)用函數(shù)自身

print(fib(20)) #調(diào)用遞歸函數(shù)fib求斐波那契數(shù)列第20位的值

為了簡化程序便于學(xué)生理解,上述三個例程均默認(rèn)參數(shù)n>=0。

遞歸不但可以用于數(shù)值計算,也可以用于非數(shù)值計算的問題。Python 有繪圖功能強(qiáng)大的turtle(海龜作圖) 。將遞歸應(yīng)用于繪圖,可用簡單的代碼畫出繁復(fù)的圖形,特別能吸引學(xué)生的興趣,有助于學(xué)生進(jìn)一步理解和應(yīng)用遞歸的思想。

4.4 典型的案例4:畫螺旋線

import turtle as t? #引入turtle庫

def spir( len):? #定義遞歸函數(shù)

if len > 0:? #遞歸條件

t.forward(len) #海龜畫出長為len的直線

t.right(45) #改變角度

spir(len - 1) #調(diào)用自身

#調(diào)用遞歸函數(shù)畫螺旋線

spir(100)

4.5 典型的案例5:畫樹枝

import turtle as t? ?#引入turtle庫

def 畫樹枝(枝長):? ?#定義遞歸函數(shù)

if 枝長 > 30:? #遞歸條件

t.fd(枝長);? ?t.rt(20)

畫樹枝(枝長 - 10)

t.lt(40)

畫樹枝(枝長 - 10)

t.rt(20) ;? ? t.up()

t.bk(枝長);? ?t.pd()

# 畫樹枝主程序

t.up()

t.left(90)

t.backward(250)

t.pd()

#調(diào)用遞歸函數(shù)畫樹枝

畫樹枝(100)

4.6 典型的案例6:希爾伯特曲線雙遞歸

from turtle import * #引入turtle庫

def hilL(n):? ?#左旋

if n==0: #結(jié)束條件

pass

if n>0:

right(90)

hilR(n-1) #調(diào)用右旋

forward(l);left(90)

hilL(n-1) #調(diào)用自身

forward(l)

hilL(n-1) #調(diào)用自身

left(90);forward(l)

hilR(n-1) #調(diào)用右旋

right(90)

def hilR(n):? #右旋

if n==0:? #結(jié)束條件

pass

if n>0:

eft(90)

hilL(n-1) #調(diào)用左旋

forward(l);right(90)

hilR(n-1) #調(diào)用自身

forward(l)

hilR(n-1) #調(diào)用自身

right(90);forward(l)

hilL(n-1) #調(diào)用左旋

left(90)

width(3)? # 設(shè)置筆刷寬度

l=10? ? #步幅

hilL(4)? #調(diào)用遞歸函數(shù),參數(shù)為曲線的階數(shù)必須為正整數(shù)

以上6個Python教學(xué)案例代碼簡單、設(shè)計精巧,難度由淺入深,十分有助于學(xué)生學(xué)習(xí)和理解遞歸函數(shù)。特別是后面的三個采用海龜繪圖的例程,繪圖過程直觀生動,兼具啟發(fā)性和趣味性。

在教學(xué)過程中教師還可以將遞歸函數(shù)的執(zhí)行過程做成短視頻,讓學(xué)生通過短視頻觀察代碼的執(zhí)行過程,再上機(jī)編程調(diào)試代碼。上機(jī)時可提醒學(xué)生在執(zhí)行遞歸函數(shù)時觀察語句的執(zhí)行順序和變量的變化過程,有效加深對遞歸算法和函數(shù)調(diào)用過程的理解[3]。

如果有充足的時間,還可以讓學(xué)生分別用循環(huán)和遞歸解決同一問題,通過對比來進(jìn)一步理解遞歸的特點(diǎn)[4]。

5 總結(jié)與反思

學(xué)習(xí)程序設(shè)計的過程本質(zhì)上是將自己的具體經(jīng)驗、感性形象轉(zhuǎn)化為抽象的理論和概念的過程[5]。因為學(xué)生在生活中接觸遞歸算法的機(jī)會較少,所以教師首先要幫助學(xué)生建立充分的實踐體驗,并激發(fā)學(xué)生的學(xué)習(xí)興趣。在此基礎(chǔ)上指導(dǎo)學(xué)生對典型案例進(jìn)行觀察、分析、比較和判斷,讓學(xué)生通過歸納、總結(jié)理解遞歸算法,最后通過上機(jī)編寫、調(diào)試程序完成對遞歸函數(shù)的理解和應(yīng)用。

參考文獻(xiàn):

[1] 唐翠娥,陳小文.遞歸數(shù)據(jù)結(jié)構(gòu)及算法設(shè)計教學(xué)探討[J].福建電腦,2019,35(4):130-131.

[2] 譚浩強(qiáng).C語言程序設(shè)計[M].2版.北京:清華大學(xué)出版社,2008.

[3] 丁雪晶.C語言遞歸函數(shù)教學(xué)的設(shè)計與探討[J].電腦知識與技術(shù),2018,14(16):150-152.

[4] 劉瑞芳,曾海燕.遞歸算法的教學(xué)探討[J].現(xiàn)代計算機(jī),2009,302(3):72-73.

[5] 林東峰.中職VB課程中遞歸算法教學(xué)探索和思考[J].計算機(jī)光盤軟件與應(yīng)用, 2011(9):213-214.

【通聯(lián)編輯:王力】

收稿日期:2021-06-10

作者簡介:蔡毅仁,中學(xué)高級職稱,本科學(xué)歷,長期從事中學(xué)信息技術(shù)教學(xué),熟悉C++、Python,擅長計算機(jī)圖像處理。

猜你喜歡
教學(xué)設(shè)計案例
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
隨機(jī)變量分布及統(tǒng)計案例拔高卷
發(fā)生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
高中數(shù)學(xué)一元二次含參不等式的解法探討
考試周刊(2016年79期)2016-10-13 22:17:05
“仿真物理實驗室” 在微課制作中的應(yīng)用
考試周刊(2016年77期)2016-10-09 11:49:00
翻轉(zhuǎn)課堂在高職公共英語教學(xué)中的應(yīng)用現(xiàn)狀分析及改善建議
考試周刊(2016年76期)2016-10-09 09:18:59
提高課堂教學(xué)有效性的研究
成才之路(2016年26期)2016-10-08 11:13:47
一個模擬案例引發(fā)的多重思考
主站蜘蛛池模板: 国产免费羞羞视频| 伊人久久精品无码麻豆精品| 欧美日韩综合网| 国产成人你懂的在线观看| 91在线国内在线播放老师| 欧美精品影院| 日韩成人在线一区二区| 久久综合AV免费观看| a在线亚洲男人的天堂试看| 国产18在线| 免费人成网站在线观看欧美| 国产第四页| 玖玖精品视频在线观看| 亚洲美女一区二区三区| 午夜欧美理论2019理论| 无码免费视频| 色悠久久久| 国产91精品久久| 欧美人与牲动交a欧美精品| 人妻一区二区三区无码精品一区| 幺女国产一级毛片| 成人av手机在线观看| 97国产在线视频| 尤物国产在线| 欧美亚洲国产日韩电影在线| 中文字幕永久视频| 国产成熟女人性满足视频| 最新国产你懂的在线网址| 九月婷婷亚洲综合在线| 91成人在线免费视频| 欧美激情视频二区| 国产在线拍偷自揄拍精品| 女人18毛片久久| 国产乱码精品一区二区三区中文| 亚洲欧美日韩色图| 欧美亚洲国产精品第一页| 波多野结衣中文字幕一区二区| 日韩 欧美 小说 综合网 另类| 欧美国产精品不卡在线观看| 最新痴汉在线无码AV| 在线免费看片a| 国产成人禁片在线观看| 日本在线亚洲| 在线播放国产一区| 国产永久免费视频m3u8| 国产成人在线小视频| 国产欧美高清| 中文字幕永久在线看| 2022精品国偷自产免费观看| 欧美一级高清片久久99| 亚洲精品国产自在现线最新| 曰韩人妻一区二区三区| 亚洲色精品国产一区二区三区| 久久91精品牛牛| 伊人网址在线| 一级毛片基地| 超碰免费91| 无码中文字幕加勒比高清| 国产成人精品高清不卡在线| 91成人在线免费视频| 国产免费羞羞视频| 日本在线免费网站| 1769国产精品免费视频| 亚洲欧洲日韩久久狠狠爱| 久久综合色天堂av| 欧美午夜网| 在线观看亚洲成人| 亚洲欧洲日产国产无码AV| 欧美成a人片在线观看| 国产成人综合日韩精品无码不卡| 亚洲成人在线网| 欧洲精品视频在线观看| 91精品专区国产盗摄| 欧美日韩亚洲综合在线观看 | 国产91全国探花系列在线播放| 亚国产欧美在线人成| 国产成人久视频免费| 国产无码在线调教| 第九色区aⅴ天堂久久香| 亚洲午夜综合网| 亚洲欧洲天堂色AV| 久久久波多野结衣av一区二区|