算法的基本思想就是探求解決問題的一般性方法,并將解決問題的步驟用具體化、程序化的語言加以表述.在算法的學(xué)習(xí)過程中要求了解算法的含義;理解流程圖(也稱程序框圖)的三種基本邏輯結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu);理解用偽代碼表示的幾種基本算法語句:賦值語句、輸入語句、輸出語句、條件語句、循環(huán)語句.作為新課標(biāo)新增加的內(nèi)容,算法尤其是流程圖在高考中常常出現(xiàn),但往往是容易題,并且以填空題的形式出現(xiàn).
一、流程圖
從試題的形式來看,主要包括要求寫出流程圖所表示的算法、根據(jù)流程圖寫出運(yùn)算結(jié)果、閱讀流程圖并補(bǔ)上關(guān)鍵語句等.
例1 (2009年上海卷理)某算法的程序框圖如右圖所示,則輸出量y與輸入量x滿足的關(guān)系式是 .
【解析】當(dāng)x>1時,有y=x-2,當(dāng)x≤1時,有y=2x,所以有分段函數(shù)y=2x(x≤1)x-2(x>1) .
【評注】流程圖中的選擇結(jié)構(gòu)是根據(jù)條件做出判斷,再決定執(zhí)行哪一種操作的結(jié)構(gòu),這與分段函數(shù)的形式十分吻合,選擇結(jié)構(gòu)體現(xiàn)了分類討論的數(shù)學(xué)思想.解決這類問題只要仔細(xì)閱讀流程圖,理解其判斷條件和運(yùn)算過程即可.
例2 (2009浙江卷理改編)某程序框圖如圖所示,該程序運(yùn)行后輸出的k的值是 .
(注:框圖中的賦值符號“=”也可以寫成“←”,下同)
【解析】∵k=0,s=0<100,∴s=0+1=1,k=1;∵s=1<100,∴s=1+2=3,k=2;∵s=3<100,∴s=3+8=11,k=3;∵s=11<100,∴s=3+8+211,k=4,而s=3+8+211>100,不符合條件,所以輸出的k=4.
【評注】此題考查了流程圖中的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),解題過程需要作出四次判斷和三次循環(huán)運(yùn)算,體現(xiàn)了邏輯思維能力和探索能力.此類問題要求寫出運(yùn)算結(jié)果,我們只要按照判斷的條件和循環(huán)運(yùn)算的法則將初始值一一代入,逐步運(yùn)算,直至找到結(jié)果或發(fā)現(xiàn)規(guī)律.
例3 (鎮(zhèn)江市2008屆高三第三次調(diào)研試題)如圖給出的是計算12+14+16+…+120的值的一個程序框圖,其中判斷框內(nèi)應(yīng)填入的條件是 .
【解析】這里的i起到了計數(shù)器的作用,菱形框中所填的條件應(yīng)起到控制運(yùn)算次數(shù)的作用,由于s的初始值
是0,為了得到12+14+16+#8226;#8226;#8226;+120的值,我們要對s進(jìn)行10次加法運(yùn)算,注意到只有當(dāng)滿足條件時才能跳出循環(huán),所以答案可以是“i>10”或“i≥11”.
【評注】在循環(huán)結(jié)構(gòu)中,運(yùn)算的次數(shù)的判斷十分關(guān)鍵,只有對整個程序有了全面準(zhǔn)確的理解,才有可能正確判斷運(yùn)算次數(shù),因此這類問題在考試中常常出現(xiàn),值得引起大家的重視.
二、偽代碼
在偽代碼涉及的問題中,除了理解賦值語句,輸入、輸出語句,條件語句外,重點(diǎn)應(yīng)關(guān)注循環(huán)語句中的當(dāng)型語句“While … End While”和“For 循環(huán)”.
例4 根據(jù)如圖所示的偽代碼,可知輸出的結(jié)果b為 .
a←1
b←1
While b<5
c←a+b
a←b
b←c
End While
Print b
【解析】執(zhí)行第一次循環(huán)后得到:b=1<5,c=2,a=1,b=2;
執(zhí)行第二次循環(huán)后得到:b=2<5,c=3,a=2,b=3;
執(zhí)行第三次循環(huán)后得到:b=3<5,c=5,a=3,b=5;
執(zhí)行第四次循環(huán)后得到:b=5≥5,b=5.
【評注】當(dāng)型語句的特點(diǎn)是先判斷,后執(zhí)行.解決此類問題的關(guān)鍵是讀懂偽代碼,注意循環(huán)條件,防止循環(huán)體運(yùn)算不徹底.
例5 執(zhí)行如圖所示的偽代碼,輸出的結(jié)果是 .
S← 0
ForIFrom1to9Step 2
S←S + I
EndFor
PrintS
【解析】本題循環(huán)的次數(shù)確定,步長為2,實質(zhì)上進(jìn)行的運(yùn)算是0+1+3+5+7+9,因此輸出的結(jié)果是25.
【評注】For 循環(huán)的運(yùn)算規(guī)律比較清楚,但應(yīng)注意運(yùn)算的步長,若將本題中的“Step 2”去掉,則默認(rèn)為“Step 1”,運(yùn)算將變成0+1+2+3+4+5+6+7+8+9,結(jié)果為45.
練習(xí):
示:
下圖是統(tǒng)計該6名隊員在最近三場比賽中投進(jìn)的三分球總數(shù)的程序框圖,則圖中判斷框應(yīng)填 ,輸出的s=
輸出的結(jié)果是 .
3.下邊是根據(jù)所輸入的x值計算y值的一個算法程序,若x依次取數(shù)列n100-1 (n∈N*)中的前200項,則所得y值中的最小值為 .
Read x
If x>0Then
y←1+x
Else
y←1-x
End If
Print y
練習(xí)答案
1.i≤6,a1+a2+…+a6
2. 10
3. 1