




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章
VisualBasic的基本控制結構1第4章:VisualBasic的基本控制結構4.1順序結構2第4章:VisualBasic的基本控制結構4.1順序結構
順序結構是程序設計中最基本、最簡單的結構,在此結構中,程序按照語句出現的先后順序依次執行。順序結構是任何程序的基本結構,即使在選擇結構和循環結構中也包含有順序結構。語句1語句n第4章:VisualBasic的基本控制結構4.1順序結構
【例4.1】單擊窗體,在窗體上輸出兩行不同格式的文字。新建工程,在窗體的Click事件中添加以下代碼:PrivateSubForm_Click()Form1.FontSize=12Form1.ForeColor=vbRedForm1.Print"您好"Form1.FontSize=16Form1.ForeColor=vbBlueForm1.Print"歡迎學習VisualBasic"EndSub第4章:VisualBasic的基本控制結構4.2選擇結構5第4章:VisualBasic的基本控制結構4.2選擇結構
選擇結構是根據某個條件決定執行哪部分程序,可以用If語句或SelectCase語句實現。其中If語句根據分支的多少分為單分支、雙分支和多分支If語句。SelectCase語句使程序只能根據某一個條件的不同取值來決定執行哪部分程序。大部分情況下兩種語句間可以相互替換。第4章:VisualBasic的基本控制結構1.If…Then語句(單分支語句)語句格式如下:
(1)If<條件表達式>Then<語句塊>EndIf(2)If<條件表達式>Then<語句>
其中條件表達式可以是任意類型的,語句塊可以是一條或多條語句。若用簡單的形式(2)表示,則只能有一條語句或語句間用冒號分隔,并且必須寫在同一行上。該語句的作用是當條件表達式的值為True或非0數值時,執行Then后面的語句塊(或語句),否則跳過此語句,直接執行If語句后面的語句。4.2.1If語句條件表達式語句塊FalseTrue第4章:VisualBasic的基本控制結構2.If…Then…Else語句(雙分支結構)
語句格式如下:(1)If<條件表達式>Then
<語句塊1>
Else
<語句塊2>
EndIf(2)If<條件表達式>Then<語句1>Else<語句2>
該語句的作用是當條件表達式的值為非零(True)時,執行Then后面的語句塊1(或語句1),否則執行Else后面的語句塊2(或語句2)。4.2.1If語句條件表達式語句塊1語句塊2TrueFalse第4章:VisualBasic的基本控制結構例:計算分段函數y的值。PrivateSubCmdCalculate_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text) ‘輸入
Ifx<0Theny=5*x+Exp(x)-2Elsey=2*Sqr(x+7)-6EndIfText2.Text=Cstr(y)‘輸出EndSubcmdCalculateText1第4章:VisualBasic的基本控制結構4.2.1If語句3.If…Then…ElseIf語句(多分支結構)當要處理的實際問題有多個條件時,就要用到該語句結構。語句格式如下:
If<條件表達式1>Then<語句塊1>ElseIf<條件表達式2>Then<語句塊2>…[Else<語句塊n+1>]EndIf
該語句的執行過程是:如果“條件表達式1”的值為True,則執行“語句塊1”;如果“條件表達式2”的值為True,則執行“語句塊2”;……;如果所有的ElseIf子句后面的條件表達式都不為True,則執行Else后面的“語句塊n+1”,Else是可選項。對于整個塊結構條件語句,“語句塊1”、“語句塊2”、……“語句塊n+1”中只能有一塊被執行。第4章:VisualBasic的基本控制結構If…Then…ElseIf多分枝結構流程圖條件1語句塊1語句塊2語句塊n語句塊n+1條件2條件nTrueTrueTrueFalseFalseFalse第4章:VisualBasic的基本控制結構4.2.1If語句【例4.2】輸入三個互不相同的整數,將其中的最大值存入變量max中并顯示。【例4.3】用鍵盤輸入一字符,判斷該字符是小寫字母、大寫字母、數字字符還是其他字符,并作相應的顯示。第4章:VisualBasic的基本控制結構4.2.1If語句
4.If語句的嵌套
If語句的嵌套是指If或Else后面的語句塊中又包含If語句。下面是常見的雙分支選擇結構中的嵌套If結構的形式:If<條件表達式1>Then…If<條件表達式11>Then…EndIf…Else…EndIfIf<條件表達式1>Then…Else…If<條件表達式11>Then…EndIf…EndIf
在使用嵌套結構時,書寫程序時更應注意采用縮進格式,增加程序可讀性,且每個If語句必須與EndIf配對。第4章:VisualBasic的基本控制結構開始邊長>0?是否能組成三角形計算輸出出錯信息結束是否是否例:已知三角形的三邊,求三角形的面積第4章:VisualBasic的基本控制結構PrivateSubcmdCalculate_Click()DimaAsSingle,bAsSingle,cAsSingle,pAsSingle,sAsSinglea=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)If(1)ThenIfa+b>cAndb+c>aAndc+a>bThenp=(a+b+c)/2
s=Sqr(p*(p-a)*(p-b)*(p-c))
Text4.Text=Cstr(s)ElseText4.Text=“不能構成三角形”
EndIfElseText4.Text=“邊長不能小于0”EndIfEndSub計算公式:其中:a>0Andb>0Andc>0獲取數據輸出到文本框第4章:VisualBasic的基本控制結構例:計算分段函數y的值。PrivateSubcmdCalculate_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Ifx<0Theny=1/(x-5)ElseIfx<5Theny=3*x^2+4*x+5Elsey=Log(x)EndIfEndIfText2.text=Cstr(y)EndSub05第4章:VisualBasic的基本控制結構例:計算等級分。計算規則如下:分數100-9089-8079-7069-60<60
等級分ABCDEPrivateSubText1_KeyPress(KeyAsciiAsInteger)DimScoreAsInteger,DegreeAsStringIfKeyAscii=13ThenScore=Val(Text1.Text)IfScore>=0AndScore<=100ThenIfScore>=90ThenDegree="A"ElseIfScore>=80ThenDegree="B"ElseIfScore>=70ThenDegree="C"ElseIfScore>=60ThenDegree="D"ElseDegree="E"EndIfEndIfEndIfEndIfText2.Text=Cstr(Degree)EndIfEndIfEndSub缺點:嵌套層次過多,結構不清晰,容易出錯。第4章:VisualBasic的基本控制結構PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimScoreAsInteger,DegreeAsStringIfKeyAscii=13ThenScore=Val(Text1.Text)IfScore>=0And
Score<=100ThenIfScore>=90ThenDegree="A"ElseIfScore>=80ThenDegree="B"ElseIfScore>=70ThenDegree="C"ElseIfScore>=60ThenDegree="D"ElseDegree="E"EndIfEndIfText2.Text=Cstr(Degree)EndIfEndSub特點:結構清晰。第4章:VisualBasic的基本控制結構
SelectCase語句是實現多分支選擇結構的另一種表示形式,又稱為“情況選擇”語句。當需要分情況討論,或根據某些離散的值進行不同的處理時,使用SelectCase語句可以更加簡潔的表達算法,而且也容易擴充。
SelectCase語句的格式如下:
SelectCase測試表達式
Case表達式值1<語句塊1>Case表達式值2<語句塊2>…[CaseElse<語句塊n+1>]EndSelect4.2.2SelectCase語句測試表達式語句塊1語句塊2語句塊n+1表達式值1表達式值2其他情況…第4章:VisualBasic的基本控制結構
其中,測試表達式可以是數值表達式或字符串表達式。表達式值只能是簡單條件,而不能是用邏輯運算符連接而成的復合條件。表達式值必須與“測試表達式”的類型一致,可以是下面情形之一:1.表達式[,表達式]…
當“測試表達式”的值與其中一個表達式的值相匹配時,就執行該Case子句的語句塊。例如:Case-1,1Case"a","A"2.<表達式1>To<表達式2>
當“測試表達式”的值處在這個范圍時,就執行該Case子句的語句塊。必須把比較小的值寫在前面,把比較大的值寫在后面,字符常量的范圍必須按字母順序寫出。例如:Case1To10Case"A"To"Z"4.2.2SelectCase語句第4章:VisualBasic的基本控制結構3.Is關系運算表達式只要“測試表達式”的值滿足給定的條件就執行該Case子句的語句塊。只能是簡單的條件,不能用邏輯運算符把兩個或多個簡單條件組合在一起。4.可以由以上3種形式混合組成,各種形式間用逗號分隔。條件組合是或的關系,不能表示與的關系。5.對于多分支選擇結構,用SelectCase語句比用If…Then…ElseIf語句更為直觀,程序可讀性強。兩者的區別在于:SelectCase語句只對單一表達式求值,并根據求值結果執行不同的語句塊,而If…Then…ElseIf語句可以對不同的表達式求值。所以,當對多個條件進行判斷時,只能用If…Then…ElseIf語句。4.2.2SelectCase語句第4章:VisualBasic的基本控制結構【例4.4】將例4.3用SelectCase語句實現。程序代碼如下:PrivateSubCommand1_Click()DimstAsString*1st=Text1.TextSelectCasestCase"a"To"z"Text2.Text="是小寫字母"Case"A"To"Z"Text2.Text="是大寫字母"Case"0"To"9"Text2.Text="是數字字符"CaseElseText2.Text="是其他字符"EndSelectEndSub第4章:VisualBasic的基本控制結構例:將計算等級分用SelectCase語句改寫。PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimScoreAsInteger,DegreeAsStringIfKeyAscii=13ThenScore=Val(Text1.Text)SelectCaseScoreCase90To100Degree="A"Case80To89Degree="B"Case70To79Degree="C"Case60To69Degree="D"CaseIs<60Degree="E"EndSelectText2.Text=DegreeEndIfEndSub從文本框取數據向文本框放數據如果改為Else,結果會怎樣?SelectCaseScoreCaseIs<0Degree=""CaseIs<60Degree="E"CaseIs<70Degree="D"CaseIs<80Degree="C"CaseIs<90Degree="B"CaseIs<=100Degree="A"EndSelect第4章:VisualBasic的基本控制結構分支結構的適用情況驗證用戶輸入數據的合法性分段函數計算用于區分等級其他需根據判斷結果執行不同操作的情況第4章:VisualBasic的基本控制結構4.3循環結構25第4章:VisualBasic的基本控制結構4.3循環結構
循環結構是根據某一條件(即循環條件)反復執行某一段程序(即循環體)。循環體被反復執行的次數稱為循環次數。
VB中提供了兩種類型的循環語句:計數型循環語句和條件型循環語句。循環要素:(1)循環控制條件——邏輯表達式或關系表達式等(2)循環體——重復執行的語句塊為防止死循環,在循環體內必須要有對應語句,使得循環控制條件不滿足,從而結束循環運行。第4章:VisualBasic的基本控制結構窗體上打印一行hello
……窗體上打印一行hello110…例:在窗體上打印10行“Hello”第4章:VisualBasic的基本控制結構提示:要設立一個變量,用于記錄已打印的行數,每打印一行,計數變量要加1,循環控制條件即計數變量小于10窗體上打印一行helloTrueFalse未滿10行?循環控制條件:
是否已打印了10行循環體:
在窗體上打印一行“Hello”第4章:VisualBasic的基本控制結構
4.3.1For…Next語句
4.3.2Do…Loop語句
4.3.3GoTo語句(選講)3124.3循環結構
4.4循環嵌套4第4章:VisualBasic的基本控制結構[格式]:For<循環變量>=<初值>To<終值>[Step<步長值>]
…
[ExitFor]
…Next<循環變量>[功能]: 該語句是計數型循環語句,用于循環次數已知的循環結構。由循環變量控制,有限次地執行循環體。 執行流程和步驟見下頁:4.3.1For…Next語句循環體第4章:VisualBasic的基本控制結構步驟:1.計算初值、終值和步長值,將初值賦于計數變量;2.判斷“循環變量”是否到達“終值”。如果“步長”為正數,則“循環變量”大于“終值”時結束循環,否則執行第3步;如果“步長”為負數,則“循環變量”小于“終值”時結束循環,否則執行第3步。3.執行循環體。4.循環變量=循環變量+步長值5.返回第2步,繼續循環。計數變量=初值計數變量>終值是循環體計數變量=計數變量+步長值否步長值為正的計數循環計算初值、終值和步長值For<循環變量>=<初值>To<終值>[Step<步長>] <循環體>Next<循環變量>第4章:VisualBasic的基本控制結構[說明]:
For-Next是關鍵字,成對出現,缺一不可;循環體為可執行語句組成,可以嵌套選擇結構和循環結構;循環變量應為整型或單精度型,初值、終值和步長值為相應類型的表達式;步長值可以為正,也可以為負,可以省略,省略時默認步長值為1;循環次數為:Int((終值-初值)/步長值)+1
語句ExitFor可以無條件退出計數循環如果“初值”、“終值”、“步長”中包含有變量且在循環體內被改變,不會改變循環執行的次數,但循環變量若在循環體內被重新賦值,循環次數則有可能發生變化。4.3.1For…Next語句第4章:VisualBasic的基本控制結構【例4.5】計算216。程序代碼如下:PrivateSubCommand1_Click()DimiAsInteger,xAsLongx=1Fori=1To16x=x*2NextiPrintxEndSub其中i為循環變量,其值在1~16之間變化。計算結果存放在累乘器x中,它的初值應設為1。在計算累乘時應注意累乘的大小,選擇適當的數據類型。第4章:VisualBasic的基本控制結構【例4.6】輸入20個整數,分別計算并輸出正數和負數的平均值。程序代碼如下:PrivateSubForm_Click()DimiAsInteger,numberAsIntegerDimPnumberAsInteger,NnumberAsIntegerDimpAsInteger,nAsIntegerDimPavAsSingle,NavAsSingleFori=1To20number=InputBox("Enterdata:")'輸入數據Ifnumber>0ThenPnumber=Pnumber+number'正數求和
p=p+1'正數計數ElseNnumber=Nnumber+number'負數求和
n=n+1'負數計數EndIfNextiPav=Pnumber/p'求正數平均值Nav=Nnumber/n'求負數平均值Text1.Text=Str(Pav)'顯示正數平均值Text2.Text=Str(Nav)'顯示負數平均值EndSub
程序運行后,顯示一個對話框,在對話框中輸入第一個數,接著再顯示一個對話框,再輸入下一個數……直到20個數輸完為止。輸入完20個數之后,文本框1和文本框2中分別顯示正數和負數的平均值。第4章:VisualBasic的基本控制結構4.3.2Do…Loop語句[格式]:Do[While/Until<條件>]或Do<循環體><循環體>
LoopLoop[While/Until<條件>]重復執行的語句塊第4章:VisualBasic的基本控制結構格式一:DoWhile<條件>
<循環體>Loop條件?循環體成立Loop的后繼語句不成立執行步驟:1.判斷條件是否成立。如果條件不成立,轉向第4步2.執行循環體;3.轉向執行第1步;4.結束循環,執行Loop語句的后繼語句。第4章:VisualBasic的基本控制結構PrivateSubform_Click()DimiAsIntegeri=0 DoWhilei<10Print"hello"
i=i+1LoopEndSub例:在窗體上打印10行“Hello”。i為計數器,判定是否打印了10行第4章:VisualBasic的基本控制結構例:求1到100之間的整數之和。PrivateSubCommand1_Click()DimiAsInteger,sumAsIntegersum=0:i=1DoWhilei<=100
sum=sum+i
i=i+1Loopprint"sum=";sumEndSub循環體設初值,sum為累加器第4章:VisualBasic的基本控制結構格式二:Do<循環體>LoopWhile<條件>條件?循環體不成立Loop的后繼語句成立執行步驟:1執行循環體;
2
判斷條件是否成立。如果條件成立,轉向第1步3條件不成立,結束循環,執行Loop語句的后繼語句。第4章:VisualBasic的基本控制結構格式三:DoUntil<條件>
<循環體>Loop條件?循環體不成立Loop的后繼語句成立執行步驟:1.判斷條件是否成立。如果條件成立,轉向第4步2.執行循環體;3.轉向執行第1步;4.結束循環,執行Loop語句的后繼語句。第4章:VisualBasic的基本控制結構PrivateSubCommand3_Click()DimsumAsInteger,iAsIntegersum=0:i=1DoUntili>100sum=sum+i
i=i+1LoopPrint"sum=";sumEndSub例:求1到100之間的整數之和。第4章:VisualBasic的基本控制結構格式四:Do<循環體>LoopUntil<條件>條件?循環體不成立Loop的后繼語句成立執行步驟:1.執行循環體;2.判斷條件是否成立。如果條件不成立,轉向第1步3.
條件成立,結束循環,執行Loop語句的后繼語句。第4章:VisualBasic的基本控制結構格式五:Do<循環體>Loop執行步驟:
反復執行循環體。該結構為“死循環”,一般通過ExitDo語句退出循環。
ExitDo語句最常用的形式是與If-Then語相結合,即:IfeThenExitDo當在執行循環體時,條件e被滿足,則執行ExitDo語句直接退出循環。注意:如果運行時出現死循環,使用Ctrl+Break中止循環體Loop后續語句第4章:VisualBasic的基本控制結構PrivateSubCommand5_Click()DimsumAsInteger,iAsIntegersum=0:i=1Dosum=sum+i
Ifi=100ThenExitDoi=i+1LoopPrint"sum=";sumEndSub例:求1到100之間的整數之和。第4章:VisualBasic的基本控制結構[功能]:根據條件成立與否,控制重復執行循環體。[說明]: (1)Do和Loop為結構關鍵字,必須成對出現,缺一 不可; (2)循環體為可執行語句組成,可以嵌套分支結構 和循環結構; (3)語句ExitDo可無條件退出循環,一般情況 下在該語句前加上If語句;
IfeThenExitDo
當在執行循環體時,條件e被滿足,則執行 ExitDo語句直接退出循環。 (4)Do—loop循環共有5種具體格式。4.3.2Do…Loop語句第4章:VisualBasic的基本控制結構小結:(1)While短語總是在條件成立時,繼續進行循環;條件不成立時,結束循環。因此稱為當型循環;區別在于:首次執行循環語句時,若循環條件不成立,則格式二的循環體被執行一次,而格式一的循環體不被執行。(2)Until短語總是在條件不成立時,繼續進行循環;條件成立時,結束循環。因此稱為直到型循環;區別在于:首次執行循環語句時,若循環條件不成立,則格式四的循環體被執行一次,而格式三的循環體不被執行。(3)這兩種短語是可以相互轉換的。4.3.2Do…Loop語句第4章:VisualBasic的基本控制結構條件?循環體成立Loop的后繼語句不成立條件?循環體不成立Loop的后繼語句成立條件?循環體不成立Loop的后繼語句成立條件?循環體不成立Loop的后繼語句成立DoWhilee......[ExitDo]LoopDountile......[ExitDo]LoopDo......[ExitDo]LoopWhileeDo......[ExitDo]Loopuntile第4章:VisualBasic的基本控制結構
DoWhileeDo......[ExitDo][ExitDo]......LoopLoopWhilee
DoUntileDo......[ExitDo][ExitDo]......LoopLoopUntile不管條件成立與否循環體至少要執行一次當型直到型4.3.2Do…Loop語句第4章:VisualBasic的基本控制結構Do-Loop循環知道循環繼續或結束的條件條件循環For-Next循環知道循環執行次數計數循環第4章:VisualBasic的基本控制結構[分析]:算法:求最大公約數的常用方法是輾轉相除法。
1、輸入兩個自然數M、N; 2、求M除以N的余數R;
3、使得M=N,即用N代換M; 4、使得N=R,即用R代換N; 5、若R≠0,則重復2、3、4(循環),否則轉6 6、輸出M,此時M即為M和N的最大公約數。例:求兩個數的最大公約數。第4章:VisualBasic的基本控制結構1810MNR8108282020R=8R=2R=0M=2即最大公約數求最大公約數第4章:VisualBasic的基本控制結構
在該例中,我們使用了三個變量,分別表示被除數(m)、除數(n)及余數(r)。
Dor=mModnm=nn=rLoopUntilr=0最大公約數是()?第4章:VisualBasic的基本控制結構問題分析及界面設計
由于輸入的數據M和N要求是自然數,在程序中應加入對數據的合法性進行檢驗的部分;考慮到程序的應用范圍,數據類型可選用長整型。設計好的用戶界面及程序代碼如下。第4章:VisualBasic的基本控制結構PrivateSubCommand1_Click()
DimmAsLong,nAsLong,rAsLong m=Val(Text1.Text) ‘取數據M n=Val(Text2.Text) ‘取數據N Ifm<1Orn<1Then‘檢驗數據合法性
Text3.Text="數據錯誤!"
Else
Do ‘求最大公約數
r=mModn m=n n=r LoopUntilr=0 Text3.Text=CStr(m)‘輸出最大公約數
EndIf
EndSub
PrivateSubCommand2_Click() Text1.Text="" ‘清除文本框1
Text2.Text="" ‘清除文本框2
Text3.Text="" ‘清除文本框3 Text1.SetfocusEndSub
PrivateSubCommand3_Click() End EndSub第4章:VisualBasic的基本控制結構【例4.14】計算圓周率的近似值。計算公式如下:直到最后一項的絕對值小于10-6為止。[提示]:由于本題無法預知循環次數,可以用Do…Loop語句來解決。
s=s+<通項表達式>可實現累加。第4章:VisualBasic的基本控制結構PrivateSubCommand1_Click()DimPIAsDouble,sumAsDouble,tAsDoubleDimnAsInteger
n=1:sum=0 ‘S為累加器
Dot=(-1)^(n-1)/(2*n-1)‘求通項
sum=sum+t
n=n+1LoopUntilabs(t)<0.000001PI=4*sumText1.Text=CStr(PI)EndSubPrivateSubCommand2_Click()UnloadmeEndSubDo
t=(-1)^(n-1)/(2*n-1)sum=sum+tIfabs(t)<0.000001thenExitDo
n=n+1Loop10^(-6)或1E-6第4章:VisualBasic的基本控制結構【例4.7】求滿足以下條件的最小n和sum值。
sum=1+2+3+…+n且sum≥1000這是一個循環次數未知的問題,可以用Do…Loop循環語句來解決。程序代碼如下:OptionExplicitPrivateSubCommand1_Click()DimnAsInteger,sumAsIntegern=1sum=0'累加器置0Dosum=sum+n'累加
Ifsum>=1000ThenExitDo'若sum大于等于1000,結束循環
n=n+1LoopPrint"sum最小值=";sum'輸出最小的sum值
Print"n最小值=";n'輸出最小的n值EndSub
本例使用格式五的Do…Loop循環方式,根據題目給出的條件,由ExitDo語句結束循環。第4章:VisualBasic的基本控制結構4.3.3GoTo語句(選講)
前面介紹的循環結構都是根據某個條件進行循環,稱為有條件跳轉語句;還有一種結構,即GoTo語句,是無條件跳轉語句,程序執行到該語句時不需要判斷條件,直接將程序執行的流程無條件地轉移到本過程的另一段程序代碼。格式為:
GoTo行標簽|行號行標簽為語句行標識符的簡稱。該語句在執行后,無條件地轉移到行標簽或行號所在的位置處往下執行。行標簽的命名與變量命名相同,行標簽的后面跟“:”,行號則采用正整數形式。
GoTo語句可以改變程序的執行順序,跳過程序的某一部分去執行另一部分,或者返回已經執行過的某段程序使之重復執行,因此,用GoTo語句可以構成循環。在結構化程序設計中,要盡量少用或不用GoTo語句,以免造成結構混亂,程序可讀性下降,用選擇結構或循環結構來代替。第4章:VisualBasic的基本控制結構【例4.8】用GoTo語句編寫例4.7程序程序代碼如下:OptionExplicitPrivateSubCommand1_Click()DimnAsInteger,sumAsIntegern=1sum=0There:sum=sum+nn=n+1Ifsum<1000ThenGoToTherePrint"sum最小值=";sumPrint"n最小值=";n-1EndSub第4章:VisualBasic的基本控制結構4.4循環嵌套
60第4章:VisualBasic的基本控制結構4.4循環嵌套在一個循環結構的循環體內又包含了另一個循環結構稱為循環嵌套。循環嵌套對Do…Loop和For…Next均適用。在使用循環嵌套時必須注意:①內循環變量和外循環變量不能同名。②內循環必須完整地包含在外循環之內,不得相互交叉。③若循環體內有If語句,或If語句內有循環語句,也不能交叉。④不能從循環體外轉向循環體內,也不能從外循環轉向內循環,反之則可。⑤在循環體中遇到ExitFor(Do)時,則只能跳出當前一層循環。第4章:VisualBasic的基本控制結構【例4.9】編寫程序,找出100以內所有滿足a2+b2=c2且a≤b的自然數組合。
本題屬于“窮舉”問題,解題的基本思想是:一一列舉各種可能的情況,并判斷哪種情況是符合要求的解,這種算法稱為窮舉法(又稱“枚舉法”),通常采用循環結構來實現。程序界面如圖所示,主要由三個列表框和一個命令按鈕及用于說明的標簽組成,查找到的a、b、c分別放入三個列表框中,組數顯示在界面下方的標簽4上。第4章:VisualBasic的基本控制結構程序代碼如下:OptionExplicitPrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsIntegerDimiAsIntegerFora=1To100Forb=1To100Forc=1To100Ifa^2+b^2=c^2Anda<=bThenList1.AddItemaList2.AddItembList3.AddItemci=i+1EndIfNextcNextbNextaLabel4.Caption="共有"&i&"組"EndSub本程序使用了三重循環,循環變量在1~100之間變化,內循環體被執行了100*100*100次。第4章:VisualBasic的基本控制結構4.5程序示例64第4章:VisualBasic的基本控制結構【例4.10】編寫程序,找出10000以內的所有素數并作相應顯示。
所謂素數(質數)是指只能被1和自身整除的數,因此可以按素數的定義來進行判斷。用數x依次除以2到x-1之間的所有數,若都無法整除,則x為素數。實際上,判斷一個數x是否為素數并不需要從2判斷到x-1,只要從2判斷到x/2或者sqr(x)就可以了,這樣可以提高判斷速度。
本例題可以用雙重循環來實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司環保活動方案
- 公司節能推廣活動方案
- 2025年行業倫理道德與法律法規考核試題及答案
- 2025年文化產業管理考試試卷及答案
- 2025年文藝策劃師職業發展評估考試試題及答案
- 2025年網絡營銷與電子商務考試試題及答案
- 2025年設施管理工程師職業資格考試試題及答案
- 2025年農業經濟與發展考試試卷及答案
- 2025年歷史文化遺產保護與傳承考試卷及答案
- 2025年計算機網絡基本知識考試試題及答案
- T-CEC 153-2018并網型微電網的負荷管理技術導則
- 《食品經營許可證》申請書(范本)
- 2024至2030年中國博物館行業現狀調研及未來發展規劃分析報告
- 廣東省揭陽市2024年小升初語文真題試卷及答案
- 化工過程安全管理導則培訓
- 2024年西藏事業單位真題
- 獸醫傳染病學考試題(含答案)
- 醫學微生物學(北華大學)智慧樹知到期末考試答案2024年
- MOOC 人工智能導論-西安電子科技大學 中國大學慕課答案
- (正式版)HGT 3217-2024 搪玻璃上展式放料閥
- 人工智能導論單元練習題1及答案
評論
0/150
提交評論