資源描述:
《循環(huán)語句學習中應該注意的幾個問題》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、循環(huán)語句學習中應該注意的幾個問題循環(huán)語句是算法語句中很重要的語句,它包括兩種,一種是for循環(huán),一種是while循環(huán)。兩種循環(huán)只是實現(xiàn)方式的不同,但兩種循環(huán)是可以相互轉化的。熟練掌握for循環(huán)和while循環(huán)可以順利實現(xiàn)由無限運算到有限運算的過渡,真正實現(xiàn)運算的革命,但筆者在教授算法的過程中,發(fā)現(xiàn)正確、合理的使用for循環(huán)和while循環(huán)語句,并非一件容易的事情,下面就結合教學的實際談一下學習中應該注意的幾個問題。一、注意for循環(huán)與while循環(huán)的應用for循環(huán)while循環(huán)格式for循環(huán)變量=初值:步長:終值循環(huán)體;endwhile條件循環(huán)體;end適用條件只
2、有“循環(huán)次數確定”的時候才能用for循環(huán)“循環(huán)次數不確定”和“循環(huán)次數不確定”的時候,都能用while循環(huán)循環(huán)過程當程序執(zhí)行時,遇到for語句,首先把初值賦給循環(huán)變量,記下終值和步長,并比較初值和終值,若初值沒有超過終值,就開始執(zhí)行for語句后面的語句,執(zhí)行到end語句時,計算機讓循環(huán)變量增加一個步長值,然后用增值后的循環(huán)變量值與終值比較,如果超過終值,就執(zhí)行end后面的語句,否則執(zhí)行for語句后面的語句。當程序執(zhí)行時,遇到while語句,先判斷條件是否成立,如果成立,則執(zhí)行while和end之間的循環(huán)體,然后再判斷上述條件,再次執(zhí)行循環(huán)體,這個過程反復執(zhí)行,直到
3、某一次不符合條件為止,這時不再執(zhí)行循環(huán)體,將跳到end語句后,執(zhí)行end語句后面的語句。注意點要注意設定好循環(huán)變量的初值、步長、終值,避免出現(xiàn)多一次循環(huán)或者少一次循環(huán)的現(xiàn)象。要注意表達式的寫法,當表達式為真時執(zhí)行循環(huán)體,表達式為假時結束循環(huán)體,以防出現(xiàn)表達式正好相反的錯誤。例1寫出12+22+32+…+1002計算的值的程序。解法1:用while循環(huán)語句寫出循環(huán)過程如下:sum=0;i=1;whilei<=100sum=sum+i^2;i=i+1;endprint(%io(2),sum)解法2:用for循環(huán)語句寫出循環(huán)過程如下:sum=0;fori=1:1:100
4、sum=sum+i^2;endprint(%io(2),sum)二、循環(huán)體中循環(huán)變量是用于控制算法中循環(huán)次數的變量,一般起計數作用,我們經常用到i=i+1等循環(huán)變量的自加操作,但循環(huán)變量的自加位置不當會出現(xiàn)意想不到的結果。例2求1+2+3+…..+20的和。解:i=1;sum=0;whilei<=20sum=sum+i;i=i+1;//循環(huán)變量自加操作endprint(%io(2),sum)例3求2+3+4+…..+21的和。:解:i=1;sum=0;whilei<=20i=i+1;//循環(huán)變量自加操作sum=sum+i;endprint(%io(2),sum)在
5、實際的編程過程中循環(huán)變量自加的位置一定需要斟酌清楚,不然會出現(xiàn)想不到的后果。其實在循環(huán)體中語句的順序直接影響程序執(zhí)行的結果。下面是用歐幾里德算法求最大公約數的程序:很多同學誤寫成下面的程序,而得不出正確的結果:a=input(“a=”);b=input(“b=”);r=modulo(a,b);whiler<>0r=modulo(a,b);a=b;b=r;endprint(%io(2),b)本程序的循環(huán)體中三段代碼的順序決定了,這段程序不會運行出滿意的結果,應該將程序修正為:a=input(“a=”);b=input(“b=”);r=modulo(a,b);whil
6、er<>0a=b;b=r;r=modulo(a,b);endprint(%io(2),b)三、在很多的問題中我們需要在循環(huán)中加入一個記錄循環(huán)次數的變量,用于記錄循環(huán)次數,控制循環(huán),求解循環(huán)次數很容易出現(xiàn)問題,個別同學會忘記初次循環(huán)次數等例4已知fori=(-200):10:300是某一循環(huán)程序中的一句,則該循環(huán)體共執(zhí)行循環(huán)多少次?誤解:因為(300-(-200))÷10=50,因此循環(huán)50次。正解:上述循環(huán)次數可以理解為求閉區(qū)間[-200,300]之間能被10整除的元素的個數,其個數有51個,所以循環(huán)51次人教B版必修3p30例題:求平方值小于1000的最大整數。
7、解:再scilab的文本編輯器中寫出程序如下:代碼:j=1;whilej*j<1000j=j+1;endj=j-1;j很多同學在書寫程序時候,最后到底是輸出j還是j-1產生困惑,這主要是對循環(huán)的次數沒有把握好的原因。下面多舉一組例子以饗讀者:例題:(1)??????i=1;sum=0;whilesum<=20sum=sum+i;i=i+1;endprint(%io(2),i)(2)?????????????i=1;Sum=0;Whilesum<=20i=i+1;Sum=sum+i;endprint(%io(2),i)四、書寫程序中,遇到累加、累乘的情形,我們經常用
8、到循環(huán),但