在算法中,程序框圖有三種基本邏輯結構:順序結構、條件結構和循環結構.其中循環結構是三種基本邏輯結構中最重要的一種結構,在07~09年的廣東高考試題中,對算法內容的考查均以含有循環結構的程序框圖來命題.解決含有循環結構的程序框圖問題,建議同學們學會利用列舉法,通過列舉出各個變量在進入循環體后的值,觀察和歸納出變量在退出循環時應輸出的值,進而得到問題答案.
一、列舉法介紹
例1 如果執行圖1的程序框圖,那么輸出的s的值為_________.
解析 列舉式子如下:
k=1,s=0表示未進入循環體時各個變量初始值.
1. s=0-2×1=-2,k=0;表示第1次進入循環體后變量值;
2. s=2-2×0=-2,k=-1;表示第2次進入循環體后變量值;
3. s=2-2×(-1)=0,k=-2;表示第3次進入循環體后變量值;
4. s=0-2×(-2)=4,k=-3;表示第4次進入循環體后變量值;
5. s=4-2×(-3)=10,k=-4;表示第5次進入循環體后變量值.
因為k=-4<-3,所以輸出s=10.
評注 因為判斷框的條件k≥-3,而變量k值從1開始,每進入一次循環,k值便減1,因此可以通過全部列舉把每一次循環對應的變量值列舉出來,進而利用判斷框的條件,輸出s的值應為10.
二、列舉時應注意的三個問題
注意問題1:列舉時,循環體內的各個執行框不能調換先后次序.
如果在列舉時,我們把 s= s-2 k與k=k-1調換次序,先執行k=k-1,再執行 s= s-2k.
列舉式子如下:
k=1,s=0
1. k=-1,s=0-2×(-1)=2;
2. k=-2,s=2-2×(-2)=6;
3. k=-3,s=6-2×(-3)=12;
4. k=-4,s=12-2×(-4)=20.
因為k=-4<-3,所以輸出s=20. 與例1答案不符.因此不能隨意調換執行的次序.
注意問題2:列舉時,如果列舉次數過多,可以采用局部列舉,尋求規律,進而歸納出結果.
例2 把圖1判斷框的條件“k=≥-3”改為“k=≥-30”,如圖2所示,那么輸出的s的值為___________.
方法一 利用變量值的變化構造數列{an},使得a1=-2,a2=-2,a3=0,a4=4,a5=10,…,問題轉化為求a32的值.易知,數列{an}既不是等差數列,也不是等比數列,但相鄰兩項做差所成數列是以0為首項,2為公差的等差數列.因此可利用疊加法求a32的值.
因為a2-a1=0=2×0
a3-a2=2=2×1
a4-a3=4=2×2
…………
a32-a31=2×30
疊加可得,a32-a1=[2(0+1+2…+30)],
解得a32=30×31-2=928,所以輸出s=928.
方法二 觀察變量值s的變化規律可知,
4=1×4,10=2×5,16=3×6…,所以式子可列舉為:
k=1,s=0
1. s=0-2×1=-2, k=0
2. s=-2-2×0=-2, k=-1
3. s=-2-2×(-1)=0, k=-2
4. s=0-2×(-2)=4=1×4, k=-3
5. s=4-2×(-3)=10=2×5, k=-4
… …
32. s=29×32=928,k=-31
因為k=-31<-30,所以輸出s=29×32=928. 所以輸出s=928.
評注 由例2我們可以得知,變量k在退出循環時,k值應為-31,在列舉時應列舉32次才能輸出變量s的值. 32次的列舉,在操作上費時,計算量大,因此可借助變量s值的變化規律進行解決. 例如通過前面6次的列舉,可歸納出第32次變量s=29×32.利用列舉可以把抽象、復雜、繁瑣的循環思想直觀具體化,通過觀察每一次循環后變量數值的變化規律,從而準確求得輸出值,起到“化繁為簡”的效果.
注意問題3:列舉時,應注意判斷框中條件的判斷.
例3 按如圖所示的程序框圖運算. 若輸出k=2,則輸入x的取值范圍是______.
錯解 列舉式子如下:
x=m,k=0
1. x=10m+8,k=1;
2. x=10(10m+8)+8=100m+88,k=2;
因為輸出k=2,所以x=100m+88>2008,解得m>19.2,
所以輸入x的取值范圍是(19.2,+∞).
錯因分析 因為輸出k=2,不是輸出k=1,所以,變量x的值除了要滿足x=100m+88>2008之外,還應滿足x=10m+88≤2008,解得19.2 練習 一個算法的程序框圖如圖4所示, (1)若該程序輸出的結果為,則判斷框中的n值為_________; (2)若判斷框中的n值為2009,則該程序輸出的結果為_________. 答案 (1)4;(2). 對于含有循環結構的程序框圖,一方面,同學們要理解好循環結構思想,熟練運用“列舉法”,把抽象復雜的循環問題,轉化成直觀具體的數列問題;另一方面,同學們可以通過近三年的高考題和模擬試題,借助“列舉法”,對含有循環結構的程序框圖進行定量訓練,化繁為簡,力求在高考中準確得分. 責任編校 徐國堅