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