循環(huán)語句2 完整版課件_第1頁
循環(huán)語句2 完整版課件_第2頁
循環(huán)語句2 完整版課件_第3頁
循環(huán)語句2 完整版課件_第4頁
循環(huán)語句2 完整版課件_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1.2.3循環(huán)語句[例1]編寫程序,用計算機求出1+2+3+4+…+1000的和.[解析]

所求算式要求反復進行加法運算,取sum作為循環(huán)變量,初值為0,取i作計數(shù)變量,初值為1,程序如下:sum=0i=1WHILE

i<=1000

sum=sum+i

i=i+1WENDPRINT

sumEND也可以用UNTIL語句,設計程序如下:sum=0i=1DOsum=sum+ii=i+1LOOP

UNTIL

i>1000PRINT

sumEND.[點評]注意體會用兩種不同循環(huán)語句寫出的算法的共同點與不同點.弄清它們的區(qū)別與聯(lián)系.[解析]

所有分母中的第一個數(shù),前項與后項相差2,故取i初值為1,步長為2,用i=i+2實現(xiàn),而分母的兩個數(shù)相差3,前一個為i,則后一個為i+3,則分母為i(i+3).i=1S=0WHILE

i<=99

T=i*(i+3)

S=S+1/T

i=i+2WENDPRINT

SEND答案:仔細觀察以上這十一個算式的特點可以發(fā)現(xiàn)它們都是有規(guī)律的表達式的和與例1具有相同的形式,所不同的只是表達式的區(qū)別(循環(huán)體中算式的區(qū)別)和項數(shù)的差別(條件不同)及“步長”的差別(通過循環(huán)體中計數(shù)變量的算式來控制.)程序如下(前測試型)(1)i=1

(2)i=1

s=0

s=0

WHILE

i<=100 WHILE

i<=100

s=s+i^2 s=s+i^3

i=i+1 i=i+1

WEND WEND

PRINT

s PRINT

s

END END(3)i=1

(4)i=1

s=0s=0

WHILE

i<=10000 WHILE

i<=1000

s=s+SQR (i)s=s+1/i

i=i+1 i=i+1

WEND WEND

PRINT

s PRINT

s

END END(5)i=1

(6)i=1

s=0s=0

WHILE

i<=99 WHILE

i<=99

s=s+i/(i+1) s=s+i*(i+1)

i=i+1 i=i+1

WEND WEND

PRINT

s PRINT

s

END END(7)i=1

(8)i=1

s=0 s=0

WHILE

i<=99 WHILE

i<=999

s=s+1/(i*(i+1)) s=s+i

i=i+1 i=i+2

WEND WEND

PRINT

s PRINT

s

END END(9)i=2

(10)i=1

s=0s=1

WHILE

i<=1000WHILE

i<=100

s=s+i

s=s*i

i=i+2 i=i+1

WEND WEND

PRINT

s PRINT

s

END END(11)i=1

s=0

WHILE

i<=99

s=s+i^2

i=i+2

WEND

j=2

T=0

WHILE

j<=100

T=T+j^2

j=j+2

WEND

W=S-T

PRINT

W

END或i=1S=0WHILE

i<=100S=S+((-1)^(i+1))*i^2i=i+1WENDPRINT

SEND.請想一想用后測試型來寫算法應將上述算法怎樣改?略.通過本例要很好地體會:算法的意義,用算法表達程序中的注意事項,循環(huán)語句與條件語句表達問題的特點、聯(lián)系與區(qū)別.[例2]求平方值小于2000的最大整數(shù).[解析]

可以把最小的正整數(shù)1賦給變量i,計算出其平方值,判斷其是否小于2000,若小于2000,將i+1的值賦給變量i,即對變量i進行累加,并判斷其平方值是否小于2000,直到i2值大于2000時,停止循環(huán),將i值減去1就是所求的最大整數(shù).程序框圖如圖.根據(jù)以上程序框圖,可設計程序如下:

i=1

T=1WHILE

T<2000

i=i+1

T=i^2WEND

i=i-1PRINT

iEND[點評]

(1)此問題中所求最大整數(shù)應是i-1,故最后重新賦值i=i-1后輸出.(2)本題也可利用UNTIL語句編寫程序如下:3.請思考改為求平方值大于2000的最小整數(shù),該怎樣修改程序.最關鍵的是要明確,例2在當型循環(huán)中條件不滿足時,i的值已比滿足條件的i值大了1,還應注意i=i+1與T=i^2語句的先后順序?qū)敵霰磉_式的影響.編寫程序?qū)?000以內(nèi)的完全平方數(shù)輸出,畫出程序框圖,并寫出算法語句.[解析]

