vb教程,循環(huán)結(jié)構(gòu)_第1頁(yè)
vb教程,循環(huán)結(jié)構(gòu)_第2頁(yè)
vb教程,循環(huán)結(jié)構(gòu)_第3頁(yè)
vb教程,循環(huán)結(jié)構(gòu)_第4頁(yè)
vb教程,循環(huán)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)本章要點(diǎn):

?For...Next循環(huán)?Do...Loop循環(huán)特點(diǎn):重復(fù)相同或相似的操作步驟結(jié)構(gòu):循環(huán)體—要重復(fù)執(zhí)行的語(yǔ)句序列。循環(huán)控制部分—規(guī)定循環(huán)的重復(fù)條件或重復(fù)次數(shù),確定循環(huán)范圍的語(yǔ)句1初值循環(huán)變量6.1For…Next循環(huán)結(jié)構(gòu)1.格式For<循環(huán)變量>=<初值>To<終值>[Step<步長(zhǎng)>]<語(yǔ)句組1>

[ExitFor]<語(yǔ)句組2>Next[<循環(huán)變量>]循環(huán)變量值超過(guò)終值?執(zhí)行循環(huán)體循環(huán)變量+步長(zhǎng)循環(huán)變量后續(xù)語(yǔ)句YesNo2.功能:執(zhí)行過(guò)程如流程圖所示23.說(shuō)明(1)循環(huán)變量——數(shù)值變量(2)初值,終值,步長(zhǎng)——數(shù)值表達(dá)式(3)步長(zhǎng)——可正可負(fù),但不能為0,為1時(shí)可以省略步長(zhǎng)>0時(shí),必須:初值<=終值循環(huán)結(jié)束條件——循環(huán)變量的值>終值步長(zhǎng)<0時(shí),必須:初值>=終值循環(huán)結(jié)束條件——循環(huán)變量的值<終值(4)ExitFor——退出循環(huán),常放在條件語(yǔ)句中(5)Next之后的循環(huán)變量應(yīng)與For語(yǔ)句中的循環(huán)變量應(yīng)一致,也可以省略3Text1

Label3累加分析:累加器(變量)初值S=0

循環(huán)體(重復(fù)執(zhí)行)S=S+I(I=1,2,…,N)PrivateSubCommand1_Click()DimNAsInteger,IAsInteger,SumAsIntegerN=Val(Text1.Text)Sum=0

ForI=1ToN

Sum=Sum+I

NextILabel3.Caption=SumEndSub【例6-1】求1+2+3+4+…+N4思考:1.求12+22+32+42+……+10022.求13+33+53+……+n33.求1-3+5-7+…+(-1)n+1(2n-1)4.求5.求5例:判斷以下程序段的執(zhí)行結(jié)果:

Fori=5To1Step-1Printi*i;NextiPrintPrinti例:判斷以下程序段的執(zhí)行結(jié)果:

X=6ForK=1To10Step-2X=X+KNextKPrintK,X6【例6-2】求N!(N!=1×2×3×…×N)

