第四章 vb基本的控制結(jié)構(gòu)_第1頁
第四章 vb基本的控制結(jié)構(gòu)_第2頁
第四章 vb基本的控制結(jié)構(gòu)_第3頁
第四章 vb基本的控制結(jié)構(gòu)_第4頁
第四章 vb基本的控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、uInputBox函數(shù)作用:打開一個對話框,等待用戶輸入,返回作用:打開一個對話框,等待用戶輸入,返回字符串類字符串類型型的輸入值。的輸入值。形式:InputBox(提示提示,標(biāo)題標(biāo)題,默認值默認值,x坐標(biāo)位置坐標(biāo)位置,y坐標(biāo)位置坐標(biāo)位置)其中:提示項不能省略。若要多行顯示,可在每行行末加回車換行符號常數(shù)vbCrLf。例例4.1 利用利用InputBox輸入基本工資和營業(yè)額,按輸入基本工資和營業(yè)額,按營業(yè)額營業(yè)額的的5%提成提成,計算出實發(fā)工資后用,計算出實發(fā)工資后用Print方法在窗體顯示。方法在窗體顯示。 下頁有分析與代碼提示:為一字符串表達式,在對話框中作為信息顯示,若要在多行顯示,必須

2、在每行行末加回車Chr(13)和換行Chr(10)控制符,不能省略該項。例要在屏幕上顯示圖示的例要在屏幕上顯示圖示的對話框?qū)υ捒? :作用:作用:打開一個信息框,等待用戶選擇一個按按鈕。 MsgBox函數(shù)返回所選按鈕的值, MsgBox過程不返回值MsgBox函數(shù)形式: 變量變量% = MsgBox(提示提示,按鈕按鈕,標(biāo)題標(biāo)題)MsgBox過程形式: MsgBox 提示提示,按鈕按鈕,標(biāo)題標(biāo)題按鈕項是一整型表達式,決定信息框按鈕的數(shù)目和類型及出現(xiàn)在信息框上的圖標(biāo)形式。 按鈕值如下按鈕值如下: : 函數(shù)返回所選按鈕整數(shù)值函數(shù)返回所選按鈕整數(shù)值: :2.u PrintPrint方法 作用:在對象

3、上輸出信息。 形式:對象.PrintPrintSpc(n)|Tab(n)表達式列表;|, 其中: 對象:窗體、圖形框或打印機。缺省對象為窗體。 Spc(n)函數(shù):從當(dāng)前打印位置起空n個空格。 Tab(n)函數(shù):從最左端開始計算的第n列。 分號:定位在上一個被顯示的字符之后。 逗號:定位在下一個打印區(qū)開始處(每個14列)。 PrintPrint語句尾無分號或逗號,表示輸出后換行。語句尾無分號或逗號,表示輸出后換行。形式:形式: Format Format (表達式表達式, 格式字符串格式字符串)常用數(shù)值格式化符及舉例常用數(shù)值格式化符及舉例 1.23E-010.00E+001234.567用指數(shù)表

4、示E+$1234.57$#.#1234.567在數(shù)字前強加123456.7%#.#%1234.567數(shù)值乘以100,加百分號%1,234.567#,#0.0001234.567千分位,1234.567#.#1234.567位置不足時不填充0#01234.567000000.00001234.567用0填充不足的位置0顯示結(jié)果格式字符串表達式作 用符號例例4.4 利用利用Format函數(shù)顯示數(shù)值。函數(shù)顯示數(shù)值。 計算機要處理的問題往往是復(fù)雜多變的,僅采用順序結(jié)構(gòu)是不夠的。必須利用選擇結(jié)構(gòu)等來解決實際應(yīng)用中的各種問題。VB中提供了多種形式的條件語句來實現(xiàn)選擇結(jié)構(gòu),有If條件語句和Select Ca

5、se情況語句等。它們都是對條件進行判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。 1. IfThen語句(單分支結(jié)構(gòu)) If If Then Then 語句塊語句塊(可以是一句或多句語句) End IfEnd If或或 If If Then Then 表達式:關(guān)系表達式、邏輯表達式,算術(shù)表達式。表達式值按非零為True,零為False進行判斷。該語句的作用是當(dāng)表達式的值為True,執(zhí)行Then后面的語句塊,否則不做任何操作。表達式 語句塊 T F 例:例:已知兩個數(shù)已知兩個數(shù)x x和和y y,比較它們的大小,使得,比較它們的大小,使得x x大于大于y y。 本章目錄本章目錄If xy Then t=

