■山東省單縣第五中學(xué) 張 磊
算法是數(shù)學(xué)及其應(yīng)用的重要組成部分,在科學(xué)技術(shù)、社會(huì)發(fā)展中發(fā)揮著越來(lái)越大的作用,已逐漸融入社會(huì)生活的許多方面,算法思想已經(jīng)成為現(xiàn)代人應(yīng)該具有的一種數(shù)學(xué)素養(yǎng)。算法初步是新課標(biāo)高考的必考內(nèi)容,一般出現(xiàn)在選擇題或填空題中,主要考查學(xué)生能否讀懂程序框圖和分析問(wèn)題、解決問(wèn)題的能力。高考對(duì)算法初步的考查,常在算法步驟、程序框圖,以及三種基本邏輯結(jié)構(gòu)、基本算法語(yǔ)句、算法案例的具體方法中單一或綜合命題。該類(lèi)題主要和數(shù)列、不等式等相關(guān)知識(shí)相結(jié)合,屬于中低檔題,難度雖不大,卻容易出錯(cuò),但是可以通過(guò)集中訓(xùn)練進(jìn)行掌握。
1.算法具有如下特點(diǎn)
(1)有限性:一個(gè)算法的步驟是有限的,必須在有限操作之后停止,不能是無(wú)限的。
(2)確定性:算法的每一步驟和次序應(yīng)當(dāng)是確定的。
(3)有效性:算法的每一步驟都必須是有效的。
2.算法三種邏輯結(jié)構(gòu)的幾點(diǎn)說(shuō)明
(1)順序結(jié)構(gòu)是最簡(jiǎn)單的算法結(jié)構(gòu),語(yǔ)句與語(yǔ)句之間,框與框之間是按從上到下的順序進(jìn)行的。在流程圖中的體現(xiàn)就是用流程線自上而下地連接起來(lái),按順序執(zhí)行算法步驟。
(2)一個(gè)條件結(jié)構(gòu)可以有多個(gè)判斷框。
(3)循環(huán)結(jié)構(gòu)要在某個(gè)條件下終止循環(huán),這就需要條件結(jié)構(gòu)來(lái)判斷。在循環(huán)結(jié)構(gòu)中都有一個(gè)計(jì)數(shù)變量和累加變量。計(jì)數(shù)變量用于記錄循環(huán)次數(shù),累加變量用于輸出結(jié)果,計(jì)數(shù)變量和累加變量一般是同步執(zhí)行的,累加一次,計(jì)數(shù)一次。
易錯(cuò)題型1:循環(huán)分析不當(dāng)
循環(huán)結(jié)構(gòu)是算法知識(shí)中的重點(diǎn)與難點(diǎn)。而以循環(huán)結(jié)構(gòu)(或以循環(huán)語(yǔ)句)為知識(shí)背景的問(wèn)題主要包括兩類(lèi):一類(lèi)是求輸出結(jié)果,另一類(lèi)是填所缺語(yǔ)句(判斷語(yǔ)句、執(zhí)行語(yǔ)句等)。這兩類(lèi)問(wèn)題都是考試中的易錯(cuò)點(diǎn)。
圖1
例1閱讀如圖1所示的程序框圖,運(yùn)行相應(yīng)的程序,輸出的i值等于( )。
A.2 B.3
C.4 D.5
錯(cuò)解分析:本題因?yàn)槌霈F(xiàn)了多次的賦值運(yùn)算,很容易因?yàn)閷?duì)循環(huán)次數(shù)不夠明確而造成錯(cuò)誤。
正解:當(dāng)i=1時(shí),a=1×2=2,s=0+2=2,i=1+1=2;由 于2>11不成立,故a=2×22=8,s=2+8=10,i=2+1=3;由于10>11 不成立,故a=3×23=24,s=10+24=34,i=3+1=4;34>11成立,輸出的i=4。故選C。
評(píng)注:本題要注意i=3 和i=4 這種關(guān)鍵步驟的計(jì)算與判斷。循環(huán)結(jié)構(gòu)的核心就是循環(huán)體,它是循環(huán)結(jié)構(gòu)中反復(fù)進(jìn)行的操作,要正確無(wú)誤地解答此類(lèi)問(wèn)題,關(guān)鍵是有耐心、細(xì)心,一步一步地進(jìn)行。
圖2
易錯(cuò)題型2:對(duì)賦值語(yǔ)句理解不到位
賦值語(yǔ)句一般形式為:變量=表達(dá)式。可以把變量看作一個(gè)存放數(shù)據(jù)的盒子,而且是最多只能存放一個(gè)數(shù)據(jù)的盒子。當(dāng)一個(gè)新數(shù)據(jù)放進(jìn)去時(shí),原來(lái)的數(shù)就被“擠”了出去。
例2執(zhí)行如圖2所示的程序框圖,若輸入的A,B 的值分別為1,2,求輸出的A,B 的值。
錯(cuò)解分析:沒(méi)有理解賦值語(yǔ)句,把“=”錯(cuò)當(dāng)“等號(hào)”解題。
正解:第一步,輸入A,B 的值1,2;第二步,把A 的值1賦給X;第三步,把B 的值2賦給A;第四步,把X 的值1 賦給B;第五步,輸出A,B的值2,1。
評(píng)注:本題的關(guān)鍵是正確理解輸入語(yǔ)句、輸出語(yǔ)句和賦值語(yǔ)句,進(jìn)一步體會(huì)算法的思想。賦值語(yǔ)句往往在交換兩個(gè)數(shù)的位置、比較大小等問(wèn)題中使用。賦值語(yǔ)句中的“=”叫作賦值號(hào),它和數(shù)學(xué)中的等號(hào)不完全一樣。計(jì)算機(jī)執(zhí)行賦值語(yǔ)句時(shí),先計(jì)算“=”右邊的表達(dá)式的值,然后把這個(gè)值賦給左邊的變量。
易錯(cuò)題型3:混淆當(dāng)型循環(huán)和直到型循環(huán)
當(dāng)型循環(huán):在每次執(zhí)行循環(huán)體前對(duì)控制循環(huán)條件進(jìn)行判斷,當(dāng)條件滿足時(shí)執(zhí)行循環(huán)體,不滿足時(shí)則停止;直到型循環(huán):在執(zhí)行了一次循環(huán)體之后,對(duì)控制循環(huán)體進(jìn)行判斷,當(dāng)條件不滿足時(shí)執(zhí)行循環(huán)體,滿足時(shí)則停止。這兩種循環(huán)結(jié)構(gòu)的區(qū)別一定要準(zhǔn)確區(qū)分。
例3閱讀圖3所示的程序,則下面對(duì)甲、乙兩程序和輸出結(jié)果判斷正確的是( )。
A.程序不同,結(jié)果不同
B.程序不同,結(jié)果相同
C.程序相同,結(jié)果不同
D.程序相同,結(jié)果相同
圖3
錯(cuò)解分析:混淆當(dāng)型和直到型循環(huán)結(jié)構(gòu),造成錯(cuò)解。
正解:前者是當(dāng)型循環(huán),后者是直到型循環(huán),所以程序不同,但是結(jié)果都表示1+2+…+1 000。故選B。
評(píng)注:本題是含有循環(huán)體的程序,要注意循環(huán)語(yǔ)句的終止條件。WHILE 語(yǔ)句終止循環(huán)時(shí)是條件不成立,而UNTIL 語(yǔ)句終止循環(huán)時(shí)是條件成立。本題還要注意準(zhǔn)確區(qū)分S=S+i和i=i+1 前后順序交換之后的區(qū)別,先執(zhí)行和后執(zhí)行的區(qū)別往往是非常大的。
易錯(cuò)題型4:對(duì)條件語(yǔ)句理解不到位
例4圖4 中的程序運(yùn)行時(shí)所表示的函數(shù)關(guān)系式為_(kāi)____;若輸入的x=3,則輸出的y=_____。
圖4
錯(cuò)解分析:沒(méi)有理解條件語(yǔ)句運(yùn)行規(guī)則,可能會(huì)寫(xiě)出完全不同的分段函數(shù),從而得到錯(cuò)誤答案。
正解:該程序所表示的函數(shù)關(guān)系式為當(dāng)輸入的x=3 時(shí),則輸出的y=2。
評(píng)注:本題的關(guān)鍵是對(duì)條件語(yǔ)句的正確理解,若條件成立,則先執(zhí)行THEN 后面的語(yǔ)句,當(dāng)執(zhí)行到ELSE 時(shí),則跳過(guò)再執(zhí)行ENDIF 后面的語(yǔ)句;若條件不成立,則執(zhí)行ELSE 后面的語(yǔ)句,直到END IF 結(jié)束條件語(yǔ)句。
算法不是單純的程序語(yǔ)言的學(xué)習(xí)和程序設(shè)計(jì)的學(xué)習(xí),更重要的是要體會(huì)算法的思想,理解算法的重要性與有效性,加強(qiáng)邏輯思維。事實(shí)上,我們每個(gè)人做任何事情都有一定的步驟。比如,你想考大學(xué),首先要填報(bào)名志愿表,拿到準(zhǔn)考證,參加考試,得到錄取通知書(shū),到大學(xué)報(bào)名注冊(cè)等。這些步驟都是按一定順序進(jìn)行的,缺一不可。今天若將易錯(cuò)問(wèn)題解決在進(jìn)入高考考場(chǎng)之前,那么后面的所有程序?qū)?huì)一帆風(fēng)順! 定會(huì)順利輸出你想要的結(jié)果!
中學(xué)生數(shù)理化(高中版.高考數(shù)學(xué))2019年12期