




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機二級vb例題編寫的窗體單擊事件過程代碼如下:編寫的窗體單擊事件過程代碼如下: Private Sub Form_Click() Dim x As Integer, a As Integer Dim b As Integer, c As Integer x = 36 a = Int(x / 10) 求十位數求十位數 b = x Mod 10 求個位數求個位數 c = b * 10 + a 生成新的數生成新的數 Print 處理后的數處理后的數: ; c End Sub運行程序后單擊窗體,輸出結果是:運行程序后單擊窗體,輸出結果是: 處理后的數:處理后的數:63 例例3.1 給定一個兩位正整
2、數給定一個兩位正整數(如如36),交換個位數和十位,交換個位數和十位數的位置,把處理后的數顯示在窗體上數的位置,把處理后的數顯示在窗體上Private Sub Form_Click() Dim x As Integer, a As Integer Dim b As Integer, c As Integer x = 36 a = x 10 求十位數求十位數 b = x - 10 * a 求個位數求個位數 c = b * 10 + a Print 處理后的數處理后的數: ; cEnd Sub 把上述程序改為以下形式,效果是否一樣?把上述程序改為以下形式,效果是否一樣?想一想想一想 通常,解決某個
3、問題的程序方法有多種,通常,解決某個問題的程序方法有多種,我們應該從中選擇較優的一種方法。我們應該從中選擇較優的一種方法。編寫的窗體單擊事件過程代碼如下:編寫的窗體單擊事件過程代碼如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Randomize 初始化隨機數生成器初始化隨機數生成器 a = Int(90 * Rnd + 10) 產生產生10,99區間內的隨機整區間內的隨機整數數 b = Int(90 * Rnd + 10) c = a + b 求兩數之和求兩數之和 Print 產生的兩個隨機數
4、產生的兩個隨機數: ; a, b Print 和數和數: ; c End Sub運行程序后單擊窗體,輸出結果是:運行程序后單擊窗體,輸出結果是: 產生的兩個隨機數:產生的兩個隨機數:56 71 和數:和數:127例例3.2 通過隨機函數產生通過隨機函數產生2個兩位正整數,求這個兩位正整數,求這2個數個數 之和并顯示出來之和并顯示出來 再次運行程序,單擊窗體后再次運行程序,單擊窗體后輸出另一組結果是:輸出另一組結果是: 產生的兩個隨機數:產生的兩個隨機數:18 37 和數:和數:55 先從字符串先從字符串a中找出某個指定字符中找出某個指定字符(本例為空格本例為空格),再以此字,再以此字符為界拆分
5、成兩個字符串。編寫的窗體單擊過程代碼如下:符為界拆分成兩個字符串。編寫的窗體單擊過程代碼如下:例題例題2 Private Sub Form_Click() Dim a As String, b As String, c As String, n As Integer a = VisualBasic 表示空格表示空格 n = InStr(a, ) 查找空格位置查找空格位置 b = Left(a, n - 1) 取左邊部分取左邊部分 c = Mid(a, n + 1) 取右邊部分取右邊部分 Print b 顯示左邊部分顯示左邊部分 Print c 顯示右邊部分顯示右邊部分 End Sub 程序運行
6、后單擊窗體,輸出結果是:程序運行后單擊窗體,輸出結果是: Visual Basic例例3.33.3 使用字符串函數示例使用字符串函數示例 Private Sub Form_Click() Dim a As String, b As String, c As String, n As Integer a = VisualBasic 表示空格表示空格 n = InStr(a, ) 查找空格位置查找空格位置 b = Left(a, n - 1) 取左邊部分取左邊部分 c = Right( _, _ ) 取右邊部分取右邊部分 Print b 顯示左邊部分顯示左邊部分 Print c 顯示右邊部分顯示右
7、邊部分 End Sub 程序運行后單擊窗體,輸出結果是:程序運行后單擊窗體,輸出結果是: Visual Basic 若用若用 RightRight函數來代替函數來代替 MidMid函數函數, 應如何改動?應如何改動?想一想想一想答案:答案:a, Len(a)-n Private Sub Form_Click()Private Sub Form_Click() x = #1/1/2011# x = #1/1/2011# a = x - Date a = x - Date b = Weekday(x) b = Weekday(x) c = Year(Date) c = Year(Date) d =
8、 Month(Date) d = Month(Date) e = Hour(Time) e = Hour(Time) f = Minute(Time) f = Minute(Time) Print Print 現在距離現在距離20112011年元旦還有:年元旦還有: ; a; ; a; 天天 Print Print 20112011年元旦是:星期年元旦是:星期; b-1; b-1 Print Print 本月份是:本月份是:; c; ; c; 年年; d; ; d; 月月 Print Print 現在是:現在是:; e; ; e; 時時; f; ; f; 分分 End SubEnd Sub運行
9、程序后單擊窗體,輸出結果如下:運行程序后單擊窗體,輸出結果如下: 現在距離現在距離20112011年元旦還有:年元旦還有:304304天天 20112011年元旦是:星期年元旦是:星期6 6 本月份是:本月份是:20102010年年3 3月月 現在是:現在是:1010時時2727分分例例3.43.4 使用日期使用日期/ /時間函數示例時間函數示例 (留給學生分析)(留給學生分析) 將輸入的字符串反向顯示。界面包含兩個標簽,一個按將輸入的字符串反向顯示。界面包含兩個標簽,一個按鈕和兩個文本框鈕和兩個文本框(text1用于輸入,用于輸入,text2用于顯示反向后的字符用于顯示反向后的字符串),運行
10、結果如圖串),運行結果如圖3.2所示。所示。 從文本框從文本框text1輸入字符串,單擊輸入字符串,單擊command1按鈕,在文按鈕,在文本框顯示反向字符串。本框顯示反向字符串。3.73.7應用示例應用示例 程序代碼如下:程序代碼如下: Private Sub Command1_Click() Dim str, strRe As String Dim i As Integer str = Text1.Text For i = 1 To Len(str) strRe = Mid(str, i, 1) & strRe Next i Text2.Text = strReEnd Sub【程序
11、分析程序分析】 FOR NEXT為循環語句為循環語句(讀者可見第四章讀者可見第四章).本題中的循環次數由字符串的長度本題中的循環次數由字符串的長度Len(str)決定的決定的. 用用Mid函數每次從字符串中第函數每次從字符串中第i個位置取一個字符。個位置取一個字符。 注意語句注意語句strRe = Mid(str, i, 1) & strRe的用法,思考一下,若改為:的用法,思考一下,若改為:strRe = strRe & Mid(str, i, 1),結果如何?,結果如何? 判斷條件:判斷條件: 年號年號(y)能被能被4整除,但不能被整除,但不能被100整除;或者能被整除;或
12、者能被400整除,用邏輯表達式來表示這個條件,寫成:整除,用邏輯表達式來表示這個條件,寫成: (y Mod 4=0 And y Mod 1000) Or (y Mod 400=0) 也可寫成:也可寫成: (Int(y/4)=y/4 And Int(y/100)y/100) Or Int(y/400)=y/400) 例例4.1 4.1 判斷某一年是否閏年判斷某一年是否閏年 (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:功能要求:用戶在用戶在“a=”文本框文本框(Text1)、“b=”文本框文本框(Text2)和和“c=”
13、文本框文本框(Text3)中輸入數據,單擊中輸入數據,單擊“判斷判斷”按鈕后,則在按鈕后,則在“最大數最大數”文本框文本框(Text4)中輸出結果中輸出結果 例例4.2 輸入三個數輸入三個數a、b、c,求出其中最大數,求出其中最大數 Private Sub Command1_Click() Dim a As Integer, b As Integer Dim c As Integer, m As Integer a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If a b Then m = a m用來存放較大值用來存放較大
14、值 Else m = b End If If c m Then m = c Text4.Text = m End Sub 程序代碼程序代碼 (1)建立應用程序的用戶界面和設置對象屬性建立應用程序的用戶界面和設置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:用戶從上面三個文本框功能要求:用戶從上面三個文本框(Text1、Text2、Text3)中輸入數據,單擊中輸入數據,單擊“排序排序”按鈕按鈕(Command1),則在,則在第第4個文本框個文本框(Text4)中顯示結果中顯示結果 例例4.3 輸入三個數,將它們從大到小排序輸入三個數,將它們從大到小排序 Private Sub Comma
15、nd1_Click() a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) If a =b t = a: a = b: b = t End If If a =c t = a: a = c: c = t End If If b =c t = b: b = c: c = t End If Text4.Text = a & , & b & , & c End Sub 程序代碼程序代碼起泡法起泡法窮舉法窮舉法 Private Sub Command1_Click()Dim a!, b!, c!Clsa
16、= InputBox(a=)b = InputBox(b=)c = InputBox(c=)If a b And b c Then Print a, b, cIf a b And b c Then Print a, c, bIf a b And b = c And a = c Then Print c, a, bIf a = b And b = c Then Print c, b, aIf a c And a c Then Print b, a, cIf a c And a = c Then Print b, c, aEnd Sub 程序代碼程序代碼 實現一些簡單的條件判斷分支結構實現一些簡單
17、的條件判斷分支結構 格式:格式: IIf(條件,條件為真時的值,條件為假時的值條件,條件為真時的值,條件為假時的值) 功能:對條件進行測試,若條件成立功能:對條件進行測試,若條件成立(為真值為真值),則,則取第一個值取第一個值(即即“條件為真時的值條件為真時的值”),否則取第二個,否則取第二個值值(即即“條件為假時的值條件為假時的值”)。 例如,將例如,將a、b中的小數,放入中的小數,放入Min變量中:變量中: Min=IIf(aMin=IIf(ab,a,b)b,a,b)4.2.3 IIf函數函數 例如:例如:0時至時至12時,顯示時,顯示“早上好早上好” 利用窗體裝載利用窗體裝載(Load)
18、事件,采用事件,采用Print直接在窗體上輸出結果直接在窗體上輸出結果 Private Sub Form_Load() Dim h As Integer Show 使使print輸出在窗體上的內容可輸出在窗體上的內容可見見 h = Hour(Time) 取系統的時間取系統的時間 FontSize = 30 : ForeColor = RGB(255, 0, 0) BackColor = RGB(255, 255, 0) If h 12 Then Print 早上好!早上好! Else If h 18 Then Print 下午好!下午好! Else Print 晚上好!晚上好! End If
19、End If End Sub例例4.4 根據不同的時間段發出問候語根據不同的時間段發出問候語 輸入學生成績輸入學生成績(百分制百分制),判斷該成績的等級,判斷該成績的等級(優、良、優、良、中、及格、不及格中、及格、不及格) (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:功能要求:用戶從用戶從“成績成績”文本框文本框(Text1)中輸入學生成中輸入學生成績,單擊績,單擊“執行執行”按鈕按鈕(command1)后,經判斷得到等級并后,經判斷得到等級并顯示在標簽顯示在標簽Label2上。上。 例例4.5 4.5 判斷成績的等
20、級判斷成績的等級 Private Sub Command1_Click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = 成績等級為:成績等級為: If score 0 Then Label2.Caption = 成績出錯成績出錯 ElseIf score 60 Then Label2.Caption = temp + 不及格不及格 ElseIf score = 79 Then Label2.Caption = temp + 及格及格 ElseIf score = 100 Then Label2.Capt
21、ion = temp + 優良優良 Else Label2.Caption = 成績出錯成績出錯 End IfEnd Sub 實現例實現例4.5所完成的功能所完成的功能 , 程序代碼如下:程序代碼如下: Private Sub command1_click() Dim score As Integer, temp As String score = Val(Text1.Text) temp = 成績等級為:成績等級為: Select Case score Case 0 To 59 Label2.Caption = temp + 不及格不及格 Case 60 To 69 Label2.Capti
22、on = temp + 及格及格 Case 70 To 79 Label2.Caption = temp + 中中 Case 80 To 89 Label2.Caption = temp + 良良 Case 90 To 100 Label2.Caption = temp + 優優 Case Else Label2.Caption = 成績出錯成績出錯 End Select End Sub 例例4.6 用用Select CaseSelect Case語句來實現多分支選擇功能語句來實現多分支選擇功能 先在窗體上顯示以下考題:先在窗體上顯示以下考題: 雞兔同籠,已知雞和兔總頭數為雞兔同籠,已知雞和兔
23、總頭數為h=23,總腳數為,總腳數為f=56,求雞兔各有多少只,求雞兔各有多少只? 再提供輸入框由學生回答問題,然后采用輸出框顯示對再提供輸入框由學生回答問題,然后采用輸出框顯示對答案的評判意見。答案的評判意見。 設計步驟如下:設計步驟如下: (1)在窗體上設置一個命令按鈕在窗體上設置一個命令按鈕Command1 (2)采用窗體的裝載事件采用窗體的裝載事件Form_Load,使考題內容直接顯示使考題內容直接顯示在窗體上。在窗體上。 例例4.74.7 求雞數和兔數求雞數和兔數 當用戶單擊當用戶單擊“答題答題”按鈕時,程序提供輸入對話框,按鈕時,程序提供輸入對話框,由用戶輸入答案,再通過輸出框顯示
24、評判意見。采用的由用戶輸入答案,再通過輸出框顯示評判意見。采用的程序代碼如下:程序代碼如下: Private Sub Form_Load() Show Print FontSize = 18 Print Spc(9); 考一考你考一考你 FontSize = 13 Print Spc(5); 雞兔同籠,已知雞和兔總頭數為雞兔同籠,已知雞和兔總頭數為23, Print Spc(3); 總腳數為總腳數為56,求雞兔各有多少?,求雞兔各有多少? End Sub Private Sub Command1_Click() h = 23 : f = 56 總頭數及總總頭數及總腳數腳數 j1 = (4 *
25、h - f) / 2 求出的雞數求出的雞數 t1 = (f - 2 * h) / 2 求出的兔數求出的兔數 j2 = Val(InputBox(雞的只數是多少?雞的只數是多少?, 請回答請回答) t2 = Val(InputBox(兔的只數是多少?兔的只數是多少?, 請回答請回答) Select Case True 選擇真值選擇真值 Case j1 = j2 And t1 = t2 MsgBox (回答完全正確回答完全正確!) Case j1 = j2 MsgBox (雞數回答正確,但兔數不對雞數回答正確,但兔數不對!) Case t1 = t2 MsgBox (兔數回答正確,但雞數不對兔數回
26、答正確,但雞數不對!) Case Else MsgBox (回答錯誤回答錯誤!) End Select End Sub (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對象屬性 一個計時器控件和一個文本框。計時器控件一個計時器控件和一個文本框。計時器控件Timer1的的Interval屬性值設定為屬性值設定為1000(1秒秒)例例4.104.10 建立一個電子時鐘建立一個電子時鐘 (2)編寫程序代碼編寫程序代碼 Private Sub Timer1_Timer() timer事件過程事件過程 Text1.Text = Time Time是時間函數是時間函數 End Sub
27、 利用計時器可以按指定間隔時間對字體進行放大利用計時器可以按指定間隔時間對字體進行放大 (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對象屬性 一個計時器控件和和一個標簽一個計時器控件和和一個標簽 。計時器控件。計時器控件Timer1的計時器采用默認的屬性值的計時器采用默認的屬性值 Enabled屬性值為屬性值為True(真真),Interval屬性值為屬性值為0 例例4.114.11 實現字體的放大實現字體的放大 (2)編寫程序代碼編寫程序代碼 Private Sub Form_Load() Label1.Caption = 放大放大 Label1.Width = F
28、orm1.Width 把標簽的高度和把標簽的高度和寬度寬度 設置為窗體相設置為窗體相同尺寸同尺寸 Label1.Height = Form1.Height Timer1.Interval = 800 End Sub Private Sub Timer1_Timer() If Label1.FontSize 0 Then s = s - 1 Else If m 0 Then m = m - 1 s = 59 End If End If Text1.Text = Format(m, 00) Text2.Text = Format(s, 00) If s = 0 And m = 0 Then Msg
29、Box 計時結束計時結束 Unload Me End IfEnd Sub (1)分析分析:方程的解有以下幾種可能:方程的解有以下幾種可能: 若若a=0,不是二次方程,不是二次方程 若若b2 - 4ac=0,有兩個相等實根,有兩個相等實根 若若b2 - 4ac0,有兩個不等實根,有兩個不等實根 若若b2 - 4ac 0計算復根的虛部計算復根的虛部P = sqr(D) / (2*a)X1 = (b + sqr(D) / (2*a)X2 = (bsqr(D) / (2*a)結束結束 當用戶在當用戶在“a=”文本框文本框(Text1)、“b=”文本框文本框(Text2)和和“c=”文本框文本框(Tex
30、t3)輸入輸入a,b,c的值后,單的值后,單擊擊“計算計算”按鈕,則從按鈕,則從“x1=”文本框文本框(Text4)和和“x2=”文本框文本框(Text5)輸出計算結果。輸出計算結果。 當輸入的當輸入的a,b,c為為1,2,-8時,運行結果如下圖時,運行結果如下圖 功能要求功能要求 Private Sub Command1_Click() Dim a As Single, b As Single, c As Single Dim D As Single, X1 As Single, X2 As Single Dim R As Single, P As Single a = Val(Text1.
31、Text) 取數據取數據a b = Val(Text2.Text) 取數據取數據b c = Val(Text3.Text) 取數據取數據c If a = 0 Then 當當a=0 Text4.Text = 不是二次方程不是二次方程 Text5.Text = 不是二次方程不是二次方程 Else a0 D = b * b - 4 * a * c R = -b / (2 * a) If D = 0 Then D=0 Text4.Text = R Text5.Text = R ElseIf D 0 Then D0 X1 = (-b + Sqr(D) / (2 * a) X2 = (-b - Sqr(D
32、) / (2 * a) Text4.Text = X1 Text5.Text = X2 Else D a(j) Then t = a(i): a(i) = a(j): a(j) = t 交換位交換位置置 End If Next j Next i Print 排序結果:排序結果: For i = 1 To 10 Print a(i); Next i End Sub 改寫中間程序段改寫中間程序段“For i=1 To 9”“Next i”(共共7個程個程序行序行) For i = 1 To 9 k = i k用來記錄每次選擇的最小值的下用來記錄每次選擇的最小值的下標標 For j = i + 1
33、To 10 If a(k) a(j) Then k = j End If Next j t = a(k): a(k) = a(i): a(i) = t 交換位置交換位置 Next i 變量變量k記錄每一次選出的最小值的下標,在本次比較結束記錄每一次選出的最小值的下標,在本次比較結束后,使后,使a(i)與與a(k)一次換位即可一次換位即可排列要求排列要求 小小 大大 示例:示例: a(1) a(2) a(3) a(4) 90 64 65 59 a(1)與與a(2) a(4)比較,選出最小值,直接比較,選出最小值,直接與與a(1)交換,結果:交換,結果: 59 64 65 90 5.1.1 For
34、.Next5.1.1 For.Next循環語句循環語句 按指定次數執行循環體按指定次數執行循環體 例例5.1 在窗體上顯示在窗體上顯示2至至10各偶數的平方數各偶數的平方數 采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Dim k As Integer Show For k = 2 To 10 Step 2 Print k * k Next k End Sub程序運行結果:程序運行結果: 4 16 36 64 100 5.1 循環語句循環語句說明:說明:循環變量循環變量k的初值、終值和步長值分別為的初值、終值
35、和步長值分別為2,10和和2,即從,即從2開始,每次開始,每次加加2,到,到10為止,控制循環為止,控制循環5次。每次循環都將循環體次。每次循環都將循環體(Print k*k)執行一次執行一次 采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Show s = 0 For k = 1 To 8 s = s + k Next k Print s=; s End Sub 程序運行結果如下:程序運行結果如下: s36 語句語句s = s + k (循環體語句循環體語句) 的執行過程的執行過程 例例5.2 求求S = 1
36、 + 2 + 3 + + 8 采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Show t = 1 For c = 1 To 8 t = t * c Next c Print T=; t End Sub 程序運行結果是:程序運行結果是: T40320語句語句t = t * c 也稱乘法器。先將也稱乘法器。先將t置置1(不能置不能置0)。在循環程序中,常用累加器和累乘器來完成各種計算任務在循環程序中,常用累加器和累乘器來完成各種計算任務例例5.3 求求T = 8! = 1238 采用采用Print直接在窗體上輸出
37、結果,程序代碼如下:直接在窗體上輸出結果,程序代碼如下: Private Sub Form_Load() Show Dim pi As Single, c As Integer, s As Integer pi = 0 s = 1 s表示加或減運算表示加或減運算 For c = 1 To 10000 Step 2 pi = pi + s / c s = -s 交替改變加、減號交替改變加、減號 Next c Print =; pi * 4 End Sub 程序運行結果是:程序運行結果是: 3.141397 例例5.4 用用/41 - 1/3 + 1/5 - 1/7 + 級級數求數求的近似值的近似
38、值 (取前取前5000項來進行計算項來進行計算) 下面采用下面采用“窮舉法窮舉法”來解此題。來解此題。 其做法是:從所有可能解中,逐個進行試驗,其做法是:從所有可能解中,逐個進行試驗,若滿足條件,就得到一個解,否則不是。直到條件若滿足條件,就得到一個解,否則不是。直到條件滿足或判別出無解為止。滿足或判別出無解為止。 令母雞為令母雞為x只,小雞為只,小雞為y只,根據題意可知只,根據題意可知 y = 100 x 開始先讓開始先讓x初值為初值為1,以后逐次加,以后逐次加1,求,求x為何值時,為何值時,條件條件3x+y/3=100成立。如果當成立。如果當x達到達到33時還不能使時還不能使條件成立,則可
39、以斷定此題無解條件成立,則可以斷定此題無解 例例5.5 用用100 元買元買100 只雞,母雞只雞,母雞3元元1只,只,小雞小雞1元元3只,問各應買多少只只,問各應買多少只? 采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Dim x As Integer, y As Integer Show For x = 1 To 33 y = 100 - x If 3 * x + y / 3 = 100 Then Print 母雞只數為母雞只數為:; x, Print 小雞只數為小雞只數為:; y End If Next
40、 x End Sub 運行結果:運行結果: 母雞只數為:母雞只數為:25 小雞只數為:小雞只數為:75 采用采用Do While.Loop語句語句 采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Dim n As Integer, s As Long Show n = 1: s = 0 Do While n = 100 s = s + n * n n = n + 1 Loop Print s=; s End Sub例例5.65.6 求求 S S1 12 2 + 2+ 22 2 + + + 100 + 1002
41、2 程序運行結果:程序運行結果: S338350 是否可以交換順序:是否可以交換順序: n = n + 1 s = s + n * n采用采用Print直接在窗體上輸出結果,程序代碼:直接在窗體上輸出結果,程序代碼: Private Sub Form_Load() Show Dim pi As Single, n As Long, s As Integer pi = 0 : n = 1 : s = 1 Do While n =0.00001 pi = pi + s / n s = -s n = n + 2 Loop Print =; pi * 4 End Sub例例5.75.7 用用/4/41
42、 - 1/3 + 1/5 - 1/7 + 1 - 1/3 + 1/5 - 1/7 + 級數級數, ,求求的近似值。當最后一項的絕對值的近似值。當最后一項的絕對值小于小于1010-5-5時,停止計算時,停止計算 程序運行結果:程序運行結果: 3.141575 “輾轉相除法輾轉相除法”算法:算法:求出求出m/n余數余數p,若,若p0,n即為即為最大公約數;若最大公約數;若p非非0,則把原來的分母,則把原來的分母n作為新的分子作為新的分子m,把余數把余數p作為新的分母作為新的分母n繼續求解繼續求解 設計步驟如下:設計步驟如下: (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對
43、象屬性例例5.8 輸入兩個正整數,求它們的最大公約數輸入兩個正整數,求它們的最大公約數 編寫的編寫的“計算計算”按鈕按鈕Click事件過程代碼如下:事件過程代碼如下: Private Sub Command1_Click() Dim m As Integer, n As Integer, p As Integer m = Val(Text1.Text) : n = Val(Text2.Text) If m = 0 Or n = 0 Then MsgBox (數據錯誤數據錯誤!) End End If Do p = m Mod n m = n n = p Loop While p 0 Text3
44、.Text = m End Sub 若輸入的若輸入的m和和n的值為的值為85和和68,則運行結果如上圖,則運行結果如上圖 把每次輸入的數累加。當輸入把每次輸入的數累加。當輸入-1時結束程序的運行時結束程序的運行 (1)創建應用程序的用戶界面和設置對象屬性創建應用程序的用戶界面和設置對象屬性 (2)編寫程序代碼編寫程序代碼 Private Sub Form_Load() Show Sum = 0 Do While True 條件為真,循環無終止進行下去條件為真,循環無終止進行下去 x = Val(InputBox(請輸入要加入的數請輸入要加入的數(-1表示結束表示結束), 輸入數據輸入數據) I
45、f x = -1 Then Exit Do End If Sum = Sum + x Text1.Text = Sum Loop MsgBox (累加運算結束累加運算結束) End Sub 以以-1作為作為“終止循環標志終止循環標志” 例例5.95.9 設計一個設計一個“加法器加法器”程序程序例例5.9.1 有一張厚有一張厚0.5mm、面積足夠大的紙,將它不斷地對折,、面積足夠大的紙,將它不斷地對折,問對折多少次后,其厚度可達到珠穆朗瑪峰的高度問對折多少次后,其厚度可達到珠穆朗瑪峰的高度? N=0 H=0.5 Do while h8848000 N=n+1 H=2*h Loop Print 對
46、折次數為對折次數為:”;n N=0 H=0.5 Do while h8848000 Then Exit do End if Loop Print “對折次數是對折次數是:”;n例例 0.1 求求 s=1! + 2! + s=1! + 2! + + 10! + 10! 的值。的值。S=0S=0For n =1 to 10For n =1 to 10 T=1 T=1 For m=1 to n For m=1 to n T=t T=t* *m m Next m Next m S=s+t S=s+tNext nNext nPrint Print “S= S= “;s;sS=0S=0T
47、=1T=1For n =1 to 10For n =1 to 10 T=t T=t* *n n S=s+t S=s+tNext nNext nPrint “S=“; SPrint “S=“; S 本例可采用本例可采用兩重循環兩重循環來實現。外循環控制輸出來實現。外循環控制輸出7行,內行,內循環控制每行輸出要求的字符數。循環控制每行輸出要求的字符數。 在進入內循環之前,使用在進入內循環之前,使用Print Tab()來對起始輸出位置來對起始輸出位置定位,退出內循環后,使用定位,退出內循環后,使用Print來控制換行。來控制換行。例例5.115.11 編一程序,輸出下列所示的圖形編一程序,輸出下列
48、所示的圖形 采用采用Print直接在窗體上輸出結果,程序代碼如下:直接在窗體上輸出結果,程序代碼如下: Private Sub Form_Load() Show For i = 1 To 7 Print Tab(10 - i); For j = 1 To 2 * i - 1 Print Chr(i + 48); Next j Print Next i End Sub Print Chr(i+48)與與Print i有所不同有所不同 (1)分析分析:設一元硬幣為:設一元硬幣為a枚,二元硬幣為枚,二元硬幣為b枚,五元硬幣枚,五元硬幣為為c枚,可列出方程枚,可列出方程 a+b+c=10 a+2b+5c=25采用兩重循環,外循環變量采用兩重循環,外循環變量a從從010,內循環變量,內循環變量b從從010 (2)創建應用程序的用戶界面創建應用程序的用戶界面 例例5.125.12 取一元、二元、五元的硬幣共十枚,付取一元、二元、五元的硬幣共十枚,付給給2525元錢,有多少種不同的取法元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025設備維修服務合同范本
- 2025長沙市“雙百計劃”申報合同書
- 2024年廈門醫院招聘事業單位專業技術崗位人員真題
- 軸承供銷合同范本
- 2024年嘉興國際商務區投資建設集團有限公司招聘真題
- 2024年安徽玉成汽車職業學校專任教師招聘真題
- 2024年安徽合肥技師學院專任教師招聘真題
- 水壩工程合同范本
- 研學旅行與學校簽訂合同(2025年版)
- 浙江省杭州市2025屆高三下學期二模試題 英語 含解析
- 合肥長鑫存儲在線測評題2024
- 銀發經濟-夕陽紅之家創業計劃書
- 三年級第14課青田石雕-(課件練習)
- 肺結節診治中國專家共識(2024年版)解讀
- 值班崗亭施工方案
- 生命體征觀察與護理-體溫單繪制(護理技術課件)
- DNM-9602酶標分析儀操作規程
- 2024年金華市中考數學試卷
- 以退為進的中國惠民保發展-基于73款停售惠民保產品的分析-【復旦許閑】20240719
- 建筑工地食堂承包協議(2024版)
- 紅綠燈路口施工合同
評論
0/150
提交評論