廣州大學第7章 Visual Basic控制結構_第1頁
廣州大學第7章 Visual Basic控制結構_第2頁
廣州大學第7章 Visual Basic控制結構_第3頁
廣州大學第7章 Visual Basic控制結構_第4頁
廣州大學第7章 Visual Basic控制結構_第5頁
已閱讀5頁,還剩38頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第七章VisualBasic控制結構本章主要任務:

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

7.1選擇控制結構邏輯運算:邏輯運算符:Not,And,OrXor

等7.1選擇控制結構一、單行結構條件語句格式:

If條件

Then

then部分

[Else

else部分]

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

IFX>YThenPrintXElsePrintY

條件語句的嵌套:7.1選擇控制結構二、塊結構條件語句格式:

If條件1

Then

語句塊1[ElseIf

條件2

Then

語句塊2][ElseIf

條件3

Then

語句塊3]

......[Else

語句塊n+1]EndIf7.1選擇控制結構二、塊結構條件語句例:設計一個求解一元二次方程的程序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選擇控制結構二、塊結構條件語句例:設計一個求解一元二次方程的程序思考:1、如果文本框中無輸入,或Text1中輸入0,單擊“求解”按鈕,則不構成一元二次方程,不求解。IfText1.Text=""OrText2.Text=""OrText3.Text=""OrVal(Text1.Text)=0ThenExitSub7.1選擇控制結構二、塊結構條件語句例:設計一個求解一元二次方程的程序

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

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

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

SelectCase

測試表達式

Case

表達式表列1

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

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

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

2,4,6,8

表達式1To表達式2

60to100

Is關系運算符表達式

Is<607.2多分支控制結構x=val(InputBox(“請輸入一個數”))SelectCasex Case1

語句塊1 Case2,4

語句塊2 Case5To10

語句塊3 CaseIs>10

語句塊4 CaseElse

語句塊5EndSelect7.2多分支控制結構例如:將前例使用selectcase…..語句來實現的程序段如下:SelectCasexCase90to100Print"優秀"Case80to89Print"良好"Case70to79Print"中等"Case60to69Print"及格"CaseElsePrint"不及格"EndSelect7.3For循環控制結構VB中的循環結構

For-Next循環

While-Wend循環

Do-Loop循環按規定次數執行循環體某給定條件滿足時循環7.3For循環控制結構格式:

For循環變量=初值to終值[Step步長]

語句塊

[ExitFor]

語句塊

Next循環變量循環體

>0初值<終值;=1時,可省略<0初值>終值=0死循環步長7.3For循環控制結構循環次數例:ForI=2To13Step3PrintI,NextIPrint“I=“,I

循環執行次數

輸出I的值分別為:

25811

出了循環輸出為:

I=147.3For循環控制結構“循環變量”增加“步長”是自動完成的。在循環體中允許改變循環變量的值,但會影響到循環的次數。

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

循環執行次數=3

輸出I的值分別為:2712

出了循環輸出為:i=177.3For循環控制結構例.編程計算:S=1+2+3+…+100DimS,IS=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S7.4當循環控制結構格式:

While條件

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

Do{While|Until}<條件>

語句塊

[ExitDo]

語句塊

LoopDoWhile…Loop循環邏輯框圖DoUntil…Loop循環邏輯框圖7.5Do循環控制結構形式2:(直到循環)

Do

語句塊

[ExitDo]

語句塊

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

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

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

Print"S=",S

7.6多重循環如果在一個循環內完整地包含另一個循環結構,則稱為多重循環,或循環嵌套,嵌套的層數可以根據需要而定,嵌套一層稱為二重循環,嵌套二層稱為三重循環。上面介紹的幾種循環控制結構可以相互嵌套,下面是幾種常見的二重嵌套形式:7.6多重循環(1)ForI=….…..

ForJ=….…. NextJ…..

NextI(2)ForI=….…..

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

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

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

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

型控制一、GoTo

語句

形式:

GoTo{標號|行號}

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

標號:任何字符組合,以字母開頭,以冒號:結尾。必須放在行的開始位置。行號:任何數值組合。必須放在行的開始位置。(1)GoTo只能在本過程內轉移。(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數值表達式GoTo

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

型控制二、On-GoTo

錯誤處理語句形式:

OnErrorGoTo

標號

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

并將結果顯示在Label1中。綜合練習

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

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

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

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

1、隨機生成x,y 2、隨機生成算術式,計算出相應正確結果。

3、顯示算術式點擊確定按鈕:

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

7、清空輸入結果的文本框,設置焦點

8、重新調用窗體載入過程

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

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

溫馨提示

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

評論

0/150

提交評論