|
了解利用計算機解決問題的基本過程;學(xué)會分析哪些問題需要編寫計算機程序來解決;體驗程序設(shè)計的內(nèi)涵及魅力,產(chǎn)生對程序設(shè)計的求知欲,形成積極主動地學(xué)習(xí)算法與程序設(shè)計的態(tài)度。 重點:了解利用計算機解決問題的基本過程 難點:學(xué)會分析哪些問題需要編寫計算機程序來解決 日常生活中我們會遇到各種各樣的問題,隨著計算機技術(shù)的發(fā)展,大多數(shù)問題都可以使用計算機來解決。其中,有些問題可以使用現(xiàn)成的計算機工具軟件解決,有些問題則需要編寫特定的計算機程序才能解決。本節(jié)我們將學(xué)習(xí)解決問題的一般方法,特別要學(xué)會辨別哪些問題需要編寫計算機程序來解決,并經(jīng)歷計算機解決問題的基本過程。 首先提出一個問題:全班同學(xué)誰最高? 分析問題首先要明確問題的目標(biāo)和條件。該問題中目標(biāo)為求出“全班同學(xué)誰的身高最高”,條件是已知全班每一個同學(xué)的身高。 其次要理解問題,即要搞清楚問題涉及了哪些方面的知識。 任務(wù)1:提出能用計算機解決的問題. 問題1:學(xué)校期末考試后各科成績統(tǒng)計 問題2:計算10000以內(nèi)的奇數(shù)和 問題3:____________________________ 問題4:____________________________ 問題5:_____________________________ 人們通常將問題的解決方案分為算法方案和啟發(fā)式方案 我們把能使用計算機解決的問題分為三類:
“全班同學(xué)誰的身高最高”這個問題的解決方案可能有多種,我們試著列出一種:讓計算機來比較全班同學(xué)的身高值,找出最大值,即可知道全班同學(xué)誰最高。 此方案經(jīng)過若干個步驟后能直接得出結(jié)論,并且不需要反復(fù)驗證,由此可以判定該方案屬于算法方案,可以通過編寫計算機特定的程序來解決。 任務(wù)2:列出解決問題的方案。 問題1的解決方案:可以用計算機數(shù)據(jù)處理軟件進(jìn)行成績統(tǒng)計。這屬于第一類能夠利用現(xiàn)有的工具軟件解決的問題。 問題2的解決方案:由計算機求出10000以內(nèi)的所有奇數(shù),再將所有的奇數(shù)求和。此方案經(jīng)過若干步驟后能直接得出結(jié)論,但需要通過編寫計算機程序來解決,屬于第二類問題。 問題3的解決方案:_____________________________ 問題4的解決方案:------------------_____________________________ 問題5的解決方案:_____________________________ 現(xiàn)在我們根據(jù)方案來設(shè)計具體的解決步驟,即進(jìn)行算法設(shè)計。因為考慮到是用計算機解決問題,所以這些步驟必須適用于計算機執(zhí)行。 本例解決方案的關(guān)鍵是對身高值進(jìn)行比較,找出最大值,據(jù)此可以列出如下步驟: 步驟1:輸入第一個同學(xué)的身高值; 步驟2:輸入下一個同學(xué)的身高值; 步驟3:比較兩個同學(xué)的身高值; 步驟4:選出較大值; 步驟5:再輸入下一個同學(xué)的身高值; 步驟6:用這個同學(xué)的身高值和上述較大值進(jìn)行比較; 步驟7:再選出較大值; 重復(fù)步驟5至步驟7,直到輸入最后一個同學(xué)的身高值,比較后選出較大值,該較大值即為全班同學(xué)中最高同學(xué)的身高值。 算法方案通常都要通過編寫特定的計算機程序來實現(xiàn),即用計算機能夠理解的語言(程序設(shè)計語言)將算法表達(dá)成程序,得出最終結(jié)果,這個過程就是設(shè)計程序。 問題分析是算法設(shè)計的基礎(chǔ),算法設(shè)計又是設(shè)計程序的基礎(chǔ)。選擇一種什么樣的程序設(shè)計語言來解決問題并不是最重要的,關(guān)鍵是要把握算法與程序設(shè)計的思想。。 例如,“全班同學(xué)誰最高”的問題,按上述算法編寫的程序運行結(jié)果如下圖所示。
|
|
|