第3章程序流程控制_第1頁
第3章程序流程控制_第2頁
第3章程序流程控制_第3頁
第3章程序流程控制_第4頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章

程序流程控制VisualBasic6.0程序設(shè)計第3章程序流程控制3.1VB程序設(shè)計中的常用語句3.2分支結(jié)構(gòu)3.3循環(huán)結(jié)構(gòu)3.4Goto語句3.5程序調(diào)試3.1VB程序設(shè)計中的常用語句計算機程序的執(zhí)行控制流程有3種基本結(jié)構(gòu):

順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)

順序結(jié)構(gòu):按程序語句的順序依次地執(zhí)行。順序結(jié)構(gòu)主要語句:賦值語句、輸入、輸出語句和暫停語句。順序結(jié)構(gòu)流程圖程序語句1程序語句2……賦值語句(1)賦值作用:把一個表達式的值賦給一個變量或控件的一個屬性。例:s=100k=k+1

st$=“abcd”command1.caption=“確定”3.1VB程序設(shè)計中的常用語句(2)賦值與邏輯等號等號既可作為賦值號,也可表示等價關(guān)系。(3)賦值相容

VB對某些數(shù)據(jù)類型提供了自動轉(zhuǎn)換機制,強制變量轉(zhuǎn)換為適當(dāng)?shù)臄?shù)據(jù)類型。例:

dimintx%,stry$

stry=“100.23”

intx=20?intx+stry

結(jié)果為:120.233.1VB程序設(shè)計中的常用語句例:

Dimx%,y!y=100.23x=yPrintx

結(jié)果為:100

將實型數(shù)據(jù)賦給整型變量會出現(xiàn)什么樣的結(jié)果呢?3.1.2、

VB從鍵盤輸入數(shù)據(jù)提供了inputbox和msgbox兩個函數(shù)。1.Inputbox函數(shù)格式:inputbox(提示字符串[,標(biāo)題字符串][,缺省值][,x坐標(biāo)值][,y坐標(biāo)值])提示字符串需多行顯示時,可在每行行尾使用回車符chr(13)和換行符chr(10)或者使用VbCrlf換行;3.1VB程序設(shè)計中的常用語句數(shù)據(jù)輸入

要求如下:

(1)提示信息為:請輸入年齡

(2)標(biāo)題為:年齡數(shù)據(jù)輸入

(3)默認(rèn)值為:20(4)x坐標(biāo):2500(5)y坐標(biāo):35003.1VB程序設(shè)計中的常用語句inputbox命令練習(xí):【例3-1】輸入長方體長、寬、高,計算并輸出其體積。PrivateSubCommand1_Click() DimaAsSingle'長

DimbAsSingle'寬

DimcAsSingle'高

DimvAsDouble'體積

a=InputBox("長方體的長:") b=InputBox("長方體的寬:") c=InputBox("長方體的高:") v=a*b*c Print"體積為:",vEndSub3.1VB程序設(shè)計中的常用語句2.Msgbox函數(shù)格式:msgbox(提示字符串[,按鈕設(shè)置值][,標(biāo)題字符串])作用:用于接收用戶簡單的選擇信息。

Msgbox函數(shù)在對話框中顯示消息,等待用戶單擊按鈕,并且返回一個整型值,告訴程序用戶單擊了哪個按鈕。3.1VB程序設(shè)計中的常用語句Msgbox函數(shù)練習(xí)

要求如下:

(1)提示信息為:函數(shù)練習(xí)

(2)有兩個按鈕:確定和取消

(3)顯示圖標(biāo)為:!(4)第一個按鈕為默認(rèn)值

(5)標(biāo)題為:提示信息

(6)如果用戶按下確定屏顯:你好如果用戶按下取消屏顯:再見3.1VB程序設(shè)計中的常用語句

a=MsgBox("函數(shù)練習(xí)",1+48+0,"提示信息")Ifa=1ThenPrint"你好"ElsePrint"再見"【例3-2】輸入一個正數(shù),并由用戶決定是否求其平方根。PrivateSubCommand1_Click()DimaAsStringDimfhasIntegera=Val(InputBox("請輸入一個正數(shù)"))fh=MsgBox("對"+a+"求平方根嗎?",vbYesNo+vbQuestion+vbDefaultButton1)Iffh=vbYesThenPrintSqr(a)EndIfEndSub3.1VB程序設(shè)計中的常用語句3.MsgBox消息框語句

如果不需要返回值,MsgBox可寫成語句形式,格式如下:

MsgBox