6、x x=y y=tEnd If 或或 If xy Then t=x: x=y: y=t 簡單簡單IfIf形式無形式無End IfEnd If,只能是一句語句或語句間,只能是一句語句或語句間用冒號分隔,而且必須在一行上書寫。用冒號分隔,而且必須在一行上書寫。 t y x2. IfThenElse語句語句 If 表達式表達式 Then 語句塊語句塊1 Else 語句塊語句塊2 End If或或 If 表達式表達式 Then 語句語句1 Else 語句語句2 當(dāng)表達式的值為當(dāng)表達式的值為True時,執(zhí)行時,執(zhí)行Then后面的語句塊后面的語句塊1,否則執(zhí)行否則執(zhí)行Else后面的語句塊后面的語句塊2 表

7、達式 F 語句塊 1 T 語句塊 2 計算分段函數(shù)yxxxxxxxsincos231030單分支結(jié)構(gòu)實現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1) 雙分支結(jié)構(gòu)實現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If 表 達 式 2 表 達 式n T F T F 語 句 塊 n+1 語 句 塊 2 語 句 塊 1 F T 表 達 式 1 語 句 塊 n 該語句的作用是根據(jù)不同的表達式值確定執(zhí)行哪該語句的作用是根據(jù)不同的表達式值確定執(zhí)行哪個語句塊個語句塊 3. IfThenEl

8、seIf3. IfThenElseIf語句語句 If If 表達式表達式1 Then1 Then 語句塊語句塊1 1 ElseIf ElseIf 表達式表達式2 Then2 Then 語句塊語句塊2 2 Else Else 語句塊語句塊 n+1 n+1 End IfEnd If例例4.5已知變量已知變量strC中存放了一個字符,判斷該字符中存放了一個字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。是字母字符、數(shù)字字符還是其他字符。 If Ucase(strC) =A And Ucase (strC) =0 And strC 0) Y= 0 (X=0) 1X2 (X0成立,則利用表達式計算成立

9、,則利用表達式計算Y的值;的值;否則,如果否則,如果X0成立,則利用表達式計算成立,則利用表達式計算Y的值;的值;否則,否則,X0一定成立,利用表達式計算一定成立,利用表達式計算Y的值。的值。這就形成了選擇結(jié)構(gòu)的嵌套。這就形成了選擇結(jié)構(gòu)的嵌套。Select Case 測試變量或表達式測試變量或表達式Case 表達式列表表達式列表1 語句塊語句塊1Case 表達式列表表達式列表2 語句塊語句塊2Case Else 語句塊語句塊n+1End Select表達式列表表達式列表與變量或表達式變量或表達式的類型必須相同,是下面4種形式之一 :表達式 例例: : AA一組用逗號分隔的枚舉值 例例: 2,4

10、,6,8表達式1 To 表達式2 例:例:60 To 10060 To 100Is 關(guān)系運算符表達式 例:例: Is 60Is =A And Ucase (strC) =0 And strC 0 And y 0 Then MsgBox(在第一象限在第一象限) ElseIf x 0 Then MsgBox(在第二象限在第二象限)ElseIf x 0 And y 0 And y 0 And y 0 MsgBox(“在第一象限在第一象限”) Case x 0 MsgBox(“在第二象限在第二象限”) Case x 0 And y 0 And y y,x,y)該語句與如下語句等價該語句與如下語句等價

