廣州大學(xué)第7章 Visual Basic控制結(jié)構(gòu)_第1頁(yè)
廣州大學(xué)第7章 Visual Basic控制結(jié)構(gòu)_第2頁(yè)
廣州大學(xué)第7章 Visual Basic控制結(jié)構(gòu)_第3頁(yè)
廣州大學(xué)第7章 Visual Basic控制結(jié)構(gòu)_第4頁(yè)
廣州大學(xué)第7章 Visual Basic控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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)介

第七章VisualBasic控制結(jié)構(gòu)本章主要任務(wù):

(1)了解結(jié)構(gòu)化程序設(shè)計(jì)方法;(2)掌握選擇控制結(jié)構(gòu)程序設(shè)計(jì);(3)掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。結(jié)構(gòu)化程序設(shè)計(jì)三種結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)7.1選擇控制結(jié)構(gòu)關(guān)系運(yùn)算:比較兩個(gè)運(yùn)算量之間的關(guān)系,關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯量。若關(guān)系成立,結(jié)果為T(mén)rue,若關(guān)系不成立,結(jié)果為False。運(yùn)算符含義優(yōu)先級(jí)實(shí)例結(jié)果<小于所有關(guān)系運(yùn)算優(yōu)先級(jí)相同。低于算術(shù)運(yùn)算的加“+”,減“-”運(yùn)算,高于邏輯非“Not”運(yùn)算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like"*is"TrueIs對(duì)象比較

7.1選擇控制結(jié)構(gòu)邏輯運(yùn)算:邏輯運(yùn)算符:Not,And,OrXor

等7.1選擇控制結(jié)構(gòu)一、單行結(jié)構(gòu)條件語(yǔ)句格式:

If條件

Then

then部分

[Else

else部分]

如果“條件”為T(mén)rue,則執(zhí)行“then部分”,否則執(zhí)行“else部分”條件語(yǔ)句1語(yǔ)句2YN7.1選擇控制結(jié)構(gòu)一、單行結(jié)構(gòu)條件語(yǔ)句例如:輸出x,y兩個(gè)中值較大的一個(gè)值。

IFX>YThenPrintXElsePrintY

條件語(yǔ)句的嵌套:7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句格式:

If條件1

Then

語(yǔ)句塊1[ElseIf

條件2

Then

語(yǔ)句塊2][ElseIf

條件3

Then

語(yǔ)句塊3]

......[Else

語(yǔ)句塊n+1]EndIf7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句例:設(shè)計(jì)一個(gè)求解一元二次方程的程序ax2+bx+c=0

公式:

判斷:b2-4ac>=0(實(shí)根)

b2-4ac<0(虛根)

代碼:

disc=b*b-4*a*cIfdisc>=0thenx1=(-b+sqr(disc))/(2*a)‘實(shí)根1x2=(-b-sqr(disc))/(2*a)‘實(shí)根2Elsex1=-b/(2*a)‘實(shí)部

x2=sqr(abs(disc))/(2*a)‘虛部

Endif7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句例:設(shè)計(jì)一個(gè)求解一元二次方程的程序思考:1、如果文本框中無(wú)輸入,或Text1中輸入0,單擊“求解”按鈕,則不構(gòu)成一元二次方程,不求解。IfText1.Text=""OrText2.Text=""OrText3.Text=""OrVal(Text1.Text)=0ThenExitSub7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句例:設(shè)計(jì)一個(gè)求解一元二次方程的程序

思考:2、如果限制3個(gè)文本框(Text1,Text2,Text3)只能輸入數(shù)字,不能接受其他字符?

數(shù)字0-9的ascii碼為48-57PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48OrKeyAscii>57Then

KeyAscii=0EndIfEndSub7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句例:輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:90~100分為“優(yōu)秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以為“不合格”X>=90學(xué)生成績(jī)XX>=80X>=70X>=60打印“優(yōu)秀”打印“良好”打印“中等”打印“及格”打印“不合格”TTTTFFFF7.1選擇控制結(jié)構(gòu)二、塊結(jié)構(gòu)條件語(yǔ)句x=val(inputbox(“輸入學(xué)生成績(jī)”))Ifx>=90then Print“優(yōu)秀”Elseifx>=80then Print“良好”Elseifx>=70then Print“中等”Elseifx>=60then Print“及格”Else Print“不及格”Endif7.2多分支控制結(jié)構(gòu)格式:

SelectCase

測(cè)試表達(dá)式

Case

表達(dá)式表列1

[語(yǔ)句塊1][Case表達(dá)式表列2[語(yǔ)句塊2]]

......[CaseElse[語(yǔ)句塊n]]EndSelect7.2多分支控制結(jié)構(gòu)<表達(dá)式表列>下面幾種形式:例:

一組枚舉表達(dá)式(用逗號(hào)分隔)

2,4,6,8

表達(dá)式1To表達(dá)式2

60to100

