路來源于生活──《程序設計》教學案
生:重復部分要用循環結構來實現。
師:這個步驟重復到什么時候結束呢?
由學生討論怎么確定循環的次數,很明顯,已知的挑戰者個數是判斷循環結束的條件。
根據討論的結果,最后師生共同得出圍棋挑戰賽的算法和流程圖(如圖1)。
以圍棋挑戰賽的例子啟發學生,求出100以內偶數和的算法。
師:根據此問題的特點,我們可以將問題細化為兩種情況。
100以內所有數的和的算法。
師(引導):現在我們先來求100以內所有數的和,應該怎么辦?
師生共同分析比較挑戰賽賽程與此問題的異同,得出此問題的解決步驟:
設定一個變量sum表示和,初值為0;
再設定一個計數變量i,從1開始計數,同時它代表要相加的數;
i和sum相加,和保存在變量sum中
i累加
i大于100時輸出sum的值,否則繼續執行③④
求100個數中所有偶數的算法
師(引導):100以內的數相加的和我們已經能求出來了,但是我們只要100以內的偶數相加的和,那么怎么找出符合條件的偶數呢?
生:偶數是能被2整除的自然數,我們可以將符合這個條件的數找出來。
師生討論得出的尋找偶數的步驟:
①判斷數i除以2是否余數為0
②和變量sum與數i相加得到新的和
③i累加,再次執行①
得出求100以內偶數和的算法
師(引導):100以內的數相加我們已求出算法,偶數也找出來了,能求100以內偶數的和了嗎?具體算法應該是怎樣的呢?
生:能,將(2)中的語句放到(1)的循環語句中執行就可以了。
師生最終討論得出的算法如下:
在教學過程中需要注意的問題:
讓學生討論各變量的定義與作用,如sum表示和,i既是計數變量又可以是用來求值的自然數。
因為循環次數已知,要加入一個循環控制變量i來計數,當i累加到滿足條件的次數后退出循環。
小結
回顧以上案例,看似將某個問題轉化為計算機語言描述算法是一個難以理解的過程,但是,思路來源于生活,借助生活當中常見事例的解決方式,我們也可以很清晰地理解并得出計算機解決問題的過程。