11、: If x y Then Tmax = x Else Tmax = y If x y Then Tmax = x Else Tmax = y 例例4.7 4.7 根據(jù)當(dāng)前日期函Now、WeekDay,利用Choose函數(shù)顯示今日是星期幾的形式。 提示:用Now或Date函數(shù)可獲得今天的日期;WeekDay函數(shù)可獲得指定日期是星期幾的整數(shù),規(guī)定星期日是1,星期一是2,依次類推。t = Choose(Weekday(Now), “t = Choose(Weekday(Now), “星期日星期日”, “, “星期星期一一”, “, “星期二星期二”, “, “星期三星期三”, “, “星期四星期四

12、”, , “星期五星期五”, “, “星期六星期六”) )MsgBox(MsgBox(今天是:今天是: & Now & t) & Now & t) 例例4.8由計算機來當(dāng)一年級的算術(shù)老師,要求給出一系列的110的操作數(shù)和運算符,學(xué)生輸入該題的答案,計算機根據(jù)學(xué)生的答案判斷正確與否,當(dāng)結(jié)束時給出成績。 分析:產(chǎn)生110操作數(shù),可通過Int(10 * Rnd + 1) 實現(xiàn)常見錯誤常見錯誤1在選擇結(jié)構(gòu)中缺少配對的結(jié)束語句對多行式的If塊語句中,應(yīng)有配對的 End If語句結(jié)束。2. 多邊選擇ElseIf關(guān)鍵字的書寫和條件表達式的表示 ElseIf 不要寫成Else If; 多個條件表達式次序問題,

13、見例4.33. Select Case語句的使用 Select Case 后不能出現(xiàn)多個變量;Case子句后不能出現(xiàn)變量見例4.6For循環(huán)語句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu)。循環(huán)語句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu)。For For 循環(huán)變量循環(huán)變量 初值初值 To To 終值終值 Step 步長步長語句塊語句塊Exit For語句塊語句塊Next Next 循環(huán)變量循環(huán)變量循環(huán)變量必須為數(shù)值型。循環(huán)變量必須為數(shù)值型。Dim i%, sum%For i = 1 To 100 Step 2 sum = sum + iNext iMsgBox(sum)例例4.10 計算計算1-100的奇數(shù)和。循環(huán)流

14、程:循環(huán)流程: (1) (1) 循環(huán)變量被賦初值,它僅被循環(huán)變量被賦初值,它僅被賦值一次。賦值一次。 (2) (2) 判斷循環(huán)變量是否在終值內(nèi),判斷循環(huán)變量是否在終值內(nèi),如果是,執(zhí)行循環(huán)體;如果否,結(jié)束如果是,執(zhí)行循環(huán)體;如果否,結(jié)束循環(huán),執(zhí)行循環(huán),執(zhí)行NextNext的下一語句。的下一語句。 (3) (3) 循環(huán)變量加步長,轉(zhuǎn)循環(huán)變量加步長,轉(zhuǎn)(2)(2),繼,繼續(xù)循環(huán)續(xù)循環(huán) ForFor循環(huán)遵循循環(huán)遵循“先檢查,后執(zhí)行先檢查,后執(zhí)行”的原的原則則 步長步長00,初值大于終值時不執(zhí)行,初值大于終值時不執(zhí)行, ,省略時為省略時為1 1。 步長步長00,初值小于終值時不執(zhí)行,初值小于終值時不執(zhí)行

