vb教程,循環(huán)結構_第1頁
vb教程,循環(huán)結構_第2頁
vb教程,循環(huán)結構_第3頁
vb教程,循環(huán)結構_第4頁
vb教程,循環(huán)結構_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章循環(huán)結構程序設計本章要點:

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

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

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

循環(huán)體(重復執(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í)行結果:

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

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項)。2.求:3.求:8【例6-3】打印斐波那契(Fibonacci)數列的前20項斐波那契數列如下:0,1,1,2,3,5,8,13,…即從第三項起每一項是其前兩項之和。分析:……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整除的數,每行10個數。3.在帶水平滾動條文本框中顯示1到指定N之間所有能被3和7同時整除的數。4.在帶垂直滾動條的文本框中顯示00~3600之間的正弦和余弦值,每隔20求一組值。10例:找出1-1000之間的全部同構數說明:如果一個數出現在其平方數的右端,則稱此數為同構數。如5在5^2=25的右端,25在25^2=625的右端等116.2Do…Loop循環(huán)結構問題:求12+22+32+42+…小于某數N的最大值,N由用戶指定。特點:已知循環(huán)條件、未知循環(huán)次數,用Do…Loop循環(huán)結構實現1.格式格式一:DoWhile<條件>[<語句組1>][ExitDo][<語句組2>]Loop格式二:DoUntil<條件>[<語句組1>][ExitDo][<語句組2>]Loop122.功能使用While<條件>:條件為True時,執(zhí)行循環(huán)體條件為False時,退出循環(huán)使用Until<條件>:條件為False時,執(zhí)行循環(huán)體條件為True時,退出循環(huán)格式一、二:在循環(huán)起始處判斷條件,為當型循環(huán)格式三、四:在循環(huán)終止處判斷條件,為直到型循環(huán)格式三:Do[<語句組1>][ExitDo][<語句組2>]LoopWhile<條件>格式四:Do[<語句組1>][ExitDo][<語句組2>]LoopUntil<條件>133.說明(1)ExitDo語句用于退出循環(huán)體(2)也可以在Do語句和Loop語句之后都沒有條件,這時在循環(huán)體內必須有強行退出循環(huán)的語句(3)多數情況下,當型循環(huán)和直到型循環(huán)可互相代替【例6-4】求12+22+32+42+…小于某數N的最大值,N由用戶指定。設計界面下圖: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+…大于或等于某數N的最小值15【例6-5】求直至最后一項的值≤10-4為止。分析:用N表示每一項的分母(N=1、3、5…)

用Term表示每一項的值,則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'設窗體的字體

CurrentY=200

'設當前顯示位置

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

R—年增長率

Y—年

V—增長后的產值,初始值為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】給出兩個正整數M、N,求它們的最大公約數和最小公倍數。分析:求最大公約數的方法如下(1)以M作被除數,N作除數,求余數R。(2)如果R不為零,則將除數N做為新的被除數M,將余數R做為新的除數N,再進行相除,得到新的余數R。(3)如果R仍不等于0,則重復上述步驟(2)。如果R為零,則這時的被除數N就是最大公約數。最小公倍數為兩個數的積除以它們的最大公約數。20設計界面如下圖所示:

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】給一個整數n(n>=3),判斷它是否是素數分析:將數N被2—SQR(N)間全部整數除,如果都除不盡,則N是素數,否則N不是素數。設標志變量Flag,只要有一個被整除,就置為1。23PrivateSubCommand1_Click()N=Val(Text1.Text):K=Int(Sqr(N)):I=2Flag=0DoWhileI<=KAndFlag=0IfNModI=0ThenFlag=1ElseI=I+1LoopIfFlag=0ThenLabel1.Caption="是素數"

ElseLabel1.Caption="不是素數"

EndIfEndSub246.3循環(huán)的嵌套在一個循環(huán)體內又完整地包含另一個循環(huán),稱為循環(huán)的嵌套(或多重循環(huán))例:ForI=1To3ForJ=5To7PrintI,JNextJNextI執(zhí)行過程:……例:ForI=1To3ForJ=1ToIForK=-1To-2S=S+I+J+KNextKNextJNextI執(zhí)行過程:……25說明(1)嵌套的循環(huán)可以是For…Next循環(huán),也可以是Do…Loop循環(huán)(2)FOR循環(huán)有一個公共端點,可使用一個NEXT語句,循環(huán)變量按從內到外排列FORI=1TO3FORJ=5TO7PRINTI,JNEXTJ,IFORI=1TO3FORJ=5TO7PRINTI,JNEXTJNEXTI例:(3)內外循環(huán)不應交叉例:FORI=...FORJ=......NEXTINEXTJ26(4)嵌套循環(huán)應選用不同的循環(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個錢一只,母雞三個錢一只、小雞一個錢三只,要用100個錢買100只雞,問公雞、母雞、和小雞各買幾只?分析:……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】數字燈謎。有算式:ABCD-)CDCABCA、B、C、D為非負一位數字,要求找出滿足以上算式的A、B、C、D。答案:10981098-9891093

溫馨提示

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

評論

0/150

提交評論