累乘分析:初始化:F=1循環(huán)體:F=F×I(I=1,2,3……N)程序:PrivateSubCommand1_Click()DimNAsInteger,IAsInteger,FAsLongN=Val(Text1.Text)F=1ForI=1ToNF=F*INextIText2.Text=FEndSub7思考:1.求1×3×5×7……(共N項(xiàng))。2.求:3.求:8【例6-3】打印斐波那契(Fibonacci)數(shù)列的前20項(xiàng)斐波那契數(shù)列如下:0,1,1,2,3,5,8,13,…即從第三項(xiàng)起每一項(xiàng)是其前兩項(xiàng)之和。分析:……PrivateSubForm_Click()A=0:B=1Text1.Text=Text1.Text&Str(A)&Str(B)&_Chr(13)&Chr(10)ForI=1To9A=A+BB=A+BText1.Text=Text1.Text&Str(A)&Str(B)&_Chr(13)&Chr(10)NextIEndSub9思考:1.在窗體上打印1、3、5、7、9、…、N。2.在窗體上顯示1到500之間所有能被3整除的數(shù),每行10個(gè)數(shù)。3.在帶水平滾動(dòng)條文本框中顯示1到指定N之間所有能被3和7同時(shí)整除的數(shù)。4.在帶垂直滾動(dòng)條的文本框中顯示00~3600之間的正弦和余弦值,每隔20求一組值。10例:找出1-1000之間的全部同構(gòu)數(shù)說(shuō)明:如果一個(gè)數(shù)出現(xiàn)在其平方數(shù)的右端,則稱此數(shù)為同構(gòu)數(shù)。如5在5^2=25的右端,25在25^2=625的右端等116.2Do…Loop循環(huán)結(jié)構(gòu)問(wèn)題:求12+22+32+42+…小于某數(shù)N的最大值,N由用戶指定。特點(diǎn):已知循環(huán)條件、未知循環(huán)次數(shù),用Do…Loop循環(huán)結(jié)構(gòu)實(shí)現(xiàn)1.格式格式一:DoWhile<條件>[<語(yǔ)句組1>][ExitDo][<語(yǔ)句組2>]Loop格式二:DoUntil<條件>[<語(yǔ)句組1>][ExitDo][<語(yǔ)句組2>]Loop122.功能使用While<條件>:條件為True時(shí),執(zhí)行循環(huán)體條件為False時(shí),退出循環(huán)使用Until<條件>:條件為False時(shí),執(zhí)行循環(huán)體條件為True時(shí),退出循環(huán)格式一、二:在循環(huán)起始處判斷條件,為當(dāng)型循環(huán)格式三、四:在循環(huán)終止處判斷條件,為直到型循環(huán)格式三:Do[<語(yǔ)句組1>][ExitDo][<語(yǔ)句組2>]LoopWhile<條件>格式四:Do[<語(yǔ)句組1>][ExitDo][<語(yǔ)句組2>]LoopUntil<條件>133.說(shuō)明(1)ExitDo語(yǔ)句用于退出循環(huán)體(2)也可以在Do語(yǔ)句和Loop語(yǔ)句之后都沒有條件,這時(shí)在循環(huán)體內(nèi)必須有強(qiáng)行退出循環(huán)的語(yǔ)句(3)多數(shù)情況下,當(dāng)型循環(huán)和直到型循環(huán)可互相代替【例6-4】求12+22+32+42+…小于某數(shù)N的最大值,N由用戶指定。設(shè)計(jì)界面下圖:Text1Text2Command114

PrivateSubCommand1_Click()DimnAsLong,SAsLongN=Val(Text1.Text)I=0S=0

DoWhileS<N

I=I+1S=S+I*I

LoopText2.Text=S–I*IEndSub初始化循環(huán)體循環(huán)條件UntilS>=NWhileS<N思考:求12+22+32+42+…大于或等于某數(shù)N的最小值15【例6-5】求直至最后一項(xiàng)的值≤10-4為止。分析:用N表示每一項(xiàng)的分母(N=1、3、5…)

用Term表示每一項(xiàng)的值,則Term=1/N

用Sum表示累加和循環(huán)初始條件:N=1,Sum=0

循環(huán)終止條件:Term<=0.000116PrivateSubForm_Click()N=1:Sum=0DoTerm=1/(N*N)Sum=Sum+TermN=N+2LoopUntilTerm<=0.0001Form1.FontSize=12'設(shè)窗體的字體

CurrentY=200

'設(shè)當(dāng)前顯示位置

Print"運(yùn)算結(jié)果為:";SumPrint"最后一項(xiàng)的值為:";TermEndSub17【例6-6】已知某鄉(xiāng)鎮(zhèn)企業(yè)現(xiàn)有產(chǎn)值和年增長(zhǎng)率,試問(wèn)多少年后,該企業(yè)的產(chǎn)值可以翻一番。翻一番后實(shí)際產(chǎn)值是多少?分析:P—現(xiàn)有產(chǎn)值

R—年增長(zhǎng)率

Y—年