Is關(guān)系運(yùn)算符表達(dá)式

Is<607.2多分支控制結(jié)構(gòu)x=val(InputBox(“請(qǐng)輸入一個(gè)數(shù)”))SelectCasex Case1

語(yǔ)句塊1 Case2,4

語(yǔ)句塊2 Case5To10

語(yǔ)句塊3 CaseIs>10

語(yǔ)句塊4 CaseElse

語(yǔ)句塊5EndSelect7.2多分支控制結(jié)構(gòu)例如:將前例使用selectcase…..語(yǔ)句來(lái)實(shí)現(xiàn)的程序段如下:SelectCasexCase90to100Print"優(yōu)秀"Case80to89Print"良好"Case70to79Print"中等"Case60to69Print"及格"CaseElsePrint"不及格"EndSelect7.3For循環(huán)控制結(jié)構(gòu)VB中的循環(huán)結(jié)構(gòu)

For-Next循環(huán)

While-Wend循環(huán)

Do-Loop循環(huán)按規(guī)定次數(shù)執(zhí)行循環(huán)體某給定條件滿足時(shí)循環(huán)7.3For循環(huán)控制結(jié)構(gòu)格式:

For循環(huán)變量=初值to終值[Step步長(zhǎng)]

語(yǔ)句塊

[ExitFor]

語(yǔ)句塊

Next循環(huán)變量循環(huán)體

>0初值<終值;=1時(shí),可省略<0初值>終值=0死循環(huán)步長(zhǎng)7.3For循環(huán)控制結(jié)構(gòu)循環(huán)次數(shù)例:ForI=2To13Step3PrintI,NextIPrint“I=“,I

循環(huán)執(zhí)行次數(shù)

輸出I的值分別為:

25811

出了循環(huán)輸出為:

I=147.3For循環(huán)控制結(jié)構(gòu)“循環(huán)變量”增加“步長(zhǎng)”是自動(dòng)完成的。在循環(huán)體中允許改變循環(huán)變量的值,但會(huì)影響到循環(huán)的次數(shù)。

Fori=2To13Step3 printi, i=i+2NextiPrint“i=“,I

循環(huán)執(zhí)行次數(shù)=3

輸出I的值分別為:2712

出了循環(huán)輸出為:i=177.3For循環(huán)控制結(jié)構(gòu)例.編程計(jì)算:S=1+2+3+…+100DimS,IS=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S7.4當(dāng)循環(huán)控制結(jié)構(gòu)格式:

While條件

[語(yǔ)句塊] Wend常用于循環(huán)次數(shù)難確定,但控制循環(huán)的條件或循環(huán)結(jié)束的條件容易給出的情況。該語(yǔ)句的功能與DoWhile<條件>….Loop實(shí)現(xiàn)的循環(huán)完全相同Whileb>0c=c+ab=b-1Wend7.5Do循環(huán)控制結(jié)構(gòu)形式1:(當(dāng)型循環(huán))

Do{While|Until}<條件>

語(yǔ)句塊

[ExitDo]

語(yǔ)句塊

LoopDoWhile…Loop循環(huán)邏輯框圖DoUntil…Loop循環(huán)邏輯框圖7.5Do循環(huán)控制結(jié)構(gòu)形式2:(直到循環(huán))

Do

語(yǔ)句塊

[ExitDo]

語(yǔ)句塊

Loop{While|Until}<條件>圖7.5Do…LoopWhile循環(huán)邏輯框圖圖7.6Do…LoopUntil循環(huán)邏輯框圖7.5Do循環(huán)控制結(jié)構(gòu)說(shuō)明:(1)當(dāng)使用While<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假”,則退出循環(huán)。(2)當(dāng)使用Until<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真”時(shí),則退出循環(huán)。(3)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專(zhuān)門(mén)用來(lái)改變條件表達(dá)式中變量的語(yǔ)句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成立),最后達(dá)到退出循環(huán)。(4)語(yǔ)句ExitDo的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能用在DO/Loop結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來(lái)實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。7.5Do循環(huán)控制結(jié)構(gòu)例:用do…Loop語(yǔ)句改寫(xiě)前面的例題

編程計(jì)算:S=1+2+3+…+100DimS%,I%S=0'累加前變量S為0I=1'循環(huán)變量賦初值DoWhileI<=100S=S+II=I+1LoopPrint"S=",S

DimS%,I%S=0'累加前變量S為0I=1'循環(huán)變量賦初值DoS=S+II=I+1LoopWhileI<=100

Print"S=",S

7.6多重循環(huán)如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱(chēng)為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱(chēng)為二重循環(huán),嵌套二層稱(chēng)為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見(jiàn)的二重嵌套形式:7.6多重循環(huán)(1)ForI=….…..

ForJ=….…. NextJ…..

NextI(2)ForI=….…..

DoWhile/Until….…. Loop…..NextI(3)DoWhile….…..

