王進



算法的三種基本結構——順序結構、選擇結構和循環結構中,循環結構相對其他兩種結構而言,較難理解和掌握,以致不少同學常被循環轉得頭暈目眩!
循環結構有兩種基本形式,一種是直到型循環(圖1),另一種是當型循環(圖2).
這兩種結構的邏輯順序不同,直到型循環是先執行再判斷,不滿足條件時執行循環體,滿足條件時結束循環;當型結構是先判斷再執行,滿足條件時執行循環體,不滿足條件時結束循環.
兩種結構可以相互轉換,滿足同樣的意義.與兩種結構相對應的偽代碼有Do語句和While語句.
我們用循環結構及其偽代碼解決問題時,主要涉及初始值、判斷條件、循環體和終點值的設置,由于循環結構及其偽代碼涉及的因素較多,同學們常常因判斷和理解不到位,而導致一些錯誤.本文幫你厘清循環結構易出錯的關鍵環節——初值、判斷條件、循環體及終點值,讓你神清氣爽地面對循環,面不改色頭不暈!
一、設置初始值不可急于求成
例1 設計一個算法,計算2+4+6+8+…+98+100的值.
剖析 這是一個直到型循環結構.有的同學只顧前兩個值2和4,而不注意循環體執行帶來的變化.按照前一個流程圖執行出來的結果是2+6+8+…+100.錯誤的原因是I的初始值是4,而循環體中先執行了I=I+2,使得I的值變為了6,而致最終結果少加了4.簡潔的修改可把初始值改為I=2即完成解答.
二、循環體內的執行先后有別
例2 設計一個算法,計算1×2×3×4×…×98×99的值.
剖析 這是一個當型循環結構.按照前一個流程圖執行出來的結果是1×3×4×5×…×100.錯因是循環體中按照箭頭方向先執行了I=I+l,使得I的值變為了3,再執行T=T×I,而致最終結果少乘了2,多乘了100.把T=T×I與I=I+l的順序顛倒一下即可得到正確的算法,算法是對一類問題機械的、統一的解決方法,其步驟的順序不可隨意顛倒.
三、判斷條件要首尾兼顧
例3 寫出一個計算10個數的平均數的偽代碼.
分析 先利用循環結構計算10個數的和S,再計算10個數的平均數.句,先判斷后執行.當I=l時,累加輸入的第1個數,當I=2時,累加輸入的第2個數,當I=3時,累加輸入的第3個數……以此類推,當I=9時,累加輸入的第9個數的和,而當I=10時,卻不符合判斷的條件而結束循環,即第10個數沒有算人S,出錯!簡潔的修改方式可把I<10改為I 四、循環體內的賦值需各司其職 例4 寫出一個計算1/1×3+1/3×5+1/5×7+…+1/99×101而的偽代碼. 剖析 這是直到型結構的Do循環語句.同學們常因對變量S和變量I的認識不清,導致兩者的賦值顛倒,從而出現與所求問題相差很大的結果,一般在循環結構中有兩個變量,一個是變量S,用來貯存累加或累乘的結果;另一個是變量I,用來控制循環的次數和在S的基礎上構建累加或累乘的變量形式, 在高考當中,命題者常常以循環結構為載體考查算法的相關內容.作為初學者,我們要認清循環結構的各種表達方式,比如直到型循環和當型循環,While語句和Do語句,理解它的每一個環節,把握算法是對一類問題機械的、統一的解決方法這一核心觀念,按部就班地檢驗它的初值、判斷條件、循環體及終點值,逐步調整,這樣我們才能夠以不變應萬變,不被循環轉昏了頭!