VB程序設(shè)計第四章 基本的控制結(jié)構(gòu)_第1頁
VB程序設(shè)計第四章 基本的控制結(jié)構(gòu)_第2頁
VB程序設(shè)計第四章 基本的控制結(jié)構(gòu)_第3頁
VB程序設(shè)計第四章 基本的控制結(jié)構(gòu)_第4頁
VB程序設(shè)計第四章 基本的控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章基本的控制結(jié)構(gòu)1. 順序結(jié)構(gòu)(順序結(jié)構(gòu)(Sequence)2. 選擇結(jié)構(gòu)(選擇結(jié)構(gòu)(Selection)3. 循環(huán)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)(Repetition)4. 其它輔助控制語句其它輔助控制語句5. 常用算法(一)常用算法(一)Summaryl 順序結(jié)構(gòu) 按照各語句出現(xiàn)的先后順序執(zhí)行 包括:l 賦值語句l 輸入 / 輸出語句 4.1 順序結(jié)構(gòu)順序結(jié)構(gòu)l 賦值語句是任何程序設(shè)計的最基本語句。l 語法結(jié)構(gòu): 變量名 表達式 其中: 變量名:已經(jīng)定義(聲明)的變量名稱 表達式:任何類型表達式(算術(shù)、邏輯、 函數(shù)等等),類型與變量名的 類型一致。1 賦值語句賦值語句l 賦值語句的作用: 先計算等號右

2、邊表達式的值,然后賦給等號左邊的變量。l VB賦值語句的兩項任務(wù) 給變量賦值 給控件的屬性賦值l 例如: sngRate! =0.1 將0.1賦給單精度變量sngRate txtName.Text = “Hu” 賦值處理l當賦值等號左右數(shù)值類型不相同時,強制轉(zhuǎn)換成左邊變量的類型(精度) n%=3.5 結(jié)果為4(四舍五入)l當賦值等號左邊是數(shù)值類型,而右邊表達式是數(shù)字字符串,則VB自動轉(zhuǎn)換成數(shù)值類型再賦值,如表達式不是數(shù)字字符串,則出錯。 n%=“123” 結(jié)果為123,與n%=Val(“123”)效果一樣 n%=“1a23” 出現(xiàn)“類型不匹配”錯誤 l當邏輯類型賦值給數(shù)值類型時,True轉(zhuǎn)換為

3、1,F(xiàn)alse轉(zhuǎn)換為0; 反之,當數(shù)值型賦值給邏輯類型,則非零轉(zhuǎn)換為True,0轉(zhuǎn)換為False。l任何非字符類型賦值給字符類型,自動轉(zhuǎn)換為字符類型。 注意:l盡量采用轉(zhuǎn)換函數(shù)進行轉(zhuǎn)換,避免VB系統(tǒng)自動轉(zhuǎn)換。這樣能避免出現(xiàn)意想不到的錯誤。lVB系統(tǒng)會自動判斷賦值符號“=“ 和關(guān)系運算符等于符號”=“。l 賦值符號”=“左邊只能是變量,不能是常量、或者表達式。l 賦值語句: intX = intX + 1l VB與用戶之間的數(shù)據(jù)交互通過兩個函數(shù)和一個過程完成。l 函數(shù)有返回值,過程沒有返回值。(第六章)l 函數(shù): InputBox(), MsgBox()l 過程: MsgBox2 人機交互函數(shù)和

4、過程人機交互函數(shù)和過程l 語法: 變量名InputBox(提示,標題,默認 ,x坐標位置,y坐標位置) 其中: 提示:字符串表達式,顯示信息。如果 要顯示多行,則在每行未加上回 車Chr(13)和換行Chr(10),或者, 加上VB系統(tǒng)常數(shù)vbCrLf。1 InputBox函數(shù) 標題:字符串表達式,在對話框的標題 顯示。如果省略,則顯示應(yīng)用程 序的名稱。 默認:字符串表達式。當對話框中沒有 輸入時,則該默認值作為輸入的 內(nèi)容。 x坐標位置,y坐標位置:整數(shù)表達式, 確定對話框左上角在屏幕上的位 置,屏幕左上角為坐標原點,單 位:twip。1000 twip = 1 inch。l 打開一個標準對

5、話框,等待用戶輸入內(nèi)容,用戶單擊“確定(OK)”或者按回車鍵,則該函數(shù)返回輸入的值,其類型為字符型。l例如: Dim strName As String * 40, strS1 As String strS1 = 請輸入你的姓名 + vbCrLf + 然后回車確定 strName = InputBox(strS1, 輸入框, , 100, 100)InputBox函數(shù)的作用l 語法: 變量名MsgBox(提示,按鈕,標題) 其中: 提示:與InputBox函數(shù)相同 標題:與InputBox函數(shù)相同 按鈕:整數(shù)表達式,決定信息框按鈕的 數(shù)目和類型及其圖標類型。參見 P77,表1.4.12 Msg

6、Box()函數(shù)分分 組組內(nèi)部常數(shù)內(nèi)部常數(shù)按鈕值按鈕值描述描述vbOkOnlyvbOkCancelvbAbortRetryIgnorevbYesNoCancelvbYesNovbRetryCancel012345“確定確定” “確定確定”、“取消取消”“終止終止”、“重試重試”, “忽略忽略”“是是”、“否否”、“取取消消”“是是”、“否否”“重試重試”、“取消取消”按按 鈕鈕數(shù)數(shù) 目目表表1.4.1 “按鈕按鈕”設(shè)置值及其意義設(shè)置值及其意義vbCriticalvbQuestionvbExclamationvbInformation16324864紅色紅色STOP標志標志詢問信息圖標詢問信息圖標

7、 ?警告信息圖標警告信息圖標 !信息圖標信息圖標 i按按 鈕鈕類類 型型vbDefaultButton1vbDefaultButton2 vbDefaultButton3 0256512第一個按鈕為默認第一個按鈕為默認第二個按鈕為默認第二個按鈕為默認第三個按鈕為默認第三個按鈕為默認默默 認認按按 鈕鈕vbApplicationModevbSystemMode 04096應(yīng)用模式應(yīng)用模式系統(tǒng)模式系統(tǒng)模式模式模式注意:注意:l四組方式可以組合使用。一般采用內(nèi)部常數(shù)形式,而不采用按鈕值形式。 例如: I=MsgBox(“密碼錯誤”,vbRetryCancel+vbExclamation,”輸入密碼”

8、) I=MsgBox(“密碼錯誤”,53,”輸入密碼”) l模式:若應(yīng)用模式建立對話框,則必須響應(yīng)對話框才能繼續(xù)當前的應(yīng)用程序,但可以切換到其它應(yīng)用程序。若應(yīng)用系統(tǒng)模式建立對話框,則所有的應(yīng)用程序都被掛起,直到用戶響應(yīng)對話框為止。 內(nèi)部常數(shù)內(nèi)部常數(shù)按鈕值按鈕值被單擊的按鈕被單擊的按鈕vbOkvbCancelvbAbortvbRetryvbIgnorevbYesVBNo1234567確定確定 取消取消終止終止重試重試忽略忽略是是否否表表1.4.2 MsgBox函數(shù)返回值意義函數(shù)返回值意義l 語法: MsgBox(提示,按鈕,標題) 其中: 提示、標題、 按鈕:與MsgBox函數(shù)相同l作用:Msg

9、box()函數(shù)和Msgbox過程的作用都是打開一個信息框,等待用戶選擇一個按鈕。l區(qū)別: Msgbox()函數(shù)返回所選按鈕的整數(shù)值; Msgbox過程沒有返回值。3 MsgBox過程編程實現(xiàn)賬號和密碼的輸入程序,要求:(1)賬號不超過6位數(shù)字,密碼為4位字符,假設(shè)為“Gong”(2)密碼輸入時,不顯示輸入的字符,用“*”代替。(3)輸入不正確,顯示有關(guān)信息。單擊“重試”,則清除原來輸入的內(nèi)容,等待重新輸入;單擊“取消”,終止程序運行。例題:分析分析l 賬號賬號不超過6位數(shù)字,則將文本框的MaxLength屬性設(shè)置為6;輸入結(jié)束后,通過LostFocus事件,來判斷賬號輸入的正確性。若出錯,則顯

10、示出錯信息,重新輸入。l 密碼要顯示“ * ”, 將PasswordChar屬性設(shè)置為“ * ”即可。 輸入結(jié)束按確定鍵后,判斷密碼的正確性。正確沒有顯示,出錯顯示出錯信息。l 選擇結(jié)構(gòu)作用對條件進行判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。lIf 條件語句lSelect case語句l條件函數(shù)4.2 選擇結(jié)構(gòu)選擇結(jié)構(gòu)l If 條件語句有多種形式單分支雙分支多分支4.2.1 If 條件語句條件語句If Then 語句1 單分支結(jié)構(gòu)(1) If Then End If(2)If Then l 表達式 可為關(guān)系表達式、邏輯表達式、算術(shù) 表達式。非零為True,零為False。l語句塊:一條或者多條語

11、句。l形式(2)中的語句只能是一條,或者多條多條簡單語句,之間用冒號分開。簡單語句,之間用冒號分開。l 盡量用第一種形式編程。其中,F(xiàn)T表達式表達式語句塊語句塊l當表達式為當表達式為TrueTrue時,執(zhí)行時,執(zhí)行ThenThen后的語句后的語句塊。塊。l否則,不作任否則,不作任何處理何處理If ThenElse 語句2 雙分支結(jié)構(gòu)(1) If Then Else End If(2)If Then Else l 當表達式為非零(True)時,執(zhí)行Then后的語句塊1(或語句1),否則,執(zhí)行Else后面的語句塊2(或語句2)。作用F表達式表達式語句塊語句塊1語句塊語句塊2TIf ThenElse

12、if 語句3 多分支結(jié)構(gòu) If Then Elseif Then Else End If 注意:l不管有幾個分支,程序執(zhí)行一個分支后,就不再執(zhí)行其它分支。l ElseIf不能寫作Else Ifl 當多個分支有多個表達式同時滿足時,則只執(zhí)行第一個匹配的語句塊。P82, 例4.3l在If 或者Else后面的語句中又有If 語,稱為If 嵌套。4 If 語句的嵌套 If Thenif Then End If End If l If 嵌套一般采用鋸齒型,增強程序的可讀性。l 一個If 必須與一個End If匹配,End If與最近的If語句配對。例題4.4 (P83)注意l Select Case 語

13、句是多分支結(jié)構(gòu)的另一種表示。比If 語句更直觀。l 選擇多于三個以上,采用Select Case較好。4.2.2 Select case語句語句 Select case 變量或表達式 Case 表達式列表1 Case 表達式列表2 Case Else End Select其中, 變量或表達式:數(shù)值型或字符串表達式 表達式列表 : 類型必須相同,可以為 (1)表達式 (2)一組逗號分開的值 (3)表達式1 To 表達式2 (4)Is關(guān)系運算符表達式i例如:Case 1 to 10 110范圍內(nèi)Case “a”,”e”,”I”,”o”,”u” 元音字母Case 2,4,6,Is10 2,4,6,或

14、大于10作用 根據(jù)變量或表達式中的結(jié)果,與各case語句中的表達式列表的值進行比較,匹配則執(zhí)行該語句塊。如果有多個匹配,則只執(zhí)行第一個匹配的語句塊。表達式列表1語句塊1表達式列表2語句塊2表達式列表n語句塊n語句塊n+1TTTFFF注意:lSelect Case 語句只能有一個變量,不能對多個變量進行條件判斷。l多個變量只能采用IfThenElseIf 語句l P85,例題4.6組合應(yīng)用:l算術(shù)運算:要求給出隨機的110的操作數(shù)和四則運算符,計算機根據(jù)學生的答案判斷準確是否,結(jié)束時給出成績。分析:(1)運算符 “ “ 采用1, 2, 3, 4 表示;(2) 隨機數(shù)用Rnd函數(shù)確定;(3) 產(chǎn)生

15、表達式由Form_load過程給出,在標簽(label)控件顯示。 ,,(4)學生在文本框中輸入答案;(5) 圖形框中顯示正確是否;(6) 最后單擊“計分”時,顯示成績。控件名控件名lblExpressiontxtAnswer amdCalculationpicDisplay主要屬性主要屬性Caption=“ ”Text=“ ” Caption=“計分”Picture默認值空 說說 明明 顯示產(chǎn)生的題目輸入計算結(jié)果 最后計分顯示題目、結(jié)果和正確是否l VB提供了兩個條件函數(shù)IIF( )函數(shù) 代替 If 語句Choose( )函數(shù) 代替 Select語句4.2.3 條件函數(shù)條件函數(shù)(1) IIf

16、( )函數(shù) IIf(表達式,當條件為T的值,當條件為F的值)例如:求x, y中的大的數(shù),放入Tmax變量中 TMax = IIf ( x y, x, y )等效于: If xy thenTmax=x ElseTmax=y End If(2) Choose( )函數(shù) Choose(整數(shù)表達式,選項列表)根據(jù)整數(shù)表達式的值,選擇選項列表的項: 1 第一項 2 第二項 . 選項數(shù)目 NullstrOp=Choose(intNOp, “+” , ”-”, ”x”, ” ”) l 最好不要采用這兩個函數(shù)IIF( )函數(shù) Choose( )函數(shù) 忠告:忠告:l 循環(huán)是在指定的條件下重復(fù)執(zhí)行某些指令。l兩種

17、類型的循環(huán)語句:計數(shù)型循環(huán)語句:用于循環(huán)次數(shù)確定的情況 (FOR循環(huán)語句) 條件循環(huán)語句:用于循環(huán)次數(shù)未知的情況 (Do Loop循環(huán)語句)4.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)For 循環(huán)變量循環(huán)變量 初值初值 To 終值終值 Step 步長步長 Exit For Next 循環(huán)變量4.3.1 For循環(huán)語句循環(huán)語句循環(huán)變量:整數(shù)型;步長:可正可負;正,初值小于終值;負,初值大于終值。默認為1語句塊:一或多句指令;Exit For:退出循環(huán);循環(huán)次數(shù):int(終值初值)/步長1)如圖1.4.11(a) (b) 所示。其中:1. 循環(huán)變量被賦初值,僅賦一次;2. 判斷循環(huán)變量是否在終值內(nèi),是,執(zhí)行循環(huán)體;否

