《《總結(jié)程序結(jié)構(gòu)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《總結(jié)程序結(jié)構(gòu)》PPT課件.ppt(25頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、VB 程序設(shè)計(jì),程序控制結(jié)構(gòu),程序設(shè)計(jì)方法: 1、認(rèn)真閱讀題目,建立窗體 (注:窗體不一樣,編程方式也不一樣) 2、分析處理數(shù)據(jù)及操作先后關(guān)系 3、轉(zhuǎn)化為結(jié)構(gòu)(流程圖或N-S圖) 4、程序設(shè)計(jì) 5、上機(jī)檢查(調(diào)試) 6、總結(jié)、改進(jìn) 7、推廣應(yīng)用,注: 1、掌握題目的分類(lèi),采用相應(yīng)的程序結(jié)構(gòu)和設(shè)計(jì)方法。 2、同一個(gè)題目,完善程序的邏輯、算法、優(yōu)化結(jié)構(gòu)。,0: 程序設(shè)計(jì),IF Then Else End if,1: IF選擇塊結(jié)構(gòu),(1)基本格式:,(2)執(zhí)行方式:流程圖,示例:If score = 60 Then Print “祝賀你考試通過(guò)!” Else Print “
2、考試未通過(guò).” End If Print 繼續(xù)努力!,2: 單行條件語(yǔ)句,(1). 基本格式 If Then 語(yǔ)句組A Else 語(yǔ)句組B,(2). 執(zhí)行方式:流程圖,示例:If score = 60 Then Print “通過(guò)!” Else Print “未通過(guò).” Print 繼續(xù)努力!,注:此語(yǔ)句沒(méi)有End if,3: 比較,示例:從鍵盤(pán)上輸入兩個(gè)整數(shù),并按從大到小輸出。,If a < b Then t = a: a = b: b = t,4: 多分支選擇結(jié)構(gòu) Select,格式: Select Case Case Case Case Else En
3、d Select,示例: a=InputBox(“請(qǐng)輸入一個(gè)字”) Select Case a Case is=“?!? Print “是句號(hào)” Case “,” Print “是逗號(hào)” Case a To z Print “是小寫(xiě)字母 Case “A”,”B”,”C” to “Z” Print “是大寫(xiě)字母 Case is”0” Print “可能是數(shù)字字符 End Select,Case is=“0” and is<=“9” (不能用not 、and 、 or),5: 條件結(jié)構(gòu)示例1,計(jì)算任意三角形的面積S,Private Sub Command1_Click()
4、 方法1 a = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)a)) b = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)b)) c = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)c)) If a + b c And a + c b And b + c a Then k = (a + b + c) / 2 s = Sqr(k * (k - a) * (k - b) * (k - c)) Print s Else MsgBox (輸入的邊長(zhǎng)a、b、c不能組成三角形) End If End Sub,Private Sub Command1_Click() 方法2 a =
5、Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)a)) b = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)b)) c = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)c)) 注:輸入的邊長(zhǎng)a、b、c必須組成三角形,否則重新輸入,直到成功為至 Do While (a + b < c Or a + c < b Or b + c < a) MsgBox (輸入的邊長(zhǎng)a、b、c不能組成三角形,請(qǐng)重新輸入) a = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)a)) b = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)b)) c = Val(InputBox(請(qǐng)輸入三角形邊長(zhǎng)c)) Loo
6、p 注:循環(huán)這種方法不能改為文本框輸入,為什么? k = (a + b + c) / 2 s = Sqr(k * (k - a) * (k - b) * (k - c)) Print s End Sub,計(jì)算任意三角形的面積S,Private Sub Command1_Click() 方法3 a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If a + b c And a + c b And b + c a Then k = (a + b + c) / 2 s = Sqr(k * (k - a) *
7、(k - b) * (k - c)) Text4.Text = s Else MsgBox (輸入的邊長(zhǎng)a、b、c不能組成三角形) End If End Sub,計(jì)算任意三角形的面積S,假設(shè)廣州市地鐵1號(hào)線全長(zhǎng)共有12站臺(tái),搭乘站數(shù)與車(chē)票價(jià)格的對(duì)應(yīng) 關(guān)系如下表:,提示: 乘客輸入當(dāng)前站號(hào)及目的地站號(hào), 計(jì)算機(jī)報(bào)告(加收1元附加費(fèi))顯示票價(jià)money(元),若輸入的站超越(112),提示“ERROR!”。,6: 條件結(jié)構(gòu)示例2,Private sub Command1_click() Dim a%, b%, c% a = Val(InputBox(輸入當(dāng)前站號(hào) =)) b =
8、Val(InputBox(輸入目的地站號(hào)=)) If ((a = 1 And b = 1 And a <= 12)) Then n = Abs(b - a) If (n = 1 Or n = 2) Then c = 1 If (n = 3 Or n = 4) Then c = 2 If (n = 5 Or n = 6) Then c = 3 If (n = 7 Or n = 8) Then c = 4 If (n = 9 Or n = 10) Then c = 5 If (n = 11 Or n = 12) Then c = 6 Print 票價(jià)=“;c+1 Else Print 站號(hào)超界
9、,ERROR! End If End sub,Select case n case 1,2 :c=1 case 3,4 :c=2 case 5,6 :c=3 case 7,8 :c=4 case 9,10 :c=5 case 11,12 :c=6 End select,c=int((n+1)/2),當(dāng)前站是陳家祠站 站號(hào)6 Private Sub Command10_Click() 票價(jià) a = 6 If Text1.Text = 火車(chē)東站 Then b = 1 If Text1.Text = 體育西路 Then b = 2 If Text1.Text = 天河
10、 Then b = 3 If Text1.Text = 中山東路 Then b = 4 n = a - d c = Int((n + 1) / 2) Text2.Text = c + 1 End Sub,Sub Command1_Click() 火車(chē)東站 Text1.Text = 火車(chē)東站 End Sub Sub Command4_Click() 中山東路 Text1.Text = 中山東路 End Sub ,7: 循環(huán)塊結(jié)構(gòu)格式,1:當(dāng)型循環(huán)格式 While 循環(huán)條件 語(yǔ)句組 Wend,2: For格式(計(jì)數(shù)循環(huán)) For = To Step Exit For Nex
11、t ,3:Do循環(huán) 格式,格式一: Do While Exit Do Loop,格式二: Do Until Exit Do Loop,格式三: Do Exit Do Loop While ,格式四: Do Exit Do Loop Until,8: 循環(huán)要點(diǎn),Private Sub Command1_Click() N = Val(Text1.Text) Sum = 0 i=1 While i<=100 Sum=Sum+i i=i+1 Wend Text2.Text = Sum End Sub,9: 循環(huán)出口,*判斷一自然數(shù)其是否為素?cái)?shù)(遍歷法)。 Clear
12、a=Val(inputbox(“請(qǐng)輸入一自然數(shù):”)) For i=2 to a-1 iF a mod i=0then Exit For Endif Next iF ia-1 then Print a,”是素?cái)?shù)?!?Endif,,10: 循環(huán)結(jié)構(gòu)示例1(項(xiàng)操作),同一類(lèi)題材,采用相同的程序結(jié)構(gòu),,,思考題: (1) s=2+4+6+8++10 (2) s=1*2*3*4*5*10 (3) s=1!+2!+3!+4!+5! (4) s=20+21+22+23++263 (5) (6) 前20項(xiàng)之和,示例:S=1+2+3++10 Sub Command1_click(
13、 ) S = 0 For n=1 to 10 step 1 K = n S= S + K Next Print s End sub,Sub Command1_click( ) 4 S = 0 For n=0 to 63 step 1 K = 2n S= S + K Next Print s End sub,Sub Command1_click( ) 3 S = 0 For n=1 to 5 step 1 k=1 For i=1 to n K = k * i Next S= S + K Next Print s End sub,,10
14、: 循環(huán)結(jié)構(gòu)示例2(行列輸出),打印九九乘法表(兩重循環(huán)). For i = 1 To 9 行 For j = 1 To 9 列 一行的內(nèi)容 Print i Next j Print 一行內(nèi)容完后回車(chē) Next i,,思考:打印下三角A或上三角B程序如何改動(dòng)?,A,B,For i = 1 To 9 行 For j = 1 To 9 列 Print i Next j Print Next i,********** ********** ********** ********** ********** ********** ********** *
15、********* ********** ********** 圖1,For i = 1 To 9 行 For j = 1 To 9 列 Print “*” ; Next j Print Next i,* ** *** **** ***** ****** ******* ******** ********* ********** 圖2,For i = 1 To 9 行 For j = 1 To i 列 Print “*” ; Next j Print Next i,* ** *** **** ***** ****** ******* ******** ***
16、****** ********** 圖2,* *** ***** ******* ********* *********** ************* *************** ***************** ******************* 圖3,* *** ***** ******* ********* *********** ************* *************** 圖4,For i = 1 To 9 行 For j = 1 To i 列 Print “*” ; Next j Print Next i,For i = 1 To 9
17、 For j = 1 To 2*i-1 Print “*” ; Next j Print Next i,,For i = 1 To 9 For k =1 to 20-i Print space(1); Next k For j = 1 To 2*i-1 Print “*” ; Next j Print Next i,,11: 循環(huán)結(jié)構(gòu)示例3(遍歷法),從鍵盤(pán)上輸入一個(gè)正整數(shù),輸出它所有的約數(shù)。 Private Sub Command4_Click() N = Val(InputBox(請(qǐng)輸入一個(gè)正整數(shù))) For i = 1 To N If N Mo
18、d i = 0 Then Print i End If Next End Sub,從鍵盤(pán)上輸入兩個(gè)正整數(shù),輸出它的最大公約數(shù)和最小公倍數(shù)。 Private Sub Command5_Click() 方法1 a = Val(InputBox(請(qǐng)輸入一個(gè)正整數(shù)a)) b = Val(InputBox(請(qǐng)輸入一個(gè)正整數(shù)b)) If a < b Then t = a: a = b: b = t End If For i = 1 To b If a Mod i = 0 And b Mod i = 0 Then Max = i End If Next Prin
19、t 最大公約數(shù):, Max Print 最小公倍數(shù):, a * b / Max End Sub,1:求100200之間的不能被3整除的數(shù)的和 2:從鍵盤(pán)上輸入一個(gè)正整數(shù),輸出它所有的約數(shù)。 3:從鍵盤(pán)上輸入兩個(gè)正整數(shù),輸出它的最大公約數(shù)和最小公倍數(shù)。 4:從鍵盤(pán)上輸入一個(gè)正整數(shù),判斷它是否為素?cái)?shù)。 5:判斷并輸出1100中的素?cái)?shù)。 6:判斷并輸出1001000中的水仙花數(shù)。,13: 循環(huán)結(jié)構(gòu)示例4(最大最小值),隨機(jī)產(chǎn)生10個(gè)100200之間的數(shù),求最大值、最小值。 Private Sub Command1_Click() Max = 100 : Min=200 有固定范圍 For i
20、= 1 To 10 x = Int(Rnd * 101 + 100) Print x; If x Max Then Max = x If x < Min Then Min = x Next i Print Print “最大值=”; Max, “最小值=; Min End Sub,從鍵盤(pán)上輸入10個(gè)數(shù),求它們中的最大、最小值、和。 Private Sub Command3_Click() N = Val(InputBox(請(qǐng)輸入一個(gè)數(shù))) Max = N 沒(méi)有固定范圍 Min = N Sum = N For i = 1 To 9 N = Val(InputBox(請(qǐng)輸入一個(gè)數(shù))) Sum = Sum + N If N Max Then Max = N If N < Min Then Min = N Next Print Max, Min, Sum End Sub,14: 循環(huán)結(jié)構(gòu)示例5(其它),例1 猴子吃桃子。小猴在某天摘桃若干個(gè),當(dāng)天吃掉一半多一個(gè);第二天吃了剩下的桃子的一半多一個(gè);以后每天都吃尚存桃子的一半多一個(gè),到第7天要吃時(shí)只剩下一個(gè),問(wèn)小猴共摘下了多少個(gè)桃子?,例2用輾轉(zhuǎn)相除法求兩自然數(shù) m,n 的最大公約數(shù)和最小公倍數(shù)。,例3打印輸出斐波那契(Fibonacci)數(shù)列的前20項(xiàng),