![VB第3章第3節(jié)3循環(huán)結(jié)構(gòu)課件_第1頁](http://file4.renrendoc.com/view5/M00/0C/10/wKhkGGYJk3aAJDyQAAGCAlrTnGU531.jpg)
![VB第3章第3節(jié)3循環(huán)結(jié)構(gòu)課件_第2頁](http://file4.renrendoc.com/view5/M00/0C/10/wKhkGGYJk3aAJDyQAAGCAlrTnGU5312.jpg)
![VB第3章第3節(jié)3循環(huán)結(jié)構(gòu)課件_第3頁](http://file4.renrendoc.com/view5/M00/0C/10/wKhkGGYJk3aAJDyQAAGCAlrTnGU5313.jpg)
![VB第3章第3節(jié)3循環(huán)結(jié)構(gòu)課件_第4頁](http://file4.renrendoc.com/view5/M00/0C/10/wKhkGGYJk3aAJDyQAAGCAlrTnGU5314.jpg)
![VB第3章第3節(jié)3循環(huán)結(jié)構(gòu)課件_第5頁](http://file4.renrendoc.com/view5/M00/0C/10/wKhkGGYJk3aAJDyQAAGCAlrTnGU5315.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
3.3結(jié)構(gòu)化程序設(shè)計語句語句類別語句名稱順序語句賦值語句結(jié)束語句條件語句條件語句(If語句)選擇語句(Select語句)轉(zhuǎn)移語句Goto語句循環(huán)語句計數(shù)循環(huán)(For/Next語句)條件循環(huán)(Do……Loop語句)3.3結(jié)構(gòu)化程序設(shè)計語句語句類別語句名稱順序語句賦值語句條循環(huán)控制本節(jié)目標1.掌握For循環(huán)(計數(shù)循環(huán))和Do/Loop循環(huán)(條件循環(huán))結(jié)構(gòu)的應(yīng)用。2.理解ExitFor、ExitDo在程序控制中的作用。3.掌握循環(huán)程序設(shè)計的基本方法。4.掌握邏輯運算符的使用。循環(huán)控制本節(jié)目標1.掌握For循環(huán)(計數(shù)循環(huán))和Do/Lo循環(huán)控制
循環(huán)的本質(zhì):不斷地重復某種動作。
在許多問題中需要用到循環(huán)控制。例如,求若干個數(shù)之和:1×1+2×2+3×3=?1+2+3+4+……=?
對計算機程序而言,循環(huán)必須具備兩個重要因素:1.在一定的條件下,重復執(zhí)行一組指令。2.必然出現(xiàn)不滿足條件的情況,使循環(huán)終止。循環(huán)控制循環(huán)的本質(zhì):不斷地重復某種動作。在許多問題中例:求1~100的和。根據(jù)已有的知識,可以用“1+2+……+100”來求解,但顯然很繁瑣?,F(xiàn)在換個思路來考慮:1、首先設(shè)置一個累加器sum,其初值為0;2、利用sum=sum+n
來計算(n依次取1、2、…、100),只要解決以下3個問題即可:(1)將n的初值置為1;(2)每執(zhí)行1次sum=sum+n后,n增加1n=n+1;(3)當n增到101時,停止計算。此時,sum的值就是1~100的累計和。
根據(jù)已有的知識,單獨實現(xiàn)每一步都不難。由于需要經(jīng)常使用這種重復計算結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),VB語言提供了2類循環(huán)語句來實現(xiàn),以簡化、并規(guī)范循環(huán)結(jié)構(gòu)程序設(shè)計。例:求1~100的和。在VB語言中可用以下語句實現(xiàn)循環(huán):1.用Goto和If構(gòu)成循環(huán)2.For語句3.Do~Loop語句在VB語言中可用以下語句實現(xiàn)循環(huán):1.用Goto和If構(gòu)3.3.3循環(huán)結(jié)構(gòu)語句一、計數(shù)循環(huán)控制語句(ForNext語句)語句功能:按指定的次數(shù)重復執(zhí)行某組語句。語句格式:For循環(huán)變量=初值To終值[Step步長值]語句塊[ExitFor]
語句塊Next[循環(huán)變量]流程圖:3.3.3循環(huán)結(jié)構(gòu)語句說明:(1)循環(huán)變量必須是數(shù)值型變量。
(2)初值、終值、步長值可以是表達式。它們的類型必須與循環(huán)變量的類型相同。
(3)步長值可以是正數(shù)(初值應(yīng)當小于終值)或負數(shù)(初值應(yīng)當大于終值)。缺省值為1。(4)ExitFor:退出循環(huán),執(zhí)行Next語句的后繼語句。(5)For與Next中間的語句塊稱為循環(huán)體,可以是多個語句。例如:
ForI=1To10Step1TextBox1.Text=TextBox1.Text&I&""NextI該程序段執(zhí)行10次循環(huán),在文本框內(nèi)輸出結(jié)果為:12345678910說明:例:求1~100的累計和
Fori=1To100sum=sum+iNexti計算機執(zhí)行For語句的過程:1)將初值賦予循環(huán)變量。2)判斷循環(huán)變量的值是否小于等于循環(huán)終值(步長值為正),如果條件滿足,則執(zhí)行循環(huán)體內(nèi)的語句,循環(huán)變量增加步長值;否則循環(huán)結(jié)束,執(zhí)行Next語句的后繼語句。例:求1~100的累計和【例3—17】計算并輸出下列調(diào)和級數(shù)前10項之和:
DimIAsInteger,SAsSingleS=0ForI=1To10S=S+1/INextIMessageBox.Show("S="&S)【例3—17】計算并輸出下列調(diào)和級數(shù)前10項之和:【例3—18】學生成績統(tǒng)計。用For-Next語句實現(xiàn)例3—16要求的功能。smax=-1:smin=101
Fornum=1To30
ch="請輸入第"&num&"個學生的成績"
s=InputBox(ch)'輸入學生成績
sum=sum+s'學生成績累加'保留最高分及對應(yīng)學號
Ifs>smaxThensmax=s:nummax=num'保留最低分及對應(yīng)學號
Ifs<sminThensmin=s:nummin=numNextnum【例3—18】學生成績統(tǒng)計。用For-Next語句實現(xiàn)例3—【例3—19】
輸入一個正整數(shù)n,判斷其是否為素數(shù),若是素數(shù),輸出“是素數(shù)”;否則輸出“不是素數(shù)”。
DimNAsInteger,IAsIntegerN=InputBox("請輸入一個整數(shù):","例題")ForI=2ToN-1IfNModI=0ThenMessageBox.Show(N&"不是素數(shù)”)GoTo10EndIfNextIMessageBox.Show(N&"是素數(shù)”)10:不是素數(shù),輸出以后轉(zhuǎn)移。【例3—19】輸入一個正整數(shù)n,判斷其是否為素數(shù),若是素錯誤使用Goto語句的例子:
Fori=1To1010:MessageBox.Show("循環(huán)體")
Nexti
GoTo10錯誤:從循環(huán)外轉(zhuǎn)到循環(huán)內(nèi)錯誤使用Goto語句的例子:在使用循環(huán)語句時,還應(yīng)注意:在循環(huán)體內(nèi)不能改變循環(huán)變量的初值、終值、步長值。例如:
a=2:b=6:c=2Fori=aTobStepca=3:b=10:c=1TextBox1.Text=TextBox1.Text&i&""Nexti程序執(zhí)行結(jié)果為:
246
在使用循環(huán)語句時,還應(yīng)注意:在循環(huán)體內(nèi)不能改變循環(huán)變量的初值循環(huán)語句嵌套:在一個循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)包含另一個或多個循環(huán)結(jié)構(gòu)(也稱為多重循環(huán))。例如:Form=1To9
Forn=1To9
TextBox1.Text=TextBox1.Text&m*n&""NextnTextBox1.Text=TextBox1.Text&vbCrLfNextm循環(huán)語句嵌套:在一個循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)包含另一個或多個循環(huán)結(jié)注意:(1)內(nèi)外層循環(huán)不能交叉,例如:ForI=1To5ForJ=1To5::NextINextJ(2)嵌套循環(huán)變量名不可相同,例如:ForI=1To5ForI=1To5::NextINextI注意:【例3—20】利用FOR循環(huán)結(jié)構(gòu)語句,在文本框內(nèi)顯示由*號組成的下列圖形:
*************************【例3—20】利用FOR循環(huán)結(jié)構(gòu)語句,在文本框內(nèi)顯示由*號組DimIAsInteger,JAsIntegerForI=1To5TextBox1.Text=TextBox1.Text&Space(8-I)
ForJ=1To2*I-1TextBox1.Text=TextBox1.Text&"*"NextJTextBox1.Text=TextBox1.Text&vbCrLfNextI外層I循環(huán)控制行數(shù);內(nèi)層J循環(huán)控制列數(shù)使用Space函數(shù)輸出空格以確定每行輸出的起始位置。外層循環(huán)中的vbCrlf起換行的作用DimIAsInteger,JAsInteger【例3—21】在文本框內(nèi)顯示2到100之間的素數(shù),要求每行輸出5個素數(shù)。
DimIAsInteger,KAsInteger,NAsIntegerFork=2To100ForI=2Tok-1IfkModI=0ThenGoTo10EndIfNextIIfk<10ThenTextBox1.Text=TextBox1.Text&k&Space(3)ElseTextBox1.Text=TextBox1.Text&k&Space(2)EndIfN=N+1IfN=5ThenN=0:TextBox1.Text=TextBox1.Text&vbCrLf10:NextK
每行輸出5個數(shù)字依次判斷2~100之間的每一個數(shù)【例3—21】在文本框內(nèi)顯示2到100之間的素數(shù),要求每行輸請考慮:如何將【例3—9】改成由For-Next構(gòu)成的循環(huán)結(jié)構(gòu)(假設(shè)循環(huán)10次)。學習要點熟練使用For-Next語句進行程序設(shè)計。請考慮:如何將【例3—9】改成由For-Next構(gòu)成的循環(huán)結(jié)二、條件循環(huán)控制當型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PAFTAPTF1、流程圖中P是條件;
A可以是一個簡單語句,也可以是一個基本結(jié)構(gòu)2、條件循環(huán)控制用于處理無法預先確定循環(huán)次數(shù)的情況二、條件循環(huán)控制當型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)PAFTAPTF(一)四種形式的條件循環(huán)控制語句DoWhile<條件><語句塊>LoopDo<語句塊>LoopWhile<條件>DoUntil<條件><語句塊>LoopDo<語句塊>LoopUntil<條件>先測型后測型(一)四種形式的條件循環(huán)控制語句DoWhile<條件>D1.Do……LoopWhile語句語句功能:重復執(zhí)行循環(huán)體內(nèi)的語句,直到條件不成立(條件值為False)。語句格式:
Do
語句塊
LoopWhile條件說明:(1)條件可以是關(guān)系表達式、邏輯表達式、數(shù)值表達式。數(shù)值表達式的值非0,則為True(條件滿足);數(shù)值表達式的值為0條件值為False(條件不滿足)。例如:1.Do……LoopWhile語句s=5DoPrintss=0LoopWhile
s進入循環(huán)后條件表達式S的值等于0,即條件值為False,因此循環(huán)結(jié)束。(2)Do……Loop中間的語句塊稱為循環(huán)體,可以包含多個語句。
s=5(3)計算機執(zhí)行Do……LoopWhile語句的過程:
1)首先執(zhí)行Do和Loop之間的語句。
2)當執(zhí)行到Loop語句時,進行條件判斷。若值是True(滿足條件),則繼續(xù)執(zhí)行Do和Loop之間的語句塊(循環(huán))。若值是False(不滿足條件),則循環(huán)結(jié)束,執(zhí)行Do……LoopWhile語句的后繼語句。例:
DoPW=InputBox("輸入密碼")
LoopWhilePW<>"ABCD"該程序段將反復執(zhí)行,直到輸入正確的密碼“ABCD”后循環(huán)結(jié)束。
(3)計算機執(zhí)行Do……LoopWhile語句的過程:2.Do……LoopUntil語句語句功能:重復執(zhí)行循環(huán)體內(nèi)的語句,直到條件成立(條件值為True)。語句格式:
Do
語句塊
LoopUntil條件說明:(1)語句中的條件與Do……LoopWhile語句的條件相同。(2)計算機執(zhí)行Do……LoopUntil語句的過程:2.Do……LoopUntil語句1)首先執(zhí)行Do和Loop之間的語句。
2)當執(zhí)行到Loop語句時,進行條件判斷。與Do……LoopWhile相反,若值是False(不滿足條件),則繼續(xù)執(zhí)行Do和Loop之間的語句塊(循環(huán))。若值是True(滿足條件),則循環(huán)結(jié)束,執(zhí)行Do……LoopUntil語句的后繼語句。
例:
DoPW=InputBox("輸入密碼")
LoopUntilPW="ABCD"注意,Do……LoopWhile語句與Do……LoopUntil語句對條件的邏輯設(shè)置相反。1)首先執(zhí)行Do和Loop之間的語句。3.DoWhile……Loop語句語句功能:若條件成立,則重復執(zhí)行循環(huán)。語句格式:DoWhile條件語句塊
Loop說明:(1)語句中的條件與Do……LoopWhile語句的條件相同。(2)計算機執(zhí)行DoWhile……Loop語句的過程:3.DoWhile……Loop語句首先判斷DoWhile語句后的條件,若值是True,則執(zhí)行Do和Loop之間的語句;若值是False,則循環(huán)結(jié)束,執(zhí)行DoWhile……Loop語句的后繼語句。例:PW=InputBox("輸入密碼")
DoWhilePW<>"ABCD"PW=InputBox("輸入密碼")
Loop該程序段首先判斷變量PW的值是否為“ABCD”,若不是“ABCD”則執(zhí)行循環(huán),直到輸入“ABCD”后循環(huán)結(jié)束。首先判斷DoWhile語句后的條件,若值是True,則執(zhí)行4.DoUntil……Loop語句
語句功能:若條件不成立,則重復執(zhí)行循環(huán)。語句格式:
DoUntil條件語句
Loop說明:(1)語句中的條件與前三種語句的條件相同。(2)計算機執(zhí)行DoUntil……Loop語句的過程:首先判斷DoUntil語句后的條件,若值是False,則執(zhí)行Do和Loop之間的語句;若值是True,則循環(huán)結(jié)束,執(zhí)行DoUntil……Loop語句的后繼語句。4.DoUntil……Loop語句例:PW=InputBox("輸入密碼")
DoUntilPW="ABCD"PW=InputBox("輸入密碼")
Loop該程序段首先判斷變量PW的值是否為“ABCD”,若不是“ABCD”則執(zhí)行循環(huán),直到輸入“ABCD”后循環(huán)結(jié)束。注意:DoWhile……Loop語句與DoUntil……Loop語句對條件的邏輯設(shè)置是相反的例:PW=InputBox("輸入密碼")4種條件語句的比較:1)
DoPW=InputBox("輸入密碼")LoopWhilePW<>"ABCD"2)DoPW=InputBox("輸入密碼")LoopUntilPW="ABCD"4種條件語句的比較:3)PW=InputBox("輸入密碼")DoWhilePW<>"ABCD"PW=InputBox("輸入密碼")Loop4)PW=InputBox("輸入密碼")DoUntilPW="ABCD"PW=InputBox("輸入密碼")Loop3)(二)條件循環(huán)控制的幾個問題(1)循環(huán)次數(shù):取決于循環(huán)體的各語句如何去影響循環(huán)終止條件。條件表達式中的各個變量可稱為循環(huán)控制變量。例如:
k=10
DoWhilek<>0
a=a+1
b=b+1
Loop
結(jié)果:“死循環(huán)”----重復不停地執(zhí)行循環(huán)體。
修改方法:在Loop語句前可增加一個諸如
k=k-1的語句。(二)條件循環(huán)控制的幾個問題(2)四種不同形式的條件循環(huán),根據(jù)其功能可分成兩類:1)在循環(huán)之前先判斷條件是否成立(先判后做)
DoWhile……Loop與DoUntil……Loop2)在循環(huán)之后判斷條件是否成立(先做后判)
Do……LoopWhile與Do……LoopUntil兩類循環(huán)的區(qū)別:“先做后判”時循環(huán)至少被執(zhí)行一次,而“先判后做”時循環(huán)可能一次也不被執(zhí)行。(2)四種不同形式的條件循環(huán),根據(jù)其功能可分成兩類:(3)在DoWhile或DoUntil語句之前,一般應(yīng)先確定循環(huán)控制變量的初值。例如:
s=InputBox("請輸入:")
DoWhiles<9999
Sum=sum+s
s=InputBox("請輸入:")
Loop(4)條件循環(huán)語句允許循環(huán)嵌套。(5)在條件循環(huán)中可以使用ExitDo語句,以退出循環(huán)。(3)在DoWhile或DoUntil語句之前,一般Do…Loop語句DoWhile<條件><語句塊>LoopDo<語句塊>LoopWhile<條件>DoUntil<條件><語句塊>LoopDo<語句塊>LoopUntil<條件>
Until<條件>相當于Whilenot<條件>可用ExitDo中止循環(huán)先測型后測型Do…Loop語句DoWhile<條件>DoDoUnt先測型與后測型的比較先測試條件至少執(zhí)行一次Yes條件語句塊Loop的下條語句No條件語句塊Loop的下條語句YesNo先測型與后測型的比較先測試條件至少執(zhí)行一次Yes條件語句塊L【例3—22】計算并顯示滿足下列不等式的調(diào)和級數(shù)的項數(shù):1+1/2+1/3+……+1/n>E用循環(huán)結(jié)構(gòu)求級數(shù)和的問題:求級數(shù)和的項數(shù)和精度都是有限的,否則可能會溢出或死循環(huán),本例根據(jù)某項值的精度控制循環(huán)的結(jié)束。累加與連乘累加:在原有和的基礎(chǔ)上一次次地加上一個數(shù),如e=e+t;連乘:在原有積的基礎(chǔ)上一次次地乘以一個數(shù),如n=n*I。【例3—22】計算并顯示滿足下列不等式的調(diào)和級數(shù)的項數(shù):【例3—23】從鍵盤輸入兩個正整數(shù)m和n,用輾轉(zhuǎn)相除法計算并輸出m和n的最大公約數(shù)。
算法簡介:設(shè)m=na+r1(0≤r1<n),即m除以n的余數(shù)為r1,那么m和n的最大公約數(shù)與n和r1的最大公約數(shù)相同。若r1=0,則n就是m和n的最大公約數(shù)。若r1≠0,再對n和r1重復上面的過程,直到求出rn=0為止。算法演示:(VB_NEW)【例3—23】從鍵盤輸入兩個正整數(shù)m和n,用輾轉(zhuǎn)相除法計算并DimaAsInteger,bAsInteger,rAsIntegera=InputBox("請輸入第一個數(shù)據(jù)")b=InputBox("請輸入第二個數(shù)據(jù)")Dor=aModba=b:b=rLoopWhiler<>0MessageBox.Show(a&“和”&b&“的最大_公約數(shù)是"&a)DimaAsInteger,bAsInteger【例3—24】編寫一個譯碼程序,將一個由大寫字母組成的英語句子譯成數(shù)字代碼。譯碼規(guī)則:以數(shù)字1代替字母A、數(shù)字2代替字母B、……、數(shù)字26代替字母Z,如遇空格則輸出*號。英語句子以句號結(jié)束。
設(shè)letter為字符串變量,存放輸入的一個大寫字母;code為整型變量,存放某大寫字母譯碼后對應(yīng)的數(shù)字編碼。
由編碼規(guī)則可知,字母的數(shù)字編碼都在1到26之間,因此譯碼的算法如下:
code=asc(letter)-asc("A")+1【例3—24】編寫一個譯碼程序,將一個由大寫字母組成的英語句【例3—25】從鍵盤輸入任意正數(shù)m,編程計算第一個不小于m的Fibonacci數(shù)及其項號(即最小n和Fm,使Fn≥m)。已知Fibonacci數(shù)列定義如下:
F0=0,F(xiàn)1=1,F(xiàn)2=1,…,F(xiàn)n+2=Fn+1+Fn(n>0)
主要程序:m=InputBox("請輸入一個正整數(shù):")
fst=0:snd=1:n=2DoUntils
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度教學儀器知識產(chǎn)權(quán)保護合同
- 全新轎車購買合同范本
- 2025年度金融貸款居間風險控制合同
- 全國授權(quán)合同范本
- 養(yǎng)鵝合同范例
- 切割支撐合同范本
- 業(yè)主和裝修工長合同范例
- 2025年度花卉市場渠道建設(shè)與拓展合同
- 自愿租賃房屋意向合同范本
- n 1賠償合同范本
- 2024年事業(yè)單位租車服務(wù)滿意度調(diào)查及改進協(xié)議3篇
- 婦產(chǎn)科醫(yī)生個人年終述職報告課件
- 2025年全國低壓電工作業(yè)證理論考試題庫(含答案)
- JGJ-T188-2009施工現(xiàn)場臨時建筑物技術(shù)規(guī)范
- 教師資格考試高級中學美術(shù)學科知識與教學能力試題與參考答案(2024年)
- 2025年人教版高考生物一輪復習:綜合PCR的基因工程問題
- 鋼筋焊接工藝性試驗方案
- 2024年福建省新高考生物試卷真題(含答案解析)
- GB/T 44273-2024水力發(fā)電工程運行管理規(guī)范
- 醫(yī)院突發(fā)性事件、護理重點環(huán)節(jié)、醫(yī)院病區(qū)等應(yīng)急預案
- 2024年政工職稱考試題庫(含答案)
評論
0/150
提交評論