廣州大學第7章 Visual Basic控制結(jié)構(gòu)_第1頁
廣州大學第7章 Visual Basic控制結(jié)構(gòu)_第2頁
廣州大學第7章 Visual Basic控制結(jié)構(gòu)_第3頁
廣州大學第7章 Visual Basic控制結(jié)構(gòu)_第4頁
廣州大學第7章 Visual Basic控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

If條件

Then

then部分

[Else

else部分]

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

IFX>YThenPrintXElsePrintY

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

If條件1

Then

語句塊1[ElseIf

條件2

Then

語句塊2][ElseIf

條件3

Then

語句塊3]

......[Else

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

公式:

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

b2-4ac<0(虛根)

代碼:

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

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

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

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

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

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

SelectCase

測試表達式

Case

表達式表列1

[語句塊1][Case表達式表列2[語句塊2]]

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

一組枚舉表達式(用逗號分隔)

2,4,6,8

表達式1To表達式2

60to100

Is關(guān)系運算符表達式

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

語句塊1 Case2,4

語句塊2 Case5To10

語句塊3 CaseIs>10

語句塊4 CaseElse

語句塊5EndSelect7.2多分支控制結(jié)構(gòu)例如:將前例使用selectcase…..語句來實現(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)體某給定條件滿足時循環(huán)7.3For循環(huán)控制結(jié)構(gòu)格式:

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

語句塊

[ExitFor]

語句塊

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

>0初值<終值;=1時,可省略<0初值>終值=0死循環(huán)步長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)變量”增加“步長”是自動完成的。在循環(huán)體中允許改變循環(huán)變量的值,但會影響到循環(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)例.編程計算:S=1+2+3+…+100DimS,IS=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S7.4當循環(huán)控制結(jié)構(gòu)格式:

While條件

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

Do{While|Until}<條件>

語句塊

[ExitDo]

語句塊

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

Do

語句塊

[ExitDo]

語句塊

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

編程計算: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)如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見的二重嵌套形式: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):用來將插入點定位在絕對列號上,這里,n為列號。7.7GoTo

型控制一、GoTo

語句

形式:

GoTo{標號|行號}

作用是無條件地轉(zhuǎn)移到標號或行號指定的那行語句.

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

7.7GoTo

型控制一、GoTo

語句例:用GoTo語句改寫前面的例題

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

型控制二、On-GoTo

語句形式:

On數(shù)值表達式GoTo

行號表列|標號表列例如:OnxGoTo30,50,Line3,Line47.7GoTo

型控制二、On-GoTo

錯誤處理語句形式:

OnErrorGoTo

標號

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論