提示字符串[,按鈕設(shè)置值][,標(biāo)題字符串]該語句用于簡單的信息,例如:

MsgBox"數(shù)據(jù)輸入錯誤,請重新輸入!",,"錯誤提示"3.1VB程序設(shè)計中的常用語句格式:[對象.]Print[輸出項列表](1)程序中往往使用無輸出項列表的Print換行;(2)對象可以是窗體、圖片框、打印機(Printer)等。若省略“對象.”則默認(rèn)前窗體上輸出;(3)可在VB的立即窗口中使用Print;(4)輸出項列表由輸出項和分隔符構(gòu)成,分隔符可以是空格、“;”或“,”。采用空格或“;”;(5)輸出項的組成: [Spc(n)/Tab(n)]表達式Spc(n)表示在表達式前輸出n個空格;Tab(n)表示表達式在第n列上輸出無參數(shù),將插入點定位在下一個打印區(qū)的起始位置。。(6)Print若以“,”或“;”結(jié)束,表示程序中的下一個Print方法將從當(dāng)前行的當(dāng)前位置繼續(xù)輸出,否則將換行輸出。3.1VB程序設(shè)計中的常用語句輸出數(shù)據(jù)的print方法Print應(yīng)用舉例:Form1.Print"沈陽農(nóng)業(yè)大學(xué)"Picture1.Print"沈陽農(nóng)業(yè)大學(xué)"Print"沈陽農(nóng)業(yè)大學(xué)"Printer.print“沈陽農(nóng)業(yè)大學(xué)”3.1VB程序設(shè)計中的常用語句例:Print"沈陽";Tab(20);"農(nóng)大"Print"沈陽";Tab;"農(nóng)大"Print"沈陽";Spc(10);"農(nóng)大“Print"沈陽","農(nóng)大"Print"沈陽";"農(nóng)大"【例3-3】輸入長方體的長、寬、高,求其體積。請對比三個Print語句的輸出效果(輸出結(jié)果略)。

PrivateSubCommand1_Click() Dima!,b!,c!,v# a=InputBox("長方體的長:") b=InputBox("長方體的寬:") c=InputBox("長方體的高:") v=a*b*c Print"長:",a,"寬:",b,"高:",c,"的長方體的體積為:",v Print"長:";a,"寬:";b,"高:";c,"的長方體的體積為:";v Print"長:";a;"寬:";b;"高:";c;"的長方體的體積為:";vEndSub3.1VB程序設(shè)計中的常用語句Print配合格式函數(shù)Format,按指定的格式輸出數(shù)據(jù)。函數(shù)格式為:Format(表達式[,格式字符串])格式字符含義數(shù)值示例使用格式化字符串顯示結(jié)果0數(shù)字位12345.678"0000000.0000"“000.00"0012345.678012345.68#數(shù)字位12345.678"#####.#####""###.##"12345.67812345.68.小數(shù)點12345"00000.00"12345.00,千位分隔符12345.678"##,###.0000"12,345.6780%數(shù)值乘100,后加%1.293"##.00%"129.30%$數(shù)值前強加$12345.678"$###.#"$12345.7+數(shù)值前強加+12345.678"+###.#"+12345.7-數(shù)值前強加-12345.678"-###.#"-12345.7E+用指數(shù)形式表示12345.678

"##.#E+##""#.###E+##"12.3E+31235E+4E-與E+相似12345.6780.12345678"#.#E-##""#.###E-##"1.2E41235E-1【例3-4】用窗體事件過程試驗數(shù)據(jù)的格式化輸出。private

SubForm_Click()PrintFormat(1234.6,"000,000.00")PrintFormat(1234.678,"###,###.##")PrintFormat(1234.6,"###,##0.00")PrintFormat(1234.6,"$###,##0.00")PrintFormat(1234.6,"-###,##0.00")PrintFormat(0.123,"0.00%")PrintFormat(1234.6,"0.00E+00")PrintFormat(0.1234567,"0.00E-00")EndSub3.1VB程序設(shè)計中的常用語句

注釋語句的前綴是一個單撇號或rem

暫停語句:stop

結(jié)束語句:end3.1VB程序設(shè)計中的常用語句注釋、暫停和程序結(jié)束格式:If條件then語句序列[else語句序列]要求:在一行內(nèi)書寫完畢,(255個字符限度)3.2分支結(jié)構(gòu)單行結(jié)構(gòu)條件語句【例3-5】輸入一個數(shù),若其大于等于0,則輸出其平方根。PrivateSubCommand1_Click()Dima!a=Val(InputBox("輸入一個數(shù)"))Ifa>=0ThenPrinta&"的平方根是:"&Sqr(a)EndSub【例3-6】

