計算機解決問題的過程
展示題目:
“韓信點兵”問題2:求整除3余1、整除5余2、整除7余4、整除13余6、整除17余8的最小自然數(shù)。
給2分鐘學(xué)生分析上述問題并寫出算法,不用計算。學(xué)生有了第1題的經(jīng)驗,很快會寫出和第一題類似的算法。如下:
分析問題(找出已知和未知、列出已知和未知之間的關(guān)系)寫出解題步驟設(shè)所求的數(shù)為X,則X應(yīng)滿足:
X整除3余1X整除5余2X整除7余4X整除13余6X整除17余81、令X為1。
2、如果X整除3余1,
X整除5余2,
X整除7余4,
X整除13余6,
X整除17余8,則記下這個X。
3、令X為X+1。
4、如果算出,則結(jié)束;否則跳轉(zhuǎn)2。
5、寫出答案。
教師:“上面的結(jié)果超過1萬,人工計算要很長時間,在科技發(fā)達的今天,你想到什么?”(用計算機解題)
(四)用計算機解決問題
教師:“計算機怎么樣解決問題?用計算機解決問題,同樣要經(jīng)過分析問題、設(shè)計算法兩步驟。”在講授過程中展示人工解題中分析問題和設(shè)計算法這兩個步驟。
教師:“用計算機解題,是不是輸入上面的算法?上面用自然語言描述的算法,計算機不懂,必須翻譯成計算機的語言,這就是程序設(shè)計語言。” 教師展示與用Visual Basic語言編寫的程序作對照。簡單解釋變Y的作用,并提示學(xué)生程序設(shè)計語言是我們以后學(xué)習(xí)的重點。
本例用Visual Basic語言編寫的程序請看教材如下:
Private Sub Command1_Click()
Dim X As Integer, Y As Integer
X = 1: Y = 0
Do
If X Mod 3 = 1 Then
If X Mod 5 = 2 Then
If X Mod 7 = 4 Then
If X Mod 13 = 6 Then
If X Mod 17 = 8 Then Y = X
End If
End If
End If
End If
X = X + 1
Loop Until Y > 0
Print "韓信統(tǒng)御士兵數(shù):"; Y
End Sub
教師:“程序編好以后,通過鍵盤輸入計算機,并運行程序查看結(jié)果這個過程叫調(diào)試程序。”
(五)觀摩
根據(jù)前面編制的程序,啟動Visual Basic程序設(shè)計環(huán)境,輸入程序代碼,進行調(diào)試,最后得到運行的結(jié)果。具體操作步驟請看教材(第4、5頁)。要求同組內(nèi)先完成的同學(xué)幫助還未完成的同學(xué)。幫助的時候不能代勞,只能動口不動手。。
教師演示操作步驟。
學(xué)生上機調(diào)試程序,教師作個別指導(dǎo),時間是10分鐘。
操作時有些學(xué)生很快完成,有些學(xué)生則很慢,解決案是布置操作快的同學(xué)閱讀教材并完成《計算機解決問題的過程》教學(xué)活動表中的填空題。較慢的同學(xué)在他們調(diào)試了約8分鐘后告訴他們可以通過網(wǎng)上鄰居下載程序。以便能在10分鐘內(nèi)調(diào)試出程序。
(六)交流
教師:“前面我們學(xué)習(xí)了用計算機解決問題的過程,它和人工解有什么關(guān)系呢?同一學(xué)習(xí)小組的同學(xué)一起探討人工求解問題和用計算機求解問題的異同,并把討論結(jié)果記錄在《計算機解決問題的過程》教學(xué)活動表的“討論記錄”表中。如下:
關(guān)于求解問題的方式討論記錄求解問題的方式相同點不同點人工求解問題
用計算機求解問題
教師提問2~3個小組的討論結(jié)果,并引導(dǎo)出大致如下的形式結(jié)果:
求解問題的方式相同點不同點人工求解問題分析問題、設(shè)計算法、得出結(jié)果、驗算結(jié)果等
對題目進行解答、運算速度慢、不需要計算機等
用計算機求解問題編寫程序、調(diào)試程序、運算速度快等
(七)小結(jié)、布置實踐和練習(xí)
這節(jié)課我們學(xué)習(xí)了計算機解決問題的過程,這個過程如下圖。
逐步展示:
具
體問題分
析問題設(shè)
計算法調(diào)
試程序編
寫程序得
出答案對具體給出的問題進行分析,分析后進行算法的設(shè)計,再編寫出程序并運行調(diào)試,最后得出正確的答案。
課后完成教材第7頁實踐(1)和練習(xí)(2)。