VB程序設(shè)計-第4章VisualBasic語言程序結(jié)構(gòu).ppt
《VB程序設(shè)計-第4章VisualBasic語言程序結(jié)構(gòu).ppt》由會員分享,可在線閱讀,更多相關(guān)《VB程序設(shè)計-第4章VisualBasic語言程序結(jié)構(gòu).ppt(49頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、VB程序設(shè)計,第四章 Visual Basic語言程序結(jié)構(gòu),第四章 Visual Basic語言程序結(jié)構(gòu),本章知識點: 順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),常用算法的應(yīng)用等。,第四章 Visual Basic語言程序結(jié)構(gòu),4.1 順序結(jié)構(gòu)程序設(shè)計 4.2 選擇結(jié)構(gòu)程序設(shè)計 4.3 循環(huán)結(jié)構(gòu)程序設(shè)計 4.4 常用算法舉例,第四章 Visual Basic語言程序結(jié)構(gòu),4.1 順序結(jié)構(gòu)程序設(shè)計 4.1.1 賦值語句 賦值語句一般形式如下: 變量名=表達式 對象.屬性=表達式 功能:完成表達式的計算,將計算結(jié)果賦值給等號左側(cè)的變量或?qū)ο蟮膶傩?。例如? x=1 把1賦給變量x Text1.text=
2、hello! 把字符串hello!賦給文本框Text1的text屬性,第四章 Visual Basic語言程序結(jié)構(gòu),4.1 順序結(jié)構(gòu)程序設(shè)計 4.1.2 數(shù)據(jù)輸入 用戶主要通過三種方式實現(xiàn)數(shù)據(jù)輸入:使用文本框控件,使用系統(tǒng)提供的InputBox函數(shù),使用磁盤數(shù)據(jù)文件。本節(jié)主要介紹InputBox函數(shù)。函數(shù)格式如下: 變量名$=InputBox(提示信息,對話框標題,缺省值) 功能:彈出輸入對話框,供用戶輸入一個數(shù)據(jù)。 其中: 提示信息:是一個字符串表達式,最大長度不超過1024個字符,要來提示用戶輸入相關(guān)內(nèi)容,可使用chr(13)+chr(10)實現(xiàn)換行。 對話框標題:是字符串表達式,可省略,
3、默認為應(yīng)用程序名。 缺省值:是顯示在對話框輸入?yún)^(qū)的默認值。,,例如,Dim x% x= Val(InputBox(請輸入一個數(shù) ,輸入框,100 )) 在屏幕上顯示如圖4.2所示的對話框:,圖4.2 InputBox對話框,第四章 Visual Basic語言程序結(jié)構(gòu),4.1 順序結(jié)構(gòu)程序設(shè)計 4.1.3 數(shù)據(jù)輸出 1)Print方法 Print方法的一般格式如下: 對象名.PrintSpc(n)|Tab(n),|; 例如:Print Format(1234.5,00000.00) Print Format(3.14159,###.###) Print Format(3.14159,
4、##%) Print Format(3.14159,$(###.##)) Print Format(12345.6,###.##E+) Print Format(0.123 ,###.###e-) Print Format(date,mm-dd-yy) Print Format(date,yy年mm月dd),圖4 3例4.2執(zhí)行結(jié)果,,2. MsgBox函數(shù)和MsgBox方法 函數(shù)形式: 變量% = MsgBox(提示信息,對話框類型 ,標題) (1)“標題”和“提示信息”與InputBox函數(shù)中對應(yīng)的參數(shù)相同; (2)對話框類型由“按鈕圖標 +缺省按鈕+模式”4項組成,是
5、整型表達式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標類型及操作模式如表4.1所示。,表4.1,,例如:i=Msgbox(“注意:你輸入的數(shù)據(jù)不正確”,2+48+0+0,“錯誤提示”),結(jié)果如圖4.4所示。,第四章 Visual Basic語言程序結(jié)構(gòu),4.2 選擇結(jié)構(gòu)程序設(shè)計 4.2.1 IF語句 1)IfThen語句(單分支結(jié)構(gòu)) If Then 語句塊 End If 或:If Then ,圖4.5 選擇結(jié)構(gòu)流程圖,,例4.4 設(shè)密碼。用IF語句來判定輸入密碼的正確性。 Private Sub Command1_Click() Dim a As String, b As Strin
6、g a = 111111 b = InputBox(請輸入密碼:, 密碼對話框) If a = b Then MsgBox (密碼正確) End If End Sub,,2)IfThenElse語句(雙分支結(jié)構(gòu)) 格式1: If Then Else End If 格式2: If Then Else ,,例4.5 計算下列分段函數(shù)的值 分析:對于此分段函數(shù),由于包含X=0 和X= 0 Then y = (1 - x) 2 Else y = x 2 - 1 End If Print y=; y End Sub,,3)IfThenElseIf語句(多分支結(jié)構(gòu)) 使用
7、形式: If Then ElseIf Then Else 語句塊 n+1 End If,,例4.6 輸入一學(xué)生成績,評定其等級。方法是:90100分為“優(yōu)秀”,8089分為“良好”,7079分為“中等”,6069分為“及格”,60分以下以為“不合格”。 Private Sub Form_Click() Dim x As Integer x = Val(InputBox(請輸入成績:)) If x = 90 Then Print 優(yōu)秀 ElseIf x = 80 Then Print 良好 ElseIf x = 70 Then Print 中等
8、 ElseIf x = 60 Then Print 及格 Else Print 不及格 End If End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.2 選擇結(jié)構(gòu)程序設(shè)計 4.2.2 Select Case語句 Select Case 條件表達式 Case 表達式列表1 語句塊1 Case 表達式列表2 語句塊2 Case Else 語句塊n+1 End Select 說明:與是同類型的,為下面3種形式之一: (1) 一組枚舉表達式(用逗號分隔):例如, 2, 4, 6, 8。 (2) 表達式1 To 表達式2 :例如,60 to 100。 (3
9、) Is 關(guān)系運算符表達式:例如,Is < 60。,,將例4.6 使用Select Case語句來實現(xiàn)。 程序段如下: Private Sub Form_Click() Dim x As Integer x = Val(InputBox(請輸入成績:)) Select Case x Case 90 To 100 Print 優(yōu)秀 Case 80 To 89 Print 良好 Case 70 To 79 Print 中等 Case 60 To 69 Print 及格 Case Else Print 不及格 End Select End Sub,第四章 Visual Basic語言程序結(jié)
10、構(gòu),4.2 選擇結(jié)構(gòu)程序設(shè)計 4.2.3 選擇結(jié)構(gòu)的嵌套 如果在選擇結(jié)構(gòu)中又出現(xiàn)IF語句或select語句,就是選擇結(jié)構(gòu)的嵌套 (1) IF Then IF Then Else .. End If Else IF Then .. Else .. End If End IF,,(2) IF Then Select Case 條件1_1 Case 值1_1 IF Then Else .. End If Case值1_2. .. End Select . End
11、IF,,例4.7 在文本框中輸入1100之間的數(shù)字,如果輸入非數(shù)字,或數(shù)字超界,給予提示,并重新輸入。 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then 回車鍵的ascii碼值是13 If IsNumeric(Text1.Text) Then x = Val(Text1.Text) If x 100 Then Text1.Text = Text1.SetFocus Label1.Caption = 數(shù)字超界,重輸入! Else Label1.Caption = 數(shù)字輸入
12、正確! End If Else Text1.Text = Text1.SetFocus Label1.Caption = 不是輸入的數(shù)字! End If End If End Sub,圖 4.7 例4.7運行結(jié)果,第四章 Visual Basic語言程序結(jié)構(gòu),4.2 選擇結(jié)構(gòu)程序設(shè)計 4.2.4 條件函數(shù) VB提供的條件函數(shù):IIF函數(shù)和Choose函數(shù),用于簡單的判斷場合,IIF函數(shù)可代替IF語句,Choose函數(shù)可代替select case語句。 1)IIF函數(shù) 語法格式:IIF(,,) 例如:x=-2: y= IIF (x=0,x,-x) y是x的絕對值。,第四章 V
13、isual Basic語言程序結(jié)構(gòu),4.2 選擇結(jié)構(gòu)程序設(shè)計 4.2.4 條件函數(shù) 2)Choose函數(shù) 語法格式: Choose(,,.,) 功能:根據(jù)的值來確定返回值列表中某個值。的值為1,返回,如果的值為2,返回,以此類推。 例如: x = Val(InputBox(請輸入1-6之間整數(shù))) Print Choose(x, red, yellow, blue, green, black, white) 用數(shù)字表示顏色。,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.1 Do loop循環(huán) 1)形式1:(當型循環(huán)) Do While|U
14、ntil 語句塊 Exit Do 語句塊 Loop 2)形式2:(直到循環(huán)) Do 語句塊 Exit Do 語句塊 Loop While|Until ,,,例4.8 用輾轉(zhuǎn)相除法求兩個自然數(shù)的最大公約數(shù)(gcd)和最小公倍數(shù)(lcm)。 Private Sub Form_Click() Dim n%, m%, nm%, r% m = Val(InputBox(m=)) n = Val(InputBox(n=)) nm = n * m If m 0) m = n n = r r = m Mod n Loop Print 最大公約數(shù)=,
15、n Print 最小公倍數(shù)=, nm / n End Sub,,用Do UntilLoop 循環(huán)來實現(xiàn)例4.8,程序代碼如下: Private Sub Form_Click() Dim n%, m%, nm%, r% m = Val(InputBox(m=)) n = Val(InputBox(n=)) nm = n * m If m < n Then t = m: m = n: n = t r = m Mod n Do Until (r = 0) m = n n = r r = m Mod n Loop Print 最大公約數(shù)=, n Print 最小
16、公倍數(shù)=, nm / n End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.2 FORNEXT循環(huán)語句 For 循環(huán)變量初值 to 終值 Step 步長 語句塊 Exit For Next 循環(huán)變量 說明: 語句塊叫循環(huán)體。步長0時,初值終值;步長=0時,死循環(huán),循環(huán)次數(shù)計算公式為: Exit for :退出循環(huán),執(zhí)行next后的下一條語句,,,例4.9 編程計算:S=1+2+3++100 Private Sub Form_Click() Dim S%, I% S = 0 累加前變量S為0 For I = 1 To 100 S = S + I
17、 Next I Print S=; Format(S, 0000) End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.3 WhileWend循環(huán) 使用格式如下: While Wend 說明:該語句的功能與Do While Loop實現(xiàn)的循環(huán)完全相同。,,例4.11 從鍵盤輸入一些字符數(shù)據(jù),對輸入的字符數(shù)據(jù)進行計數(shù)。當輸入的字符為“#”,停止計數(shù)并輸出結(jié)果。 分析:因為輸入次數(shù)不定,故不使用for 循環(huán)。 代碼如下: Private Sub Form_click() Dim c As String, n As Integer n = 0 c =
18、 InputBox( 輸入字符:) While Not (c = #) n = n + 1 c = InputBox( 輸入字符:) Wend Print 字符數(shù)是:; n; 個 End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.4 For EachNext循環(huán) 語法格式: For Each 成員 In 數(shù)組 語句塊 Exit For Next 成員 具體使用將在“數(shù)組”章節(jié)講解,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.5循環(huán)嵌套多重循環(huán)結(jié)構(gòu) 如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或
19、循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。,,例4.12 打印九九乘法表。 程序代碼如下: Private Sub Form_Click() Dim i%, j%, jj$ For i = 1 To 9 For j = 1 To 9 jj = i Next j Picture1.Print Next i End Sub,,例4.13 使用循環(huán)語句在窗體上輸出有*組成的簡單圖形 Private Sub Form_Click() Dim n As Integer, i%, j% Cls 清屏 n = Val(Text1.Text) 輸入組成圖
20、形的行數(shù) For i = 1 To n Print Tab(20); For j = 1 To i Print *; Next j Print Next i End Sub,圖4.14 例4.13運行結(jié)果,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.6循環(huán)的退出 語句格式: Exit For 強制退出For Next循環(huán) Exit Do 強制退出Do Loop循環(huán) 例4.15 用ForNext循環(huán)結(jié)構(gòu)計算1100之和,當和大于等于2000時終止循環(huán),并輸出實際循環(huán)的次數(shù)。,,Private Sub Command1_Click() Dim s
21、%, i% s = 0 累加前變量S為0 For i = 1 To 100 s = s + i If s = 2000 Then Exit For Next i Label2.Caption = s Label4.Caption = i End Sub,圖4.16 例4.15運行結(jié)果,第四章 Visual Basic語言程序結(jié)構(gòu),4.3循環(huán)結(jié)構(gòu)程序設(shè)計 4.3.7幾種循環(huán)語句比較,第四章 Visual Basic語言程序結(jié)構(gòu),4.4 常用算法舉例 4.4.1 找最大值、最小值 例4.17 隨機產(chǎn)生10個100-200之間整數(shù),求最大值。程序運行結(jié)果如圖4.17所示。 分析:先產(chǎn)
22、生一個隨機數(shù)假設(shè)這一個數(shù)是最大數(shù)(變量取名max),然后再產(chǎn)生一個隨機數(shù),與max比較,大者存入max,反復(fù)(循環(huán))操作產(chǎn)生隨機數(shù)、比較,這樣比較完每個數(shù)后,max中就放的是最大數(shù)了。,,Private Sub Form_Click() Dim I As Integer, x As Integer, max As Integer Randomize 初始化隨機數(shù)的種子數(shù) x = Int(Rnd * 100 + 100) max = x For I = 2 To 10 Print x; x = Int(Rnd * 100 + 100) If x max Then max =
23、 x Next I Print Print max=; max End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.4 常用算法舉例 4.4.2 素數(shù)問題 例4.18 求200以內(nèi)的素數(shù)。 分析:判定某個數(shù)是否素數(shù),然后是對于找某范圍內(nèi)的數(shù)據(jù)的判定,用2重循環(huán)來實現(xiàn):內(nèi)循環(huán)是判定某數(shù)是否素數(shù),外循環(huán)一次列舉該范圍內(nèi)的每個數(shù)。判定素數(shù)方法是:利用素數(shù)定義,從2 到 n-1 之間整數(shù)一次去除n,如果都不能整除,n是素數(shù),反之,有一個除盡,n 就不是素數(shù)。,,Private Sub Form_Click() Dim i%, j%, n% Form1.Caption = 求200以
24、內(nèi)的素數(shù) Print 2, 2是特例輸出 n = 1 記素數(shù)的個數(shù) For i = 3 To 200 Step 2 For j = 2 To i - 1 If i Mod j = 0 Then Exit For End If Next j If j = i Then 這個條件表示i一次也沒被除盡,是素數(shù) Print i, n = n + 1 If n Mod 5 = 0 Then Print End If Next i End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.4 常用算法舉例 4.4.3 窮舉法 窮舉方法的實現(xiàn)主要依賴于以下兩個基本要點: 搜尋
25、可能值的范圍如何確定。 被搜尋可能值的判定方法。,,例4.19 “百雞百錢”問題?!半u翁一,值錢五,雞母一,值錢三,雞雛三,值錢一;百錢買百雞,問雞翁、雞母、雞雛各幾何?”編寫程序,給出結(jié)果。 分析:設(shè)x、y、z分別表示雞翁、雞母、雞雛的數(shù)目,根據(jù)題意,100錢最多買雞翁20只、買雞母33只,雞雛數(shù)為100 -雞翁數(shù) -雞母數(shù),搜尋值得判定式為:5 * x + 3 * y + (z / 3) = 100。,,程序代碼如下: Private Sub form_Click() Dim x, y, z As Integer For x = 1 To 20 For y = 1 To 33 z = 10
26、0 - x - y If 5 * x + 3 * y + (z / 3) = 100 Then Print 公雞,母雞,小雞的數(shù)目分別為: Print x, y, z End If Next y Next x End Sub,第四章 Visual Basic語言程序結(jié)構(gòu),4.4 常用算法舉例 4.4.4 迭代法 一個不斷地由變量的舊值按照一定的規(guī)律推出變量的新值的過程,迭代亦稱為遞推。 迭代一般與三個因素有關(guān),它們是:初始值,迭代公式,迭代結(jié)束條件(迭代次數(shù))。 例4.21 求菲波拉契(Fibonacci)數(shù)列。已知一對小兔出生一個月后變成一對成兔,兩個月后這對成兔就會生出一對小兔,三個
27、月后這對成兔將生出第二對小兔,而第一對小兔又長大變成一對成兔,即一月成熟,二月生育,如此類推。請編程求解一對小兔經(jīng)n月后將繁衍成多少對兔子?,,分析:設(shè)f1、f2和f3表示相鄰的3個裴波那契數(shù)據(jù)項,根據(jù)題意有f1、f2的初始值為1,即迭代的初始條件為:f1=f2=1;迭代的公式為:f3=f1+f2。 程序代碼如下: Private Sub Form_Click() Dim f1, f2, f3, i, n As Integer f1 = 1: f2 = 1 n = Text1.Text For i = 3 To n f3 = f1 + f2 f1 = f2 f2 = f3圖4.22 例4.22運行結(jié)果 Next i Print Print Tab(5); 經(jīng)過 f3 a Format(x, ##.###) End Sub,,本章結(jié)束,謝 謝 ??!,
- 溫馨提示:
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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六級上冊科學(xué)ppt課件-誰選擇了它們-教科版
- 護理核心制度培訓(xùn)一_圖文課件
- 部編《池子與河流》課件
- SWOT分析法(非常全面)課件
- 主題班會我的成長目標課件
- 城市交通擁堵及治理總結(jié)課件
- 輸血相關(guān)性急性肺損傷課件
- 議論文的謀篇布局與論點的提出ppt課件
- 六級上冊科學(xué)ppt課件-地球的近鄰——月球-冀人版
- 疾病預(yù)防、冬季保暖-課件
- 中考英語語法復(fù)習(xí)之狀語從句ppt課件集4
- 《百分數(shù)的意義和讀寫》參考ppt課件
- 主題班會堅持就是勝利課件
- 第二章--用人單位對大學(xué)生的要求概況ppt課件
- 教科版六年級科學(xué)上冊第三單元檢測卷(含答案)課件