:輸入一個數(shù),若其大于等于0,則輸出其算術(shù)平方根,若輸入的數(shù)據(jù)小于零,則顯示數(shù)據(jù)輸入有誤的信息。PrivateSubCommand1_Click()Dima!a=Val(InputBox("輸入一個數(shù)"))Ifa>=0ThenPrinta&"的平方根是:"&Sqr(a)ElsePrint"數(shù)據(jù)輸入有誤!"EndSub3.2分支結(jié)構(gòu)3.2.2、塊結(jié)構(gòu)條件語句格式:If條件1then語句序列1[elseif

條件2then

語句序列2…………Endif3.2分支結(jié)構(gòu)塊結(jié)構(gòu)條件語句簡單的塊結(jié)構(gòu)格式:If條件1then

語句序列1else

語句序列2Endif塊結(jié)構(gòu)流程圖條件?語句序列1語句序列2ENDIF后續(xù)語句YESNO塊結(jié)構(gòu)輸寫注意:X=1Ifx>0thenPrint“沈陽”Print“農(nóng)大”EndifX=1Ifx>0thenPrint“沈陽”:Print“農(nóng)大”Endif(1)對于塊結(jié)構(gòu)必須以endif結(jié)束。(2)單行語句完全可以用塊結(jié)構(gòu)來寫。3.2分支結(jié)構(gòu)在VB中,數(shù)值表達式看成是邏輯表達式的特列,非0表示真,0表示假。例:dima%,b%a=4:b=3ifa+bthenprint“你好”

ElsePrint“再見”

Endif3.2分支結(jié)構(gòu)【例3-7】實現(xiàn)分段函數(shù)。Private

SubCommand1_Click()DimxAsSingle,yAsSinglex=Val(InputBox("輸入x"))Ifx<=3Then y=x^3Else y=x^2+x-2EndIfPrintx;yEndSubY=x2+x-2x>3x3x<=33.2分支結(jié)構(gòu)y=x3x<=3x2+x-23<x<=6x+1006<x<=8xx>83.2分支結(jié)構(gòu)【例3-8】使用簡單塊結(jié)構(gòu)If語句嵌套實現(xiàn)下面的分段函數(shù)。PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=InputBox("輸入x")Ifx<=3Then 'x<=3y=x^3Else 'x>3Ifx<=6Then '3<x<=6 y=x^2+x-2Else 'x>6Ifx<=8Then'6<x<=8y=x+100Else'x>8y=x EndIfEndIfEndIfPrintx;yEndSub3.2分支結(jié)構(gòu)PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=val(InputBox("輸入x"))Ifx<=3Then 'x<=3y=x^3ElseIfx<=6Then '3<x<=6 y=x^2+x-2ElseIfx<=8Then '6<x<=8 y=x+100Else 'x>8 y=xEndIfPrintx;yEndSub【例3-9】用塊結(jié)構(gòu)條件語句改寫上例。3.2分支結(jié)構(gòu)格式:Selectcase測試表達式

case表達式列表1

語句塊

case表達式列表2

語句塊

…………[caseelse

語句塊Endselect3.2分支結(jié)構(gòu)情況語句注意:Case2,4,6,8意思:測試表達式的值等于:2或4或6或8Case1to10意思:指定域值的范圍。Caseis>10意思:測試表達式滿足條件。3.2分支結(jié)構(gòu)【例3-10】用情況語句改寫上例程序。PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=InputBox("輸入x")SelectCasex CaseIs<=3 'x<=3 y=x^3 CaseIs<=6 '3<x<=6 y=x^2+x-2 CaseIs<=8 '6<x<=8 y=x+100 CaseElse 'x>8 y=xEndSelectPrintx;yEndSub3.2分支結(jié)構(gòu)課堂練習(xí):

從鍵盤上輸入一個0-6的整數(shù),然后在文本框中顯示用英文表示的星期幾,如輸入0,顯示“sunday”,輸入1,顯示“monday”等。3.2分支結(jié)構(gòu)【例3-11】判斷輸入字符是數(shù)字字符、字母還是其它字符。PrivateSubCommand1_Click()DimStrCAsString*1StrC=InputBox("輸入一個字符")SelectCaseStrC Case"a"To"z","A"To"Z"

MsgBox"字母!" Case"0"To"9"

MsgBox"數(shù)字字符!" CaseElse

MsgBox"其它字符!"EndSelectEndSub3.2分支結(jié)構(gòu)課堂練習(xí):用selectcase語句實現(xiàn)如下要求。

計算Y的值:當(dāng)X<0時,Y=2*X當(dāng)0≤x<2時,Y=X**2當(dāng)2≤x<3時,Y=1-X當(dāng)3≤x<6時,Y=(X+5)**2當(dāng)x≥6時,Y=X*(X+5)3.2分支結(jié)構(gòu)Dimx!,y!x=InputBox("x=")SelectCasexCaseIs<0y=2*xCaseIs<2y=x^2CaseIs<3y=1-xCaseIs<6y=(x+5)^2CaseElsey=x*(x+5)EndSelectPrinty

答案:格式:While循環(huán)條件語句序列

Wend3.3循環(huán)結(jié)構(gòu)whilewend語句條件?YES循環(huán)體Wend的后續(xù)語句NO循環(huán)結(jié)構(gòu)流程圖讀程序?qū)懗鼋Y(jié)果。Dimx%X=1WHILEX<50?XX=X*3wend3.3循環(huán)結(jié)構(gòu)

答案:139273.3循環(huán)結(jié)構(gòu)讀程序?qū)懡Y(jié)果:Dimy%Y=0whiley<=40Y=y+1Ify/7=int(y/7)then?ywend3.3循環(huán)結(jié)構(gòu)