18、,結(jié)束循環(huán),執(zhí)行Next后的下一句語句。3. 循環(huán)變量加步長,轉(zhuǎn)(2),繼續(xù)循環(huán)。執(zhí)行過程:1. 當退出循環(huán)時,循環(huán)變量的值保持退出時的值;2. 循環(huán)變量的值一般在循環(huán)體外賦值;參見:P89, 例4.93. 例如:P90,例題4.10注意:l有兩種形式的循環(huán)結(jié)構(gòu)(1) Do While | Until Exit Do Loop4.3.2 Do Loop循環(huán)語句循環(huán)語句(2) Do Exit Do Loop While | Until (1)形式1先判斷,再執(zhí)行。形式2先執(zhí)行,再判斷。流程圖參見P91。(2) 關(guān)鍵字While用于指明條件為真(True)時就執(zhí)行循環(huán)體的語句;Until則相反。(

19、3) 當省略 While | Until 時,即僅有 DoLoop 關(guān)鍵字,表示無條件循環(huán)。此時,循環(huán)體內(nèi)必須有Exit Do 語句,否則為死循環(huán)。其中:l用輾轉(zhuǎn)相除法求兩個自然數(shù)m、n的最大公約數(shù)和最小公倍數(shù)。l分析l先求最大公約數(shù)已知兩個數(shù) m, n,使得 m n m 除以 n ,得余數(shù) r 若 r 0,則 n 為求得的最大公約數(shù),算法結(jié)束;否則,執(zhí)行以下步驟 m n, n r, 轉(zhuǎn)步驟(2)l最小公倍數(shù)等于兩數(shù)相乘除以最大公約數(shù)例題4.12l在一個循環(huán)體內(nèi)包含了另一個完整的循環(huán)結(jié)構(gòu)。l 循環(huán)嵌套對 For 循環(huán)和 DoLoop 循環(huán)均適用。l注意:內(nèi)循環(huán)變量和外循環(huán)變量不能相同 外循環(huán)必