15、, , 步長步長=0=0,死循環(huán),死循環(huán)。循環(huán)次數(shù)循環(huán)次數(shù) T T 循環(huán)變量終值 語句塊 語句塊 循環(huán)變量=循環(huán)變量+步長 F 循環(huán)變量=初值 有Exit For F Next 的下一語句 ) 1(步長初值終值Int4)1(3213Int循環(huán)執(zhí)行次數(shù)輸出 i的值分別為: 2 5 8 11而出了循環(huán)輸出為: I=14Private Sub Command1_Click() j = 0 For i = 1 To 20 Step 2 i = i + 3 j = j + 1 Print 第; j; 次循環(huán)i=; i Next i Print 退出循環(huán)后i=; i End Sub正常情況:i=1,3,5

16、,7,9,11, 13,15,17,19現(xiàn)在:i=4,9,14,19Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。形式形式1: Do Do While|UntilWhile|Until 語句塊語句塊 Exit Do 語句塊語句塊LoopLoop形式形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;為先判斷后執(zhí)行,有可能一次也不執(zhí)行;形式形式2為先執(zhí)行后判斷,至少執(zhí)行一次。為先執(zhí)行后判斷,至少執(zhí)行一次。 形式形式2:Do 語句塊語句塊 Exit Do 語句塊語句塊Loop While|Until F T 語句塊 語句塊 Do WhileLoop 表達式列表 1 有 Exit

17、 Do F T T F 語句塊 語句塊 表達式列表 1 Do Loop While 有 Exit Do F T 例例4.13 4.13 我國有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億。解此問題兩種方法,可根據(jù)公式:直接利用標(biāo)準函數(shù)對數(shù)可求得:但求得的年數(shù)不為整數(shù);也可利用循環(huán)求得 :)008. 1log()2log(n 0.008)13(126nPrivate Sub Command1_Click() x = 13:n = 0 Do While x n (2) m除以n得余數(shù)r (3)若r=0,則n為最大公約數(shù),結(jié)束;否則執(zhí)行(4) (4)mn,nr,再重復(fù)執(zhí)行(2)例

18、 求 m=14 ,n=6 的最大公約數(shù). If m n Then t = m: m = n: n = t r=m mod n Do While (r 0) m=n n=r r= m mod n Loop Print 最大公約數(shù)=, n 輾轉(zhuǎn)相減法輾轉(zhuǎn)相減法 m=m-n mn n=n-m nm m、n為公約數(shù) m=nDo While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2Loop m n r 14 6 2 6 2 0例例4.184.18求自然對數(shù)求自然對數(shù)e e的近似值,其誤差小于的近似值,其誤差小

19、于0.000010.00001。近似公式近似公式 分析:本例涉及到程序設(shè)計中兩個重要運算:分析:本例涉及到程序設(shè)計中兩個重要運算:累累加和連乘加和連乘i!。累加是在原有和的基礎(chǔ)上再加一個。累加是在原有和的基礎(chǔ)上再加一個數(shù);連乘則是在原有積的基礎(chǔ)上再乘以一個數(shù)。數(shù);連乘則是在原有積的基礎(chǔ)上再乘以一個數(shù)。該題先求該題先求i!,再將,再將1/i!進行累加,循環(huán)次數(shù)未知,進行累加,循環(huán)次數(shù)未知,可先設(shè)置一個次數(shù)很大的值,然后在循環(huán)體內(nèi)判可先設(shè)置一個次數(shù)很大的值,然后在循環(huán)體內(nèi)判斷是否到達精度,也可用斷是否到達精度,也可用Do While來實現(xiàn)。來實現(xiàn)。 本章目錄本章目錄 “窮舉法”也稱為“枚舉法”或“

20、試湊法”, 即將可能出現(xiàn)的各種情況一一測試,判斷是否滿足條件,一般采用循環(huán)來實現(xiàn),判斷是否滿足條件,采用循環(huán)結(jié)構(gòu)來實現(xiàn)。 例例4.19 百元買百雞問題。假定小雞每只5角,公雞每只2元,母雞每只3元?,F(xiàn)在有100元錢要求買100只雞,編程列出所有可能的購雞方案。 設(shè)母雞、公雞、小雞各為x、y、z只,根據(jù)題目要求,列出方程為: x+y+z=100 3x+2y+0.5z=100三個未知數(shù),兩個方程,此題有若干個解。解決此類問題采用“試湊法”,把每一種情況都考慮到。 方法一:最簡單三個未知數(shù)利用三重循環(huán)來實現(xiàn)。 方法二:從三個未知數(shù)的關(guān)系,利用兩重循環(huán)來實現(xiàn)。窮舉法窮舉法 ) “遞推法”又稱為“迭代法”,其基本思想是把一個復(fù)雜的計算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。 例題:求出Fabonacci(斐波那契)數(shù)列的前20項。 Fabonacci(斐波那契)數(shù)列的規(guī)律是:前2項為0和1,其余各項為該項前2項之和,即0,1,1,2,3,5,8,13。 在若干個數(shù)中求最大值,一般先假設(shè)一個較小的數(shù)為最大值的初值,若無法估計較小的值,則取第一個數(shù)為最大值的初值;然后將每一個數(shù)與最大值比較,若該數(shù)大于最大值,將該數(shù)替換為最大值;依次逐一比較。例例 隨機產(chǎn)生隨機產(chǎn)生1010

溫馨提示

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

評論

0/150

提交評論