答案:7142128353.3循環(huán)結(jié)構(gòu)【例3-12】輸出1~100之間的所有整數(shù)。程序如下:PrivateSubCommand1_Click()Dimi%i=1Whilei<=100 Printi i=i+1WendEndSub【例3-13】求1~100之間所有整數(shù)之和?!纠?-14】求n!,即求1×2×3……×n。3.3循環(huán)結(jié)構(gòu)【例3-15】從鍵盤輸入一串字符,分別統(tǒng)計其中的數(shù)字字符、字母和其它字符的個數(shù)(采用%作為輸入字符的結(jié)束標(biāo)志)DimstrCAsString*1DimintS%,intN%,intQ%intS=0:intN=0:intQ=0strC=InputBox("輸入一個字符")WhilestrC<>"%" SelectCasestrC Case"a"To"z","A"To"Z"

intS=intS+1 Case"0"To"9"

intN=intN+1 CaseElse

intQ=intQ+1 EndSelect

strC=InputBox("輸入一個字符")WendPrint"輸入字母字符:";intS;"個"Print"輸入數(shù)字字符:";intN;"個"Print"輸入其它字符:";intQ;"個"3.3循環(huán)結(jié)構(gòu)

1.先判斷條件形式的Do…loop語句格式:do[while|until

循環(huán)條件]

語句序列

loop3.3循環(huán)結(jié)構(gòu)Do…loop語句【例3-16】求某個數(shù)的所有約數(shù)。Dimn%,i%n=Val(InputBox("請輸入一個數(shù)"))i=1Printn;"的約數(shù)有:";DoWhilei<=nIfnModi=0Then'如果n可以被i整除,i為n的約數(shù)

Printi;EndIfi=i+1Loop3.3循環(huán)結(jié)構(gòu)【例3-17】求自然常數(shù)e=1+1/1!+1/2!+1/3!+……+1/n!+……的近似值(誤差小于0.000001)

Dimn%,eAsDouble,tAsDouble,sAsDoublen=1s=1t=1e=0DoUntilt<0.000001e=e+ts=s*nt=1/sn=n+1'循環(huán)計數(shù)LoopPrint"e=";e3.3循環(huán)結(jié)構(gòu)

2.后判斷條件形式的Do…loop語句格式:do

語句序列

loop[While|until

條件]3.3循環(huán)結(jié)構(gòu)PrivateSubCommand1_Click()DimaAsIntegerDimbAsIntegerb=0a=100DoWhilea>100b=b+1a=a-1LoopPrint"b=";bEndSubPrivateSubCommand2_Click()DimaAsIntegerDimbAsIntegerb=0a=100Dob=b+1a=a-1LoopWhilea>100Print"b=";bEndSub比較如下兩個程序。3.3循環(huán)結(jié)構(gòu)3.3.4、for…next語句通常用于循環(huán)次數(shù)已知的程序結(jié)構(gòu)中。格式:for變量=初始值to終值step步長

語句序列

[exitfor]

語句序列

Next變量3.3循環(huán)結(jié)構(gòu)For…next語句【例3-18】用for循環(huán)求N的階乘。Dimi%,n%,s&n=InputBox("輸入n值")s=1Fori=1Tons=

溫馨提示

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

評論

0/150

提交評論