20、須完全包含內(nèi)循環(huán)l例題:參見P92,例4.134.3.3 循環(huán)的嵌套循環(huán)的嵌套l Go To 語句l Exit語句l End 語句l With 語句4.4 其它輔助控制語句其它輔助控制語句1 Go To 語句語句 l 形式: Go To 標號|行號l 該語句的作用是無條件轉(zhuǎn)移到標號或者行號指定的那行語句。l Go To語句只能轉(zhuǎn)移到同一個過程的標號或行號。標號是一個字符序列,行號是一個數(shù)字序列。l 采用Go To語句編制的程序稱為 BS 程序(Bowl of Spaghetti Program, 亂麻似的程序),程序結(jié)構(gòu)不清晰,可讀性差。l 結(jié)構(gòu)化程序設(shè)計中要求盡量少用或不用Go To語句,用

21、選擇結(jié)構(gòu)或者循環(huán)結(jié)構(gòu)來代替。lExit語句用于退出某種控制結(jié)構(gòu)的執(zhí)行。l 包括: Exit For Exit Do Exit Sub Exit Function2 Exit 語句語句lEnd 語句用于結(jié)束一個程序的運行。 End 語句可以在任何事件過程中。l End 還可以用來結(jié)束一個過程或者控制塊,在控制語句或過程中經(jīng)常使用。l End If, End Select, End Sub等等。3 End 語句語句lWith 的作用:可以對某個對象執(zhí)行一系列的語句,而不必重復(fù)指出對象的名稱。l 形式:With 對象語句塊 End With l參見P95, 例題。l 個人意見:盡量不用。4 With

