版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程第三章第三章 三三種種基本程序控制基本程序控制結(jié)構(gòu)結(jié)構(gòu) Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程2算法及算法及Visual BasicVisual Basic語言編程規(guī)約語言編程規(guī)約主要內(nèi)容1算法及算法及Visual BasicVisual Basic語言編程規(guī)約語言編程規(guī)約2選擇結(jié)構(gòu)選擇結(jié)構(gòu)3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)45EixtEixt語句語句 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程33.1 算法及算法及Visual Basic語言編程規(guī)約語言編程規(guī)約例例
2、3-1任意輸入兩個數(shù),輸出其中較大的數(shù)。任意輸入兩個數(shù),輸出其中較大的數(shù)。本例算法描述如下。本例算法描述如下。(1)輸入兩個數(shù),分別存放在變量)輸入兩個數(shù),分別存放在變量a,b中。中。(2)比較)比較a,b的大小。若的大小。若a大于大于b,則執(zhí)行步驟,則執(zhí)行步驟(3);否則執(zhí)行步驟();否則執(zhí)行步驟(4)(3)輸出)輸出a,執(zhí)行步驟(,執(zhí)行步驟(5)。)。(4)輸出)輸出b,執(zhí)行步驟(,執(zhí)行步驟(5)。)。(5)結(jié)束。)結(jié)束??偨Y(jié):計算機(jī)需按照這總結(jié):計算機(jī)需按照這5步解決問題,這是算法步解決問題,這是算法的描述,采用的是自然語言。的描述,采用的是自然語言。 Visual Basic Visu
3、al Basic程序設(shè)計教程程序設(shè)計教程3.1.2 算法算法1算法的特征算法的特征一個算法應(yīng)該具有以下一個算法應(yīng)該具有以下5個重要特征。個重要特征。(1)有窮性:一個算法必須保證執(zhí)行有限步之后結(jié)束。)有窮性:一個算法必須保證執(zhí)行有限步之后結(jié)束。(2)確定性:算法的每一步必須有確切的含義,不允許)確定性:算法的每一步必須有確切的含義,不允許出現(xiàn)歧義。出現(xiàn)歧義。 (3)輸入:一個算法有)輸入:一個算法有0個或多個輸入,個或多個輸入,0個輸入是指個輸入是指算法本身定義了初始條件;。算法本身定義了初始條件;。(4)輸出:一個算法有一個或多個輸出,沒有輸出的算)輸出:一個算法有一個或多個輸出,沒有輸出的
4、算法是沒有意義的。法是沒有意義的。 (5)有效性:算法能夠在特定的環(huán)境中滿足解決某一問)有效性:算法能夠在特定的環(huán)境中滿足解決某一問題的精度、時間、穩(wěn)定性的要求。題的精度、時間、穩(wěn)定性的要求。4 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程2算法的描述算法的描述流程圖是一種精確描述算法的圖形工具,流程圖中常流程圖是一種精確描述算法的圖形工具,流程圖中常用的符號如圖所示用的符號如圖所示把例把例3-1的算法轉(zhuǎn)化為流程圖表示的算法轉(zhuǎn)化為流程圖表示5 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.1.3 Visual Basic語言的編碼規(guī)
5、則語言的編碼規(guī)則1Visual Basic代碼書寫規(guī)則代碼書寫規(guī)則(1)Visual Basic代碼中不區(qū)分字母的大小寫。中不區(qū)分字母的大小寫。(2)同一行可以書寫多條語句,但語句之間要用)同一行可以書寫多條語句,但語句之間要用“: ”分隔。分隔。(3)單行語句可以分多行書寫,在本行后加續(xù)行符:)單行語句可以分多行書寫,在本行后加續(xù)行符:空格和下畫線空格和下畫線_。(4)一行允許多達(dá))一行允許多達(dá)255個字符。個字符。(5)整行注釋一般以)整行注釋一般以Rem開頭,也可以開頭,也可以“”“”開開頭。頭。6 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程2.系統(tǒng)對用戶
6、程序代碼進(jìn)行的自動轉(zhuǎn)換系統(tǒng)對用戶程序代碼進(jìn)行的自動轉(zhuǎn)換(1)Visual Basic中的關(guān)鍵字、首字母被轉(zhuǎn)換成中的關(guān)鍵字、首字母被轉(zhuǎn)換成大寫,其余是小寫。大寫,其余是小寫。(2)若關(guān)鍵字由多個英文單詞組成,則將每個單詞)若關(guān)鍵字由多個英文單詞組成,則將每個單詞的首字母轉(zhuǎn)換成大寫。的首字母轉(zhuǎn)換成大寫。 (3)對于用戶定義的標(biāo)識符,以第一次定義的為準(zhǔn),)對于用戶定義的標(biāo)識符,以第一次定義的為準(zhǔn),以后輸入時自動轉(zhuǎn)換成首次定義的以后輸入時自動轉(zhuǎn)換成首次定義的 形式。形式。7 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.2 順順 序序 結(jié)結(jié) 構(gòu)構(gòu)例例3-2 輸入兩個變量
7、,然后交換兩個變量的值,再輸入兩個變量,然后交換兩個變量的值,再輸出輸出。在窗體上輸出交換前的變量值,以及交換后的變量值。在窗體上輸出交換前的變量值,以及交換后的變量值。程序如下:程序如下:Private Sub Command1_Click()Dim A As Integer, B As Integer, C As IntegerA = Text1.Text: B = Text2.TextC = A: A = B: B = CText3.Text = A: Text4.Text = BEnd Sub8 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.2.2 數(shù)據(jù)
8、的輸出數(shù)據(jù)的輸出Print方法方法Print方法可以在窗體、圖片框和立即窗口中輸方法可以在窗體、圖片框和立即窗口中輸出數(shù)據(jù)。出數(shù)據(jù)。1Print方法使用格式是:方法使用格式是: 對象對象.Print表達(dá)式表表達(dá)式表,l;2Tab函數(shù)和函數(shù)和Spc函數(shù)函數(shù)Print方法經(jīng)常結(jié)合方法經(jīng)常結(jié)合Tab函數(shù)和函數(shù)和Spc函數(shù)輸出使函數(shù)輸出使用。用。(1)Tab函數(shù)。函數(shù)。格式:格式:Tab(n)功能:把光標(biāo)移到由參數(shù)功能:把光標(biāo)移到由參數(shù)n指定的位置,從這個指定的位置,從這個位置輸出信息,輸出的內(nèi)容放在位置輸出信息,輸出的內(nèi)容放在Tab函數(shù)的后面,并函數(shù)的后面,并用分號隔開。用分號隔開。9說明:說明:(
9、1)“對象對象”可以是窗體、圖片框、打印機(jī)或立即窗口。可以是窗體、圖片框、打印機(jī)或立即窗口。 如果省略如果省略了了“對象對象”,則是指當(dāng)前窗體。,則是指當(dāng)前窗體。(2)“表達(dá)式表表達(dá)式表”是一個表達(dá)式或多個表達(dá)式,可以是數(shù)值表達(dá)式或是一個表達(dá)式或多個表達(dá)式,可以是數(shù)值表達(dá)式或字符串。對于數(shù)值表達(dá)式,字符串。對于數(shù)值表達(dá)式,Print具有計算和輸出雙重功能;而對于具有計算和輸出雙重功能;而對于字符串,則原樣輸出。如果省略了字符串,則原樣輸出。如果省略了“表達(dá)式表表達(dá)式表”,則輸出空行。,則輸出空行。(3)當(dāng)輸出多個表達(dá)式或字符串時,各輸出項之間可用逗號或分號)當(dāng)輸出多個表達(dá)式或字符串時,各輸出項
10、之間可用逗號或分號隔開,也可以用空格。如果用逗號分隔,則各輸出項之間有隔開,也可以用空格。如果用逗號分隔,則各輸出項之間有14個空個空格的長度分隔。如果用分號分隔,則按緊湊格式輸出數(shù)據(jù),數(shù)值之間格的長度分隔。如果用分號分隔,則按緊湊格式輸出數(shù)據(jù),數(shù)值之間有一個空格的長度,字符串之間沒有空格。有一個空格的長度,字符串之間沒有空格。(4)不換行輸出。如果)不換行輸出。如果Print末尾沒有標(biāo)點(diǎn)符號(逗號或分號),末尾沒有標(biāo)點(diǎn)符號(逗號或分號),則自動換行。如果則自動換行。如果Print末尾有逗號或分號則不換行。末尾有逗號或分號則不換行。 Visual Basic Visual Basic程序設(shè)計教
11、程程序設(shè)計教程(2) Spc函數(shù)。函數(shù)。 格式:格式:Spc(n)功能:在功能:在Print方法中使用方法中使用Spc函數(shù)可以跳過函數(shù)可以跳過n個空個空格。格。10Private Sub Form_Click()Dim x As Integer, y As SinglePrint 100 輸出輸出100后換行后換行Print -100 輸出輸出-100后換行后換行Print abc 輸出輸出abc后換行后換行Print abc;Print def 輸出輸出abc后,輸出后,輸出def,換行,換行Print abc,Print def 輸出輸出abc后,間隔后,間隔14個空格,輸出個空格,輸出d
12、ef,換行,換行Print abc; defPrint abc, defPrint Tab(15); abcdef 在第在第15列上輸出列上輸出abcdefPrint Spc(15); abcdef 輸出輸出15個空格,在第個空格,在第16列上輸出列上輸出abcdefPrint Tab(1); 123456789; Tab(11); abcdef 第第1列上輸出列上輸出123456789,第,第11列上輸出列上輸出abcdefPrint Tab(2); 123456789; Spc(5); abcdef 第第2列上輸出列上輸出123456789,輸出,輸出5個空格,輸出個空格,輸出abcdef
13、End Sub Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.2.3 賦值語句賦值語句賦值語句是賦值語句是Visual Basic語句中最基本也是使語句中最基本也是使用頻率最高的語句之一。采用賦值語句為變量賦值,用頻率最高的語句之一。采用賦值語句為變量賦值,Visual Basic的變量有兩種,屬性變量和內(nèi)存變量。的變量有兩種,屬性變量和內(nèi)存變量。賦值語句格式如下:賦值語句格式如下: 變量名變量名= 對象對象.屬性屬性=賦值時,首先計算運(yùn)算符右邊表達(dá)式的值,然后賦值時,首先計算運(yùn)算符右邊表達(dá)式的值,然后賦給左邊的變量或?qū)傩?。賦給左邊的變量或?qū)傩浴@纾豪纾篘=
14、123 Mod 15 內(nèi)存變量賦值內(nèi)存變量賦值Text1.text=”祝你學(xué)好祝你學(xué)好vb程序設(shè)計程序設(shè)計” 屬性變量屬性變量賦值賦值11注意:注意:(1)賦值運(yùn)算符的左邊必須是變量或?qū)ο蟮膶傩?,不允)賦值運(yùn)算符的左邊必須是變量或?qū)ο蟮膶傩裕辉试S是常量或表達(dá)式或函數(shù)調(diào)用(也可看做是表達(dá)式)。許是常量或表達(dá)式或函數(shù)調(diào)用(也可看做是表達(dá)式)。(2)不允許在一個賦值語句中為多個變量賦值,)不允許在一個賦值語句中為多個變量賦值,如如x1=x2=x3=15是錯誤的。如是錯誤的。如x=x+1的含義的含義不是數(shù)學(xué)方程,而是把變量不是數(shù)學(xué)方程,而是把變量x的值加的值加1后再賦給后再賦給x。(3)賦值運(yùn)算符)
15、賦值運(yùn)算符“=”左右兩邊的數(shù)據(jù)類型一般要左右兩邊的數(shù)據(jù)類型一般要求一致,若不一致,求一致,若不一致,Visual Basic系統(tǒng)會進(jìn)行處理系統(tǒng)會進(jìn)行處理。 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.2.4 應(yīng)用舉例應(yīng)用舉例例例3-4 編寫一個溫度轉(zhuǎn)換程序,完成攝氏溫度和華編寫一個溫度轉(zhuǎn)換程序,完成攝氏溫度和華氏溫度的轉(zhuǎn)換。下述轉(zhuǎn)換公式中,氏溫度的轉(zhuǎn)換。下述轉(zhuǎn)換公式中,C代表攝氏溫度,代表攝氏溫度,F(xiàn)代表華氏溫度,轉(zhuǎn)換結(jié)果保留小數(shù)點(diǎn)后兩位。代表華氏溫度,轉(zhuǎn)換結(jié)果保留小數(shù)點(diǎn)后兩位。12轉(zhuǎn)換攝氏轉(zhuǎn)換攝氏Private Sub Command1_Click() Di
16、m f As Single, c As Single f = Val(Text1.Text) 輸入華氏溫度輸入華氏溫度 c = 5 / 9 * (f - 32) 轉(zhuǎn)換為攝氏溫度轉(zhuǎn)換為攝氏溫度 Text2.Text = Str(c) 輸出攝氏溫度輸出攝氏溫度End Sub轉(zhuǎn)換華氏轉(zhuǎn)換華氏Private Sub Command2_Click() Dim f As Single, c As Single c = Val(Text2.Text) 輸入攝氏溫度輸入攝氏溫度 f = 9 / 5 * c + 32 轉(zhuǎn)換為華氏溫度轉(zhuǎn)換為華氏溫度 Text1.Text = Str(f) 輸出華氏溫度輸出華氏溫度
17、End Sub Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-5設(shè)計一個信息錄入窗體(見圖設(shè)計一個信息錄入窗體(見圖3-6),錄入),錄入學(xué)生的基本信息。包括學(xué)號、姓名、系別、班級、學(xué)生的基本信息。包括學(xué)號、姓名、系別、班級、生日、家庭住址。單擊保存按鈕后,錄入的基本信生日、家庭住址。單擊保存按鈕后,錄入的基本信息由息由MsgBox顯示。顯示。13 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.3 選選 擇擇 結(jié)結(jié) 構(gòu)構(gòu)例例3-6一個簡化了的獎學(xué)金評審規(guī)則:三門課程的一個簡化了的獎學(xué)金評審規(guī)則:三門課程的平均成績在平均成績在9
18、0分以上(包含分以上(包含90分)者可以獲得獎分)者可以獲得獎學(xué)金。編寫一個學(xué)金。編寫一個Visual Basic程序,看誰能拿到程序,看誰能拿到獎學(xué)金。獎學(xué)金。分析:解決該問題的關(guān)鍵是學(xué)生的平均分與分析:解決該問題的關(guān)鍵是學(xué)生的平均分與90的的關(guān)系,求取平均分后,即可進(jìn)行判斷。判斷過程用關(guān)系,求取平均分后,即可進(jìn)行判斷。判斷過程用選擇結(jié)構(gòu)實(shí)現(xiàn)。程序界面使用四個文本框,用來輸選擇結(jié)構(gòu)實(shí)現(xiàn)。程序界面使用四個文本框,用來輸入學(xué)生姓名和三門課程的成績,一個標(biāo)簽用來顯示入學(xué)生姓名和三門課程的成績,一個標(biāo)簽用來顯示判斷結(jié)果。判斷結(jié)果。14Private Sub Command1_Click()Dim s
19、_en As Single, s_sp As Single, s_pro As SingleDim ave As Single, msg As Strings_en = Val(Trim(Text2.Text)s_sp = Val(Trim(Text3.Text)s_pro = Val(Trim(Text4.Text)ave = (s_en + s_sp + s_pro) / 3ave = Fix(ave * 100 + 0.5) / 100 結(jié)果保留小數(shù)點(diǎn)后兩位結(jié)果保留小數(shù)點(diǎn)后兩位獎學(xué)金評審,使用獎學(xué)金評審,使用IF選擇結(jié)構(gòu)選擇結(jié)構(gòu)If ave = 90 Thenmsg = Label5.C
20、aption & Text1.Text & 的平均分為:的平均分為: & ave & ,可獲得獎學(xué)金,可獲得獎學(xué)金Elsemsg = Label5.Caption & Text1.Text & 的平均分為:的平均分為: & ave & ,不能獲得獎學(xué)金,不能獲得獎學(xué)金End If輸出評審結(jié)果輸出評審結(jié)果Label5.Caption = msgEnd Sub Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.3.2 If語句語句1單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)If then語句語句該語句只提供一個選擇分支,有兩種格式。該語句只提供一個選擇分支,有兩種格式。格式一:格式一
21、: If then 語句塊語句塊 End If格式二:格式二: If then 語句塊語句塊15說明:說明:(1)單分支)單分支If語句的功能是判斷條件表達(dá)式,如果值為語句的功能是判斷條件表達(dá)式,如果值為True,則執(zhí)行語句塊,否則跳過語句塊,執(zhí)行,則執(zhí)行語句塊,否則跳過語句塊,執(zhí)行End If下下面的代碼,流程圖如圖面的代碼,流程圖如圖3-9所示。所示。(2)“”的值是邏輯值,表達(dá)式類型一般的值是邏輯值,表達(dá)式類型一般為關(guān)系表達(dá)式或邏輯表達(dá)式,也可為算術(shù)表達(dá)式。為算為關(guān)系表達(dá)式或邏輯表達(dá)式,也可為算術(shù)表達(dá)式。為算術(shù)表達(dá)式時,表達(dá)式的值為術(shù)表達(dá)式時,表達(dá)式的值為0視為視為False,非,非0視
22、為視為True。條件表達(dá)式中若出現(xiàn)。條件表達(dá)式中若出現(xiàn)“=”,則視為關(guān)系運(yùn)算符而不是,則視為關(guān)系運(yùn)算符而不是賦值運(yùn)算符。賦值運(yùn)算符。(3)語句塊為一條或多條語句的集合。若選擇格式二,)語句塊為一條或多條語句的集合。若選擇格式二,則需把整個條件語句寫在一行,語句塊中若有多條語句,則需把整個條件語句寫在一行,語句塊中若有多條語句,語句間用語句間用“: ”分隔。分隔。 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-7 輸入三個數(shù)輸入三個數(shù)a,b,c,要求按照由大到小的,要求按照由大到小的順序輸出。使用順序輸出。使用InputBox輸入輸入a,b,c的值。的值。分析
23、:對分析:對a,b,c三個數(shù)進(jìn)行排序,方法是兩兩比較,三個數(shù)進(jìn)行排序,方法是兩兩比較,需要比較三次。采用單分支選擇結(jié)構(gòu)實(shí)現(xiàn)三次比較。需要比較三次。采用單分支選擇結(jié)構(gòu)實(shí)現(xiàn)三次比較。16 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程2雙分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)IfThenElse語句語句雙分支雙分支If語句提供兩個選擇分支,語句格式如下:語句提供兩個選擇分支,語句格式如下:1)IfThenElse語句語句2)If then 語句塊語句塊1 Else 語句塊語句塊2 End If17 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-8
24、輸入三個數(shù)作為三角形的三條邊,如果這三輸入三個數(shù)作為三角形的三條邊,如果這三個數(shù)能構(gòu)成三角形,計算該三角形面積,否則給出個數(shù)能構(gòu)成三角形,計算該三角形面積,否則給出錯誤提示。錯誤提示。分析:解決該問題應(yīng)分為如下兩步。分析:解決該問題應(yīng)分為如下兩步。(1)判斷三條邊能否構(gòu)成三角形,判斷條件是任)判斷三條邊能否構(gòu)成三角形,判斷條件是任意兩邊之和大于第三邊。意兩邊之和大于第三邊。(2)對能構(gòu)成三角形的數(shù)據(jù)進(jìn)行計算,求出三角)對能構(gòu)成三角形的數(shù)據(jù)進(jìn)行計算,求出三角形的面積形的面積18Private Sub Command1_Click() Dim a!, b!, c!, s!, x! a = Val(
25、Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If a + b c And b + c a And a + c b Then 如果能構(gòu)成三角形如果能構(gòu)成三角形 x = (a + b + c) / 2 s = Sqr(x * (x - a) * (x - b) * (x - c) Label2.Caption = 三角形面積為:三角形面積為: & s Else Label2.Caption = 數(shù)據(jù)有錯數(shù)據(jù)有錯,不能構(gòu)成三角形不能構(gòu)成三角形 End IfEnd Sub Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計
26、教程 3多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)IfThenElseIf語句語句多分支多分支If提供了多個選擇分支。語句格式如下:提供了多個選擇分支。語句格式如下:If Then 語句塊語句塊1ElseIf Then 語句塊語句塊2ElseIf Then 語句塊語句塊nElse 語句塊語句塊n+1End If19 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程說明:說明:(1)多分支)多分支If語句的功能是:依次判斷表達(dá)式的值,當(dāng)語句的功能是:依次判斷表達(dá)式的值,當(dāng)某個表達(dá)式的值為某個表達(dá)式的值為True時,則執(zhí)行該表達(dá)式對應(yīng)的語時,則執(zhí)行該表達(dá)式對應(yīng)的語句塊,然后跳出句塊,然
27、后跳出If語句,繼續(xù)執(zhí)行后續(xù)程序。如果所語句,繼續(xù)執(zhí)行后續(xù)程序。如果所有表達(dá)式的值均為有表達(dá)式的值均為False,則執(zhí)行,則執(zhí)行Else分支的語句塊,分支的語句塊,如果沒有如果沒有Else分支,則結(jié)束整個結(jié)構(gòu),執(zhí)行后續(xù)代碼。分支,則結(jié)束整個結(jié)構(gòu),執(zhí)行后續(xù)代碼。程序流程圖如圖所示。程序流程圖如圖所示。(2)無論有多少個分支,程序執(zhí)行一個分支后,便不再)無論有多少個分支,程序執(zhí)行一個分支后,便不再執(zhí)行其余分支。當(dāng)有多個分支的條件均為執(zhí)行其余分支。當(dāng)有多個分支的條件均為True時,只時,只執(zhí)行第一個條件為執(zhí)行第一個條件為True的分支。的分支。(3)Else分支可以省略。分支可以省略。20 Visu
28、al Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-9設(shè)計一個大小寫轉(zhuǎn)換程序。當(dāng)在輸入框中輸設(shè)計一個大小寫轉(zhuǎn)換程序。當(dāng)在輸入框中輸入大寫字母,在輸出框中同時顯示出對應(yīng)的小寫字入大寫字母,在輸出框中同時顯示出對應(yīng)的小寫字母;當(dāng)在輸入框中輸入小寫字母,在輸出框中同時母;當(dāng)在輸入框中輸入小寫字母,在輸出框中同時顯示出對應(yīng)的大寫字母;若輸入空格,則顯示顯示出對應(yīng)的大寫字母;若輸入空格,則顯示“*”;輸入;輸入“*”,顯示空格;輸入其他字符,顯示空格;輸入其他字符,在輸出框中原樣輸出。在輸出框中原樣輸出。21Private Sub Text1_KeyPress(KeyAscii A
29、s Integer) Dim st As String * 1 st = Chr(KeyAscii) 將參數(shù)傳遞的將參數(shù)傳遞的ASCII碼值轉(zhuǎn)化為字符碼值轉(zhuǎn)化為字符 小寫字母與大寫字母的小寫字母與大寫字母的Ascii碼相差碼相差32 If st = a And st = A And st 1 Or width 1 Or height 1 Or weight 30 Then r = -1 不予郵寄不予郵寄ElseIf weight = 10 Then 10kg以內(nèi)以內(nèi)r = 1#ElseIf weight = 20 Then 10kg20kgr = 0.9ElseIf weight = 30 T
30、hen 20kg30kgr = 0.8End If 根據(jù)根據(jù)r值進(jìn)行郵資計算值進(jìn)行郵資計算 If r = -1 ThenMsgBox 包裹超重,不能郵寄包裹超重,不能郵寄, 0+64, 提示提示Elsepostage = weight * r + 0.5 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.3.3 Select Case語句語句Select Case語句也稱為情況語句,用來實(shí)現(xiàn)多分語句也稱為情況語句,用來實(shí)現(xiàn)多分支選擇結(jié)構(gòu),支選擇結(jié)構(gòu),Select Case語句格式如下:語句格式如下:Select Case Case 語句塊語句塊1 Case 語句塊語
31、句塊2 Case 語句塊語句塊n Case Else 語句塊語句塊n+1End Select23 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程說明:說明:“測試表達(dá)式測試表達(dá)式”可以是數(shù)值型也可以是字符串表達(dá)式??梢允菙?shù)值型也可以是字符串表達(dá)式。程序運(yùn)行時會依次比較程序運(yùn)行時會依次比較Case分支的表達(dá)式列表值分支的表達(dá)式列表值與測試表達(dá)式的值,若某一分支的表達(dá)式列表值與與測試表達(dá)式的值,若某一分支的表達(dá)式列表值與測試表達(dá)式的值相符,則執(zhí)行該分支的語句塊,語測試表達(dá)式的值相符,則執(zhí)行該分支的語句塊,語句塊執(zhí)行完畢后句塊執(zhí)行完畢后Select Case語句便隨之結(jié)束
32、。語句便隨之結(jié)束??梢姡撜Z句與可見,該語句與If ThenElseIf語句結(jié)構(gòu)是語句結(jié)構(gòu)是相似的,不管語句中有多少個分支,一旦找到匹配相似的,不管語句中有多少個分支,一旦找到匹配的分支并執(zhí)行后,語句立即結(jié)束。的分支并執(zhí)行后,語句立即結(jié)束。Select Case執(zhí)行流程如圖執(zhí)行流程如圖3-16所示。所示。24 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-11 MsgBox函數(shù)允許顯示帶有一個或多個按函數(shù)允許顯示帶有一個或多個按鈕的信息,而且鈕的信息,而且MsgBox函數(shù)的返回值即是被按函數(shù)的返回值即是被按下的按鈕值,可以賦予一個變量??梢酝ㄟ^返回值下的按鈕
33、值,可以賦予一個變量??梢酝ㄟ^返回值判斷用戶按下的按鈕,并給出相應(yīng)處理,該過程可判斷用戶按下的按鈕,并給出相應(yīng)處理,該過程可使用使用Select Case語句實(shí)現(xiàn)。語句實(shí)現(xiàn)。MsgBox提示的信提示的信息是:息是:“是否要打開新的練習(xí)本?是否要打開新的練習(xí)本?”,顯示三個按,顯示三個按鈕,分別是鈕,分別是Yes(是),(是),NO(否)和(否)和Cancel(取消)(取消)25程序主要部分程序主要部分Select Case myButtonCase 6MsgBox open a new workbook right nowCase 7MsgBox You can open a new book
34、 manually later.Case ElseMsgBox You pressed Cancel.End Select Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-12運(yùn)輸公司對用戶計算運(yùn)費(fèi)。路程(運(yùn)輸公司對用戶計算運(yùn)費(fèi)。路程(skm)越)越遠(yuǎn),遠(yuǎn),t/km運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下。運(yùn)費(fèi)越低。標(biāo)準(zhǔn)如下。S250 沒有折扣沒有折扣250S500 2%折扣折扣500S1000 5%折扣折扣1000S2000 8%折扣折扣2000S 3000 Thenc = 12Elsec = Fix(s /250)End IfSelect Case cCase 0 d = 0C
35、ase 1 d = 2Case 2, 3 d = 5Case 4 To 7 d = 8Case 8 To 11 d = 10Case 12 d = 15End Selectf = p * w * s * (1 - d / 100) Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.3.4 選擇結(jié)構(gòu)的嵌套選擇結(jié)構(gòu)的嵌套在一個選擇分支中可以完整的包含另外一個選擇結(jié)構(gòu),在一個選擇分支中可以完整的包含另外一個選擇結(jié)構(gòu),這種結(jié)構(gòu)就叫做選擇結(jié)構(gòu)嵌套。這種結(jié)構(gòu)就叫做選擇結(jié)構(gòu)嵌套。27If then If then Else End IfEnd IfSelect Case Case
36、 If then Else End Select End If Case End Select說明:說明:(1)幾種選擇結(jié)構(gòu)嵌套可以靈活組合,嵌套層次也可以任)幾種選擇結(jié)構(gòu)嵌套可以靈活組合,嵌套層次也可以任意多。嵌套原則是:內(nèi)層的選擇結(jié)構(gòu)必須完整包含在外層選意多。嵌套原則是:內(nèi)層的選擇結(jié)構(gòu)必須完整包含在外層選擇結(jié)構(gòu)的分支中,不能有內(nèi)外層交叉的情況。擇結(jié)構(gòu)的分支中,不能有內(nèi)外層交叉的情況。(2)多層)多層If語句嵌套時,要注意語句嵌套時,要注意If與與Else的配對原則:的配對原則:Else總是與其最靠近的,未配對的總是與其最靠近的,未配對的If配對。從配對。從Else語句向語句向上查找,如果遇
37、到上查找,如果遇到End If,需要跳過一個,需要跳過一個If,同時需要跳,同時需要跳過單行的過單行的If語句。為了便于閱讀和維護(hù),建議在寫含有多層語句。為了便于閱讀和維護(hù),建議在寫含有多層嵌套的程序時使用縮進(jìn)對齊的方式。嵌套的程序時使用縮進(jìn)對齊的方式。 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-13 輸入一個學(xué)生的總評成績(大于等于輸入一個學(xué)生的總評成績(大于等于0且小且小于等于于等于100),按分?jǐn)?shù)段評定出相應(yīng)的等級),按分?jǐn)?shù)段評定出相應(yīng)的等級AE,如果輸入的成績小于等于,如果輸入的成績小于等于0或者大或者大于等于于等于100,則輸出出錯信息。,則輸
38、出出錯信息。28 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.4 循循 環(huán)環(huán) 結(jié)結(jié) 構(gòu)構(gòu)例例3-14 輸入輸入20個學(xué)生的個學(xué)生的VB程序設(shè)計課程的成績,程序設(shè)計課程的成績,統(tǒng)計出統(tǒng)計出90分以上的學(xué)生人數(shù)。分以上的學(xué)生人數(shù)。分析:循環(huán)可以看做是在某一特定條件下,反復(fù)做分析:循環(huán)可以看做是在某一特定條件下,反復(fù)做某件事情(某些語句)。本題中需要反復(fù)做的事情某件事情(某些語句)。本題中需要反復(fù)做的事情是輸入學(xué)生的信息(是輸入學(xué)生的信息(20次),統(tǒng)計次),統(tǒng)計90分以上的人分以上的人數(shù)(把數(shù)(把20個成績分別與個成績分別與90比較,需要比較比較,需要比較20次)
39、。當(dāng)程序中出現(xiàn)需要反復(fù)執(zhí)行的操作時,要考次)。當(dāng)程序中出現(xiàn)需要反復(fù)執(zhí)行的操作時,要考慮采用循環(huán)結(jié)構(gòu)解決問題。慮采用循環(huán)結(jié)構(gòu)解決問題。29For i = 1 To 20 score = Val(InputBox(輸入第輸入第 & i & 個學(xué)生的成績個學(xué)生的成績, 成績輸入框成績輸入框) If i Mod 10 = 0 Then 控制輸出格式,一行輸出控制輸出格式,一行輸出10個成績個成績 Print score; Print Else Print score; End If If score = 90 Then count = count + 1 End IfNext i Visual Bas
40、ic Visual Basic程序設(shè)計教程程序設(shè)計教程3.4.2 ForNext語句語句ForNext語句用于循環(huán)次數(shù)已知的循環(huán),使用形語句用于循環(huán)次數(shù)已知的循環(huán),使用形式如下:式如下:For = to Step Next 30 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-15 編程計算編程計算1!+2!+3!+10!。程序如下:程序如下:Private Sub Form_Click()Dim i As IntegerDim s As Long, t As Longt = 1 For i = 1 To 10 t = t * i s = s + tNext
41、iPrint 1!+2!+3!+10!= & sEnd Sub31 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-16 由隨機(jī)函數(shù)產(chǎn)生由隨機(jī)函數(shù)產(chǎn)生10道一位整數(shù)與兩位整數(shù)道一位整數(shù)與兩位整數(shù)相加的加法題,產(chǎn)生的加法題依次顯示在屏幕上,相加的加法題,產(chǎn)生的加法題依次顯示在屏幕上,每產(chǎn)生一道題后,由用戶輸入答案,如果答案正確,每產(chǎn)生一道題后,由用戶輸入答案,如果答案正確,記記10分;如果答案錯誤,允許第二次輸入答案,分;如果答案錯誤,允許第二次輸入答案,第二次輸入答案正確,記第二次輸入答案正確,記5分,錯誤記分,錯誤記0分。最后分。最后給出總得分。程序代碼如下
42、:給出總得分。程序代碼如下:32 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.4.3 DoLoop語句語句DoLoop語句通常用于循環(huán)次數(shù)未知,但循環(huán)語句通常用于循環(huán)次數(shù)未知,但循環(huán)條件容易給出的循環(huán)。條件容易給出的循環(huán)。DoLoop語句實(shí)現(xiàn)的循語句實(shí)現(xiàn)的循環(huán)有兩種,一種是當(dāng)型循環(huán),一種是直到型循環(huán)。環(huán)有兩種,一種是當(dāng)型循環(huán),一種是直到型循環(huán)。33當(dāng)型循環(huán)Do While/UntilLoop語句Do While/Until循環(huán)體Loop直到型循環(huán)DoLoop While/Until語句Do 循環(huán)體Loop While/Until Visual Basic Vi
43、sual Basic程序設(shè)計教程程序設(shè)計教程當(dāng)型循環(huán)流程圖當(dāng)型循環(huán)流程圖34 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程直到型循環(huán)直到型循環(huán)35 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-17愛因斯坦出了一道這樣的數(shù)學(xué)題:有一條長愛因斯坦出了一道這樣的數(shù)學(xué)題:有一條長階梯,若每步跨階梯,若每步跨2階,則最后剩階,則最后剩1階;若每步跨階;若每步跨3階,階,則最后剩則最后剩2階;若每步跨階;若每步跨5階,最后剩階,最后剩4階;若每步階;若每步跨跨6階則最后剩階則最后剩5階。只有每步跨階。只有每步跨7階,最后才正好階,最后才正
44、好一階不剩。請問:這條階梯共有多少階?一階不剩。請問:這條階梯共有多少階?36 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程程序如下:程序如下:Private Sub Form_Click() Dim i As Integer i = 1 Do While Not (i Mod 2 = 1) And (i Mod 3 = 2) And (i Mod 5 = 4) And (i Mod 6 = 5) And (i Mod 7 = 0) i = i + 1 Loop Print 愛因斯坦數(shù)學(xué)題的答案是:階梯數(shù)為愛因斯坦數(shù)學(xué)題的答案是:階梯數(shù)為 & iEnd Sub37
45、 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-19猴子吃桃問題。猴子第一天摘下若干桃子,猴子吃桃問題。猴子第一天摘下若干桃子,立刻吃了一半,還不過癮,又多吃了一個。第二天立刻吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半多一個。到第后每天早上都吃了前一天剩下的一半多一個。到第10天早上想再吃時,就只剩一個桃子了。求第一天早上想再吃時,就只剩一個桃子了。求第一天共摘多少個桃子。天共摘多少個桃子。38 Visual Basic Visual Bas
46、ic程序設(shè)計教程程序設(shè)計教程程序代碼如下:程序代碼如下:Private Sub Form_Click() Dim day As Integer, x1 As Integer, x2 As Integer day = 10 從第從第10天開始天開始 x2 = 1 Do While (day 1) 循環(huán)進(jìn)行到第一天結(jié)束,此時循環(huán)進(jìn)行到第一天結(jié)束,此時的的x1即為第即為第1天的桃子數(shù)天的桃子數(shù) x1 = (x2 + 1) * 2 x2 = x1 day = day - 1 Loop Print 第一天摘得桃子數(shù)是:第一天摘得桃子數(shù)是:; x1End Sub39 Visual Basic Visual
47、 Basic程序設(shè)計教程程序設(shè)計教程3.4.4 WhileWend語句語句WhileWend語句的使用格式如下:語句的使用格式如下:WhileWend40 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程3.4.5 循環(huán)的嵌套(多重循環(huán))循環(huán)的嵌套(多重循環(huán))在一個循環(huán)結(jié)構(gòu)內(nèi),又包含了另一個完整的循環(huán)結(jié)在一個循環(huán)結(jié)構(gòu)內(nèi),又包含了另一個完整的循環(huán)結(jié)構(gòu),這樣的結(jié)構(gòu)叫做循環(huán)嵌套。循環(huán)嵌套對于構(gòu),這樣的結(jié)構(gòu)叫做循環(huán)嵌套。循環(huán)嵌套對于ForNext、Do Loop以及以及WhileWend均適用。均適用。41(1)For Do While Loop Next(2)Do Whil
48、e For I= Next Loop(3)While Do Loop Until Wend Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程說明:說明:(1)循環(huán)嵌套中,內(nèi)層循環(huán)必須是完整地嵌套在外層循)循環(huán)嵌套中,內(nèi)層循環(huán)必須是完整地嵌套在外層循環(huán)中,不能出現(xiàn)交叉的情況。環(huán)中,不能出現(xiàn)交叉的情況。(2)各種循環(huán)語句可以互相嵌套,自由組合。嵌套的層)各種循環(huán)語句可以互相嵌套,自由組合。嵌套的層數(shù)亦無限制,但考慮算法執(zhí)行的效率,循環(huán)嵌套層數(shù)不數(shù)亦無限制,但考慮算法執(zhí)行的效率,循環(huán)嵌套層數(shù)不宜過多。以上三種形式嵌套層數(shù)為二層,亦可稱為二重宜過多。以上三種形式嵌套層數(shù)為二層
49、,亦可稱為二重循環(huán)。循環(huán)。(3)以二重循環(huán)為例,循環(huán)嵌套執(zhí)行的規(guī)律是:內(nèi)層循)以二重循環(huán)為例,循環(huán)嵌套執(zhí)行的規(guī)律是:內(nèi)層循環(huán)完整執(zhí)行一遍,外層循環(huán)執(zhí)行下一次循環(huán)(不包括使環(huán)完整執(zhí)行一遍,外層循環(huán)執(zhí)行下一次循環(huán)(不包括使用用Exit語句退出循環(huán)的情況)。語句退出循環(huán)的情況)。42 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程例例3-21打印由打印由“*”組成的組成的5行行5列的矩陣,如下列的矩陣,如下所示:所示:* * * * * * * * * * * * * * * * * * * * *43 Visual Basic Visual Basic程序設(shè)計教程程序設(shè)計教程程序代碼如下。程序代碼如下。Private Sub Fo
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 荊門市中國銀行2025秋招面試典型題目及參考答案
- 2026年社區(qū)工作者培訓(xùn)考試試題庫及答案(多選題)
- 2025年企業(yè)員工職業(yè)規(guī)劃與發(fā)展培訓(xùn)指導(dǎo)手冊
- 非黨員黨課教育
- 2025 小學(xué)四年級科學(xué)上冊月相變化與農(nóng)歷關(guān)系課件
- 細(xì)化生產(chǎn)部崗位職責(zé)制度
- 生產(chǎn)草皮全過程管理制度
- 生產(chǎn)企業(yè)領(lǐng)導(dǎo)值班制度
- 生產(chǎn)貿(mào)易類公司管理制度
- 生產(chǎn)制造類企業(yè)財務(wù)制度
- 停車場地租用合同書
- 2025年福建廈門高三一模高考數(shù)學(xué)試卷試題(含答案詳解)
- 喉返神經(jīng)損傷預(yù)防
- 《汽車用先進(jìn)高強(qiáng)鋼 薄板和薄帶 擴(kuò)孔試驗方法》
- 部編版五年級語文上冊快樂讀書吧測試題及答案
- 衛(wèi)星傳輸專業(yè)試題題庫及答案
- 脾破裂手術(shù)配合
- 2023年高級售后工程師年度總結(jié)及下一年展望
- 【語文】湖南省長沙市實(shí)驗小學(xué)小學(xué)四年級上冊期末試卷(含答案)
- 阿米巴經(jīng)營模式-人人都是經(jīng)營者推行授課講義課件
- 手術(shù)室外氣管插管術(shù)課件
評論
0/150
提交評論