V—增長(zhǎng)后的產(chǎn)值,初始值為P累乘:V=P(1+R)(1+R)…退出循環(huán)條件V>=2PText1Text2Text3Text418PrivateSubForm_Click()P=Val(Text1.Text)R=Val(Text2.Text)/100V=P:Y=0DoUntilV>=2*PY=Y+1V=V*(1+R)LoopText3.Text=YText4.Text=Format(V,"0.00")EndSub19【例6-7】給出兩個(gè)正整數(shù)M、N,求它們的最大公約數(shù)和最小公倍數(shù)。分析:求最大公約數(shù)的方法如下(1)以M作被除數(shù),N作除數(shù),求余數(shù)R。(2)如果R不為零,則將除數(shù)N做為新的被除數(shù)M,將余數(shù)R做為新的除數(shù)N,再進(jìn)行相除,得到新的余數(shù)R。(3)如果R仍不等于0,則重復(fù)上述步驟(2)。如果R為零,則這時(shí)的被除數(shù)N就是最大公約數(shù)。最小公倍數(shù)為兩個(gè)數(shù)的積除以它們的最大公約數(shù)。20設(shè)計(jì)界面如下圖所示:

Text1Text2Label3Label421DimAAsInteger,BAsInteger,NAsInteger,_MAsInteger,RAsIntegerPrivateSubCommand1_Click()M=Val(Text1.Text):N=Val(Text2.Text)A=M:B=NR=MModN

DoWhileR<>0M=NN=RR=MModNLoopLabel3.Caption=NEndSubPrivateSubCommand2_Click()Label4.Caption=A*B/NEndSub22【例6-8】給一個(gè)整數(shù)n(n>=3),判斷它是否是素?cái)?shù)分析:將數(shù)N被2—SQR(N)間全部整數(shù)除,如果都除不盡,則N是素?cái)?shù),否則N不是素?cái)?shù)。設(shè)標(biāo)志變量Flag,只要有一個(gè)被整除,就置為1。23PrivateSubCommand1_Click()N=Val(Text1.Text):K=Int(Sqr(N)):I=2Flag=0DoWhileI<=KAndFlag=0IfNModI=0ThenFlag=1ElseI=I+1LoopIfFlag=0ThenLabel1.Caption="是素?cái)?shù)"

ElseLabel1.Caption="不是素?cái)?shù)"

EndIfEndSub246.3循環(huán)的嵌套在一個(gè)循環(huán)體內(nèi)又完整地包含另一個(gè)循環(huán),稱為循環(huán)的嵌套(或多重循環(huán))例:ForI=1To3ForJ=5To7PrintI,JNextJNextI執(zhí)行過(guò)程:……例:ForI=1To3ForJ=1ToIForK=-1To-2S=S+I+J+KNextKNextJNextI執(zhí)行過(guò)程:……25說(shuō)明(1)嵌套的循環(huán)可以是For…Next循環(huán),也可以是Do…Loop循環(huán)(2)FOR循環(huán)有一個(gè)公共端點(diǎn),可使用一個(gè)NEXT語(yǔ)句,循環(huán)變量按從內(nèi)到外排列FORI=1TO3FORJ=5TO7PRINTI,JNEXTJ,IFORI=1TO3FORJ=5TO7PRINTI,JNEXTJNEXTI例:(3)內(nèi)外循環(huán)不應(yīng)交叉例:FORI=...FORJ=......NEXTINEXTJ26(4)嵌套循環(huán)應(yīng)選用不同的循環(huán)變量例:FORI=1...FORJ=......NEXTJ...FORJ=......NEXTJNEXTI27【例6-9】求1+(1+2)+(1+2+3)+…(1+2+3+…+n),n由用戶輸入。分析:……PrivateSubForm_Click()N=Val(Text1.Text)

Sum=0ForI=1ToN

Sum1=0ForJ=1ToI

Sum1=Sum1+JNextJ

Sum=Sum+Sum1NextIText2.Text=SumEndSub28【例6-10】公雞5個(gè)錢一只,母雞三個(gè)錢一只、小雞一個(gè)錢三只,要用100個(gè)錢買100只雞,問(wèn)公雞、母雞、和小雞各買幾只?分析:……PrivateSubForm_Click()DimIAsInteger,JAsInteger,KAsIntegerPrintTab(5);"公雞";Tab(15);"母雞";Tab(25);_"小雞"ForI=0To20ForJ=0To33ForK=0To100Step3IfI*5+J*3+K\3=100AndI+J+K=100ThenPrintTab(5);I;Tab(15);J;Tab(25);KEndIfNextK,J,IEndSub29【例6-11】數(shù)字燈謎。有算式:ABCD-)CDCABCA、B、C、D為非負(fù)一位數(shù)字,要求找出滿足以上算式的A、B、C、D。答案:10981098-9891093

溫馨提示

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

評(píng)論

0/150

提交評(píng)論