程序框圖如圖.程序設計如下:[例3]某玩具廠1996年的生產(chǎn)總值為200萬元,如果年生產(chǎn)增長率為5%,計算最早在哪一年生產(chǎn)總值超過300萬元.[解析]

依題意,從1996年底開始,經(jīng)過x年后生產(chǎn)總值為200×(1+5%)x因此可將1996年生產(chǎn)總值賦給變量a,然后對其進行累乘,用n作為計數(shù)變量進行循環(huán),直到a的值超過300萬元為止.程序框圖如圖.程序語句為:[例4]分析下面程序的算法功能,畫出其算法的程序框圖. [解析]

可以看出這是一個用循環(huán)語句編寫的程序,第一次循環(huán)取x=-1,第二次取x=-1+0.2,…,最后一次取x=1,這實際上就是把區(qū)間[-1,1]平均分成10等份,求函數(shù)f(x)=x3在區(qū)間的端點及各等分點處的函數(shù)值問題.該算法的程序框圖如圖所示.根據(jù)以下給出的程序,畫出其相應的程序框圖,并指明該算法的功能.[解析]

這是一個利用WHILE循環(huán)語句編寫的程序,從S=1,n=1開始,第一次循環(huán)求1×1,第二次求1×2,第三次求1×2×3,…,第n次求1×2×3×…×n,因此該程序是求使1×2×…×n<5000的最大整數(shù)n.該算法的程序框圖如圖所示.[例5]已知m、n是兩個正整數(shù),求m+n<10的所有正整數(shù)對m,n.[解析]

當m=1時,n從1到8循環(huán),m從1到8循環(huán),需用兩個循環(huán)語句實現(xiàn),程序如下:m=1WHILE

m<=8

n=1

WHILE

n<=9-m

IF

m+n<10

THEN

PRINT

m,n

ENDIF

n=n+1

WENDm=m+1WENDEND[點評]

1°用后測試型循環(huán)語句編寫程序如下:m=1DOn=1DOIF

m+n<10

THENPRINT

m,nn=n+1LOOP

UNTIL

n>9-mm=m+1LOOP

UNTIL

m>8END2°在循環(huán)嵌套語句中一定要注意WHILE與WEND、DO與LOOPUNTIL的配套,中間使用IF語句時也要注意IF-THEN與ENDIF的配套,表明它們的起始和結(jié)束.3°實現(xiàn)循環(huán)的手段較多,在QBASIC中,可以是WHILE型,也可以是UNTIL型,實際解決問題時,各種方法可以據(jù)題目特點靈活選取.關鍵是把握問題的結(jié)構(gòu)特征.從中找出循環(huán)部分,然后恰當引入循環(huán)變量和計數(shù)變量加以表達,特別注意的是判斷條件的掌握,另外要注意在嵌套循環(huán)語句中,搞清每一個循環(huán)要解決什么問題(或達到什么目的),由哪個變量來控制此循環(huán)的開始和結(jié)束,在什么情況下跳出循環(huán).程序如下:[點評]可以用不同方式編寫程序.如:(1)sum=0i=1WHILE

i<=99

j=1

t=0

DOt=t+j/(j+1)j=j+1

LOOPUNTIL

j>i

sum=sum+t

i=i+1WENDPRINT

sumEND

你還會用其它方式編寫嗎?[例6]從鍵盤輸入50個學生的成績,輸出平均分及不及格(小于60分)的人數(shù).[錯解]

N=1M=0sum=0DOINPUT

“G=”;Gsum=sum+GIF

G<60

THEN

M=M+1ENDIFLOOP

UNTIL

N<=50

N=N+1PRINT

“平均分為:”;sum/50PRINT

“不及格人數(shù)為:”;MEND.[辨析]

1.UNTIL語句中的控制條件與WHILE語句中的控制條件不同,在UNTIL語句中當條件滿足時跳出循環(huán),否則返回去繼續(xù)循環(huán),故這里條件應為N>50.2.賦值語句N=N+1位置不對,應在UNTIL語句前面.[正解]

算法分析:這里有兩個任務:一個是計算平均分,用總分除以人數(shù),用變量sum來統(tǒng)計總分數(shù),一個是統(tǒng)計不及格人數(shù),用變量M來統(tǒng)計,用計數(shù)變量N控制循環(huán)次數(shù).其WHILE語句程序為:N=1M=0sum=0WHILE

N<=50

INPUT

“G=”;G

sum=sum+G

IF

G<60

THEN

M=M+1

ENDIF

N=N+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論