ForJ=….…. NextJ…..Loop(4)DoWhile/Until….…..

DoWhile/Until….…. Loop…..Loop7.6多重循環(huán)例如:打印九九乘法表.

Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9);se;NextjPicture1.PrintNextITab(n):用來(lái)將插入點(diǎn)定位在絕對(duì)列號(hào)上,這里,n為列號(hào)。7.7GoTo

型控制一、GoTo

語(yǔ)句

形式:

GoTo{標(biāo)號(hào)|行號(hào)}

作用是無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句.

標(biāo)號(hào):任何字符組合,以字母開(kāi)頭,以冒號(hào):結(jié)尾。必須放在行的開(kāi)始位置。行號(hào):任何數(shù)值組合。必須放在行的開(kāi)始位置。(1)GoTo只能在本過(guò)程內(nèi)轉(zhuǎn)移。(2)一個(gè)過(guò)程中,標(biāo)號(hào)、行號(hào)都必須唯一。(3)建議少用。

7.7GoTo

型控制一、GoTo

語(yǔ)句例:用GoTo語(yǔ)句改寫(xiě)前面的例題

編程計(jì)算:S=1+2+3+…+100DimsAsInteger,iAsIntegers=0'累加前賦初值i=1‘控制變量PP:‘標(biāo)號(hào)s=s+ii=i+1Ifi<=100ThenGoToPPPrint"s=",s7.7GoTo

型控制二、On-GoTo

語(yǔ)句形式:

On數(shù)值表達(dá)式GoTo

行號(hào)表列|標(biāo)號(hào)表列例如:OnxGoTo30,50,Line3,Line47.7GoTo

型控制二、On-GoTo

錯(cuò)誤處理語(yǔ)句形式:

OnErrorGoTo

標(biāo)號(hào)

OnErrorResumeNext循環(huán)結(jié)構(gòu)示例在Text1中輸入一個(gè)大于1的整數(shù),點(diǎn)擊“計(jì)算”按鈕,要求計(jì)算出從1到這個(gè)整數(shù)之間(包括這個(gè)整數(shù))的所有: (1)整數(shù)的累加 (2)整數(shù)的累乘 (3)奇數(shù)的累加 (4)偶數(shù)的累乘………

并將結(jié)果顯示在Label1中。綜合練習(xí)

設(shè)計(jì)一個(gè)由計(jì)算機(jī)來(lái)當(dāng)小學(xué)低年級(jí)學(xué)生算術(shù)老師的VB應(yīng)用程序,要求給出一系列的兩個(gè)1~10數(shù)的四則運(yùn)算的算術(shù)題,學(xué)生輸入該題的答案,計(jì)算機(jī)根據(jù)學(xué)生的答案判斷正確與否,并給出成績(jī)。

綜合練習(xí)分析:產(chǎn)生1~10操作數(shù),可通過(guò)Int(10*Rnd+1)

實(shí)現(xiàn)Int(Number)函數(shù):取不大于Number的整數(shù)。Rnd函數(shù):產(chǎn)生[0,1)之間隨機(jī)數(shù)。舉例:Int(Rnd*100)+1[1,100]的隨機(jī)整數(shù)Int(Rnd*99)+1[1,100)的隨機(jī)整數(shù),即[1,99]Int(Rnd*90)+10[10,99]的隨機(jī)整數(shù)Int(10*Rnd+1)

[1,10]的隨機(jī)整數(shù)使用Rnd函數(shù)前,需先執(zhí)行Randomize語(yǔ)句,對(duì)隨機(jī)數(shù)生成器進(jìn)行初始化。綜合練習(xí)載入窗體:

1、隨機(jī)生成x,y 2、隨機(jī)生成算術(shù)式,計(jì)算出相應(yīng)正確結(jié)果。

3、顯示算術(shù)式點(diǎn)擊確定按鈕:

4、比較用戶輸入和正確結(jié)果,顯示結(jié)論,并依照結(jié)果正誤對(duì)“正確”或“錯(cuò)誤”數(shù)字加1 5、“共答”數(shù)字加1 6、計(jì)算“正確率”

7、清空輸入結(jié)果的文本框,設(shè)置焦點(diǎn)

8、重新調(diào)用窗體載入過(guò)程

綜合練習(xí)實(shí)現(xiàn)步驟:以下在form_load()事件中編程1、隨機(jī)生成x,yRandomizeX=Int(10*Rnd+1)‘1-10的隨機(jī)數(shù)Y=Int(10*Rnd+1)綜合練習(xí)實(shí)現(xiàn)步驟:以下在form_load()事件中編程2、隨機(jī)生成算術(shù)式,計(jì)算出相應(yīng)正確結(jié)果SelectCaseInt(4*Rnd)+1‘產(chǎn)生1-4的隨機(jī)數(shù)

Case1S=Str(X)&“+”&Str(Y)&“=“ ’生成”x+y=“字符串

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論