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