22、 語句語句l算法是對某個問題求解過程的描述l 同一問題有多種算法描述l 算法分為兩大類 數(shù)值算法非數(shù)值算法4.5 常用算法(一)常用算法(一)4.5.1 累加、連乘累加、連乘 l 累加:在原有和的基礎(chǔ)上,一次一次地加上一個數(shù)。l 連乘:在原有積的基礎(chǔ)上,一次一次地乘以一個數(shù)。l 書P9596 中的簡單例子。l 例題4.14 求自然對數(shù)e的近似值。niiiine11!11!11!1! 31! 21! 111l采用 For Next語句如何實現(xiàn)?l 變量賦初始值語句若放在循環(huán)體內(nèi),情況會如何?思考:4.5.2 求素數(shù)求素數(shù) l素數(shù),又稱質(zhì)數(shù):大于2且只能被1和本身整除的整數(shù)。l求解想法:對于 m 從 i = 2,3,m-1 判斷 m 能否被 i 整除,若有一個能整除,則 m 不是素數(shù);否則, m 是素數(shù)l例題4.15, 求 100 以內(nèi)的素數(shù)l實際上,m 不可能被大于 的數(shù)整除,故內(nèi)循環(huán)為:For i = 2 To Int(Sqr(m), 將大大減少循環(huán)次數(shù)。l 不用 G

溫馨提示

  • 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

提交評論