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