馬玉湖
程序框圖中的條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是算法中的重點,筆者結(jié)合教學(xué)實際歸類總結(jié),發(fā)現(xiàn)下面四種常見題型是高考的熱點.
一、求輸入值
例1 ?給出如圖所示的程序框圖,若要使輸入的[x]值與輸出的[y]值相等,則這樣的[x]值的個數(shù)是( ? )
A.1 ?B.2 C.3 ? D.4
[ 開始 ][輸入[x]] [x≤2?] [x≤5?] [輸出y][ 結(jié)束 ] [是][是][否][否]
解析 ?根據(jù)題意,本程序框圖表示成分段函數(shù),[y=x2,x≤2,2x-3,2
答案 ?C
點撥 ?這類題目考查識圖能力,利用框圖表示的信息,把問題轉(zhuǎn)化為函數(shù)問題解決.從程序框圖中可以看出是條件結(jié)構(gòu),根據(jù)題意可知函數(shù)是分段函數(shù)模型.條件語句是處理條件分支邏輯結(jié)構(gòu)的算法語句,就是說:算法邏輯結(jié)構(gòu)中的條件結(jié)構(gòu)一般是由算法語言中的條件語句來實現(xiàn)的.如“判斷一個數(shù)的正負(fù)”“比較數(shù)之間的大小”“求分段函數(shù)的值”等,解決這些問題,常用條件語句.
二、求輸出結(jié)果
例2 ?執(zhí)行如圖所示的程序框圖,則輸出的[k]的值為( ? )
[ 開始 ] [S<100?] [輸出k][ 結(jié)束 ][否][是]
A. 4 ? B. 5 ? ? ? C. 6 ? D. 7
解析 ?第一次運行:[S=1,k=1];第二次運行:[S=3,k=2];第三次運行:[S=11,k=3];第四次運行:[S=11+211,k=4];第五次運行:否.輸出[k=4].
答案 ?A
點撥 ?該題型常與循環(huán)結(jié)構(gòu)相結(jié)合,解決此類問題的關(guān)鍵是把握程序框圖所表達(dá)的內(nèi)容,本題實質(zhì)上是求和問題,屬于直到型循環(huán)結(jié)構(gòu),應(yīng)特別注意循環(huán)終止的條件.
三、判斷框圖的功能
例3 ?下圖給出了一個算法流程圖,該算法流程圖的功能是( ? )
[ 開始 ] [輸入[a,b,c]][輸出[a]][ 結(jié)束 ][a>b?] [a>c?] [是][否][否][是]
A. 求[a,b,c]三數(shù)中的最大數(shù)
B. 求[a,b,c]三數(shù)中的最小數(shù)
C. 將[a,b,c]按從小到大排列
D. 將[a,b,c]按從大到小排列
解析 ?第一次經(jīng)過判斷框時,首先比較兩數(shù)的大小,把小數(shù)賦給[a];然后比較[a]與[c],小數(shù)再賦給[a],所以最后賦出三數(shù)中的最小數(shù).
答案 ?B
點撥 ?這類題型要仔細(xì)閱讀框圖,明確框圖的運算過程,可采取漸進(jìn)式或者特殊式進(jìn)行閱讀,再演繹.
四、補充判斷條件
例4 ?下圖給出的是計算[12+14+16+…+1100]值的一個程序框圖,其中判斷框中應(yīng)該填的條件是 ? ? .
[ 開始 ] [輸出S][ 結(jié)束 ][否][是]
解析 ?[S=12+14+16+…+1100]共有50個數(shù)相加,第一次循環(huán),輸出[S=12],[I=2]. 第二次循環(huán),輸出[S=12+14],[I=4]. 由于需要循環(huán)50次,所以應(yīng)該填寫[I≤98]或[I<100]. 解答本題時防止出現(xiàn)[I≤49]或[I<50]的錯誤.
點撥 ?這類題目也是考查的熱點,解決這類問題常常考查循環(huán)結(jié)構(gòu),看清楚是直到型循環(huán)結(jié)構(gòu)還是當(dāng)型循環(huán),明確每次輸出的結(jié)果,需要循環(huán)的次數(shù),才能夠準(zhǔn)確地補充條件.