版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)二級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) 求十位數(shù)求十位數(shù) b = x Mod 10 求個位數(shù)求個位數(shù) c = b * 10 + a 生成新的數(shù)生成新的數(shù) Print 處理后的數(shù)處理后的數(shù): ; c End Sub運(yùn)行程序后單擊窗體,輸出結(jié)果是:運(yùn)行程序后單擊窗體,輸出結(jié)果是: 處理后的數(shù):處理后的數(shù):63 例例3.1 給定一個兩位正整
2、數(shù)給定一個兩位正整數(shù)(如如36),交換個位數(shù)和十位,交換個位數(shù)和十位數(shù)的位置,把處理后的數(shù)顯示在窗體上數(shù)的位置,把處理后的數(shù)顯示在窗體上Private Sub Form_Click() Dim x As Integer, a As Integer Dim b As Integer, c As Integer x = 36 a = x 10 求十位數(shù)求十位數(shù) b = x - 10 * a 求個位數(shù)求個位數(shù) c = b * 10 + a Print 處理后的數(shù)處理后的數(shù): ; cEnd Sub 把上述程序改為以下形式,效果是否一樣?把上述程序改為以下形式,效果是否一樣?想一想想一想 通常,解決某個
3、問題的程序方法有多種,通常,解決某個問題的程序方法有多種,我們應(yīng)該從中選擇較優(yōu)的一種方法。我們應(yīng)該從中選擇較優(yōu)的一種方法。編寫的窗體單擊事件過程代碼如下:編寫的窗體單擊事件過程代碼如下: Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer Randomize 初始化隨機(jī)數(shù)生成器初始化隨機(jī)數(shù)生成器 a = Int(90 * Rnd + 10) 產(chǎn)生產(chǎn)生10,99區(qū)間內(nèi)的隨機(jī)整區(qū)間內(nèi)的隨機(jī)整數(shù)數(shù) b = Int(90 * Rnd + 10) c = a + b 求兩數(shù)之和求兩數(shù)之和 Print 產(chǎn)生的兩個隨機(jī)數(shù)
4、產(chǎn)生的兩個隨機(jī)數(shù): ; a, b Print 和數(shù)和數(shù): ; c End Sub運(yùn)行程序后單擊窗體,輸出結(jié)果是:運(yùn)行程序后單擊窗體,輸出結(jié)果是: 產(chǎn)生的兩個隨機(jī)數(shù):產(chǎn)生的兩個隨機(jī)數(shù):56 71 和數(shù):和數(shù):127例例3.2 通過隨機(jī)函數(shù)產(chǎn)生通過隨機(jī)函數(shù)產(chǎn)生2個兩位正整數(shù),求這個兩位正整數(shù),求這2個數(shù)個數(shù) 之和并顯示出來之和并顯示出來 再次運(yùn)行程序,單擊窗體后再次運(yùn)行程序,單擊窗體后輸出另一組結(jié)果是:輸出另一組結(jié)果是: 產(chǎn)生的兩個隨機(jī)數(shù):產(chǎn)生的兩個隨機(jī)數(shù):18 37 和數(shù):和數(shù):55 先從字符串先從字符串a(chǎn)中找出某個指定字符中找出某個指定字符(本例為空格本例為空格),再以此字,再以此字符為界拆分
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 程序運(yùn)行
6、后單擊窗體,輸出結(jié)果是:程序運(yùn)行后單擊窗體,輸出結(jié)果是: Visual Basic例例3.33.3 使用字符串函數(shù)示例使用字符串函數(shù)示例 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 程序運(yùn)行后單擊窗體,輸出結(jié)果是:程序運(yùn)行后單擊窗體,輸出結(jié)果是: Visual Basic 若用若用 RightRight函數(shù)來代替函數(shù)來代替 MidMid函數(shù)函數(shù), 應(yīng)如何改動?應(yīng)如何改動?想一想想一想答案:答案: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 現(xiàn)在距離現(xiàn)在距離20112011年元旦還有:年元旦還有: ; a; ; a; 天天 Print Print 20112011年元旦是:星期年元旦是:星期; b-1; b-1 Print Print 本月份是:本月份是:; c; ; c; 年年; d; ; d; 月月 Print Print 現(xiàn)在是:現(xiàn)在是:; e; ; e; 時時; f; ; f; 分分 End SubEnd Sub運(yùn)行
9、程序后單擊窗體,輸出結(jié)果如下:運(yùn)行程序后單擊窗體,輸出結(jié)果如下: 現(xiàn)在距離現(xiàn)在距離20112011年元旦還有:年元旦還有:304304天天 20112011年元旦是:星期年元旦是:星期6 6 本月份是:本月份是:20102010年年3 3月月 現(xiàn)在是:現(xiàn)在是:1010時時2727分分例例3.43.4 使用日期使用日期/ /時間函數(shù)示例時間函數(shù)示例 (留給學(xué)生分析)(留給學(xué)生分析) 將輸入的字符串反向顯示。界面包含兩個標(biāo)簽,一個按將輸入的字符串反向顯示。界面包含兩個標(biāo)簽,一個按鈕和兩個文本框鈕和兩個文本框(text1用于輸入,用于輸入,text2用于顯示反向后的字符用于顯示反向后的字符串),運(yùn)行
10、結(jié)果如圖串),運(yùn)行結(jié)果如圖3.2所示。所示。 從文本框從文本框text1輸入字符串,單擊輸入字符串,單擊command1按鈕,在文按鈕,在文本框顯示反向字符串。本框顯示反向字符串。3.73.7應(yīng)用示例應(yīng)用示例 程序代碼如下:程序代碼如下: 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為循環(huán)語句為循環(huán)語句(讀者可見第四章讀者可見第四章).本題中的循環(huán)次數(shù)由字符串的長度本題中的循環(huán)次數(shù)由字符串的長度Len(str)決定的決定的. 用用Mid函數(shù)每次從字符串中第函數(shù)每次從字符串中第i個位置取一個字符。個位置取一個字符。 注意語句注意語句strRe = Mid(str, i, 1) & strRe的用法,思考一下,若改為:的用法,思考一下,若改為:strRe = strRe & Mid(str, i, 1),結(jié)果如何?,結(jié)果如何? 判斷條件:判斷條件: 年號年號(y)能被能被4整除,但不能被整除,但不能被100整除;或者能被整除;或
12、者能被400整除,用邏輯表達(dá)式來表示這個條件,寫成:整除,用邏輯表達(dá)式來表示這個條件,寫成: (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)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:功能要求:用戶在用戶在“a=”文本框文本框(Text1)、“b=”文本框文本框(Text2)和和“c=”
13、文本框文本框(Text3)中輸入數(shù)據(jù),單擊中輸入數(shù)據(jù),單擊“判斷判斷”按鈕后,則在按鈕后,則在“最大數(shù)最大數(shù)”文本框文本框(Text4)中輸出結(jié)果中輸出結(jié)果 例例4.2 輸入三個數(shù)輸入三個數(shù)a、b、c,求出其中最大數(shù),求出其中最大數(shù) 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)建立應(yīng)用程序的用戶界面和設(shè)置對象屬性建立應(yīng)用程序的用戶界面和設(shè)置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:用戶從上面三個文本框功能要求:用戶從上面三個文本框(Text1、Text2、Text3)中輸入數(shù)據(jù),單擊中輸入數(shù)據(jù),單擊“排序排序”按鈕按鈕(Command1),則在,則在第第4個文本框個文本框(Text4)中顯示結(jié)果中顯示結(jié)果 例例4.3 輸入三個數(shù),將它們從大到小排序輸入三個數(shù),將它們從大到小排序 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 程序代碼程序代碼 實(shí)現(xiàn)一些簡單的條件判斷分支結(jié)構(gòu)實(shí)現(xiàn)一些簡單
17、的條件判斷分支結(jié)構(gòu) 格式:格式: IIf(條件,條件為真時的值,條件為假時的值條件,條件為真時的值,條件為假時的值) 功能:對條件進(jìn)行測試,若條件成立功能:對條件進(jìn)行測試,若條件成立(為真值為真值),則,則取第一個值取第一個值(即即“條件為真時的值條件為真時的值”),否則取第二個,否則取第二個值值(即即“條件為假時的值條件為假時的值”)。 例如,將例如,將a、b中的小數(shù),放入中的小數(shù),放入Min變量中:變量中: Min=IIf(aMin=IIf(ab,a,b)b,a,b)4.2.3 IIf函數(shù)函數(shù) 例如:例如:0時至?xí)r至12時,顯示時,顯示“早上好早上好” 利用窗體裝載利用窗體裝載(Load)
18、事件,采用事件,采用Print直接在窗體上輸出結(jié)果直接在窗體上輸出結(jié)果 Private Sub Form_Load() Dim h As Integer Show 使使print輸出在窗體上的內(nèi)容可輸出在窗體上的內(nèi)容可見見 h = Hour(Time) 取系統(tǒng)的時間取系統(tǒng)的時間 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 根據(jù)不同的時間段發(fā)出問候語根據(jù)不同的時間段發(fā)出問候語 輸入學(xué)生成績輸入學(xué)生成績(百分制百分制),判斷該成績的等級,判斷該成績的等級(優(yōu)、良、優(yōu)、良、中、及格、不及格中、及格、不及格) (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 (2)編寫程序代碼編寫程序代碼 功能要求:功能要求:用戶從用戶從“成績成績”文本框文本框(Text1)中輸入學(xué)生成中輸入學(xué)生成績,單擊績,單擊“執(zhí)行執(zhí)行”按鈕按鈕(command1)后,經(jīng)判斷得到等級并后,經(jīng)判斷得到等級并顯示在標(biāo)簽顯示在標(biāo)簽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 + 優(yōu)良優(yōu)良 Else Label2.Caption = 成績出錯成績出錯 End IfEnd Sub 實(shí)現(xiàn)例實(shí)現(xiàn)例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 + 優(yōu)優(yōu) Case Else Label2.Caption = 成績出錯成績出錯 End Select End Sub 例例4.6 用用Select CaseSelect Case語句來實(shí)現(xiàn)多分支選擇功能語句來實(shí)現(xiàn)多分支選擇功能 先在窗體上顯示以下考題:先在窗體上顯示以下考題: 雞兔同籠,已知雞和兔總頭數(shù)為雞兔同籠,已知雞和兔
23、總頭數(shù)為h=23,總腳數(shù)為,總腳數(shù)為f=56,求雞兔各有多少只,求雞兔各有多少只? 再提供輸入框由學(xué)生回答問題,然后采用輸出框顯示對再提供輸入框由學(xué)生回答問題,然后采用輸出框顯示對答案的評判意見。答案的評判意見。 設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下: (1)在窗體上設(shè)置一個命令按鈕在窗體上設(shè)置一個命令按鈕Command1 (2)采用窗體的裝載事件采用窗體的裝載事件Form_Load,使考題內(nèi)容直接顯示使考題內(nèi)容直接顯示在窗體上。在窗體上。 例例4.74.7 求雞數(shù)和兔數(shù)求雞數(shù)和兔數(shù) 當(dāng)用戶單擊當(dāng)用戶單擊“答題答題”按鈕時,程序提供輸入對話框,按鈕時,程序提供輸入對話框,由用戶輸入答案,再通過輸出框顯示
24、評判意見。采用的由用戶輸入答案,再通過輸出框顯示評判意見。采用的程序代碼如下:程序代碼如下: Private Sub Form_Load() Show Print FontSize = 18 Print Spc(9); 考一考你考一考你 FontSize = 13 Print Spc(5); 雞兔同籠,已知雞和兔總頭數(shù)為雞兔同籠,已知雞和兔總頭數(shù)為23, Print Spc(3); 總腳數(shù)為總腳數(shù)為56,求雞兔各有多少?,求雞兔各有多少? End Sub Private Sub Command1_Click() h = 23 : f = 56 總頭數(shù)及總總頭數(shù)及總腳數(shù)腳數(shù) j1 = (4 *
25、h - f) / 2 求出的雞數(shù)求出的雞數(shù) t1 = (f - 2 * h) / 2 求出的兔數(shù)求出的兔數(shù) j2 = Val(InputBox(雞的只數(shù)是多少?雞的只數(shù)是多少?, 請回答請回答) t2 = Val(InputBox(兔的只數(shù)是多少?兔的只數(shù)是多少?, 請回答請回答) Select Case True 選擇真值選擇真值 Case j1 = j2 And t1 = t2 MsgBox (回答完全正確回答完全正確!) Case j1 = j2 MsgBox (雞數(shù)回答正確,但兔數(shù)不對雞數(shù)回答正確,但兔數(shù)不對!) Case t1 = t2 MsgBox (兔數(shù)回答正確,但雞數(shù)不對兔數(shù)回
26、答正確,但雞數(shù)不對!) Case Else MsgBox (回答錯誤回答錯誤!) End Select End Sub (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 一個計(jì)時器控件和一個文本框。計(jì)時器控件一個計(jì)時器控件和一個文本框。計(jì)時器控件Timer1的的Interval屬性值設(shè)定為屬性值設(shè)定為1000(1秒秒)例例4.104.10 建立一個電子時鐘建立一個電子時鐘 (2)編寫程序代碼編寫程序代碼 Private Sub Timer1_Timer() timer事件過程事件過程 Text1.Text = Time Time是時間函數(shù)是時間函數(shù) End Sub
27、 利用計(jì)時器可以按指定間隔時間對字體進(jìn)行放大利用計(jì)時器可以按指定間隔時間對字體進(jìn)行放大 (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 一個計(jì)時器控件和和一個標(biāo)簽一個計(jì)時器控件和和一個標(biāo)簽 。計(jì)時器控件。計(jì)時器控件Timer1的計(jì)時器采用默認(rèn)的屬性值的計(jì)時器采用默認(rèn)的屬性值 Enabled屬性值為屬性值為True(真真),Interval屬性值為屬性值為0 例例4.114.11 實(shí)現(xiàn)字體的放大實(shí)現(xiàn)字體的放大 (2)編寫程序代碼編寫程序代碼 Private Sub Form_Load() Label1.Caption = 放大放大 Label1.Width = F
28、orm1.Width 把標(biāo)簽的高度和把標(biāo)簽的高度和寬度寬度 設(shè)置為窗體相設(shè)置為窗體相同尺寸同尺寸 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 計(jì)時結(jié)束計(jì)時結(jié)束 Unload Me End IfEnd Sub (1)分析分析:方程的解有以下幾種可能:方程的解有以下幾種可能: 若若a=0,不是二次方程,不是二次方程 若若b2 - 4ac=0,有兩個相等實(shí)根,有兩個相等實(shí)根 若若b2 - 4ac0,有兩個不等實(shí)根,有兩個不等實(shí)根 若若b2 - 4ac 0計(jì)算復(fù)根的虛部計(jì)算復(fù)根的虛部P = sqr(D) / (2*a)X1 = (b + sqr(D) / (2*a)X2 = (bsqr(D) / (2*a)結(jié)束結(jié)束 當(dāng)用戶在當(dāng)用戶在“a=”文本框文本框(Text1)、“b=”文本框文本框(Text2)和和“c=”文本框文本框(Tex
30、t3)輸入輸入a,b,c的值后,單的值后,單擊擊“計(jì)算計(jì)算”按鈕,則從按鈕,則從“x1=”文本框文本框(Text4)和和“x2=”文本框文本框(Text5)輸出計(jì)算結(jié)果。輸出計(jì)算結(jié)果。 當(dāng)輸入的當(dāng)輸入的a,b,c為為1,2,-8時,運(yùn)行結(jié)果如下圖時,運(yùn)行結(jié)果如下圖 功能要求功能要求 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) 取數(shù)據(jù)取數(shù)據(jù)a b = Val(Text2.Text) 取數(shù)據(jù)取數(shù)據(jù)b c = Val(Text3.Text) 取數(shù)據(jù)取數(shù)據(jù)c If a = 0 Then 當(dāng)當(dāng)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 排序結(jié)果:排序結(jié)果: 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用來記錄每次選擇的最小值的下用來記錄每次選擇的最小值的下標(biāo)標(biāo) 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記錄每一次選出的最小值的下標(biāo),在本次比較結(jié)束記錄每一次選出的最小值的下標(biāo),在本次比較結(jié)束后,使后,使a(i)與與a(k)一次換位即可一次換位即可排列要求排列要求 小小 大大 示例:示例: a(1) a(2) a(3) a(4) 90 64 65 59 a(1)與與a(2) a(4)比較,選出最小值,直接比較,選出最小值,直接與與a(1)交換,結(jié)果:交換,結(jié)果: 59 64 65 90 5.1.1 For
34、.Next5.1.1 For.Next循環(huán)語句循環(huán)語句 按指定次數(shù)執(zhí)行循環(huán)體按指定次數(shù)執(zhí)行循環(huán)體 例例5.1 在窗體上顯示在窗體上顯示2至至10各偶數(shù)的平方數(shù)各偶數(shù)的平方數(shù) 采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: Private Sub Form_Load() Dim k As Integer Show For k = 2 To 10 Step 2 Print k * k Next k End Sub程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果: 4 16 36 64 100 5.1 循環(huán)語句循環(huán)語句說明:說明:循環(huán)變量循環(huán)變量k的初值、終值和步長值分別為的初值、終值
35、和步長值分別為2,10和和2,即從,即從2開始,每次開始,每次加加2,到,到10為止,控制循環(huán)為止,控制循環(huán)5次。每次循環(huán)都將循環(huán)體次。每次循環(huán)都將循環(huán)體(Print k*k)執(zhí)行一次執(zhí)行一次 采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: Private Sub Form_Load() Show s = 0 For k = 1 To 8 s = s + k Next k Print s=; s End Sub 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: s36 語句語句s = s + k (循環(huán)體語句循環(huán)體語句) 的執(zhí)行過程的執(zhí)行過程 例例5.2 求求S = 1
36、 + 2 + 3 + + 8 采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: Private Sub Form_Load() Show t = 1 For c = 1 To 8 t = t * c Next c Print T=; t End Sub 程序運(yùn)行結(jié)果是:程序運(yùn)行結(jié)果是: T40320語句語句t = t * c 也稱乘法器。先將也稱乘法器。先將t置置1(不能置不能置0)。在循環(huán)程序中,常用累加器和累乘器來完成各種計(jì)算任務(wù)在循環(huán)程序中,常用累加器和累乘器來完成各種計(jì)算任務(wù)例例5.3 求求T = 8! = 1238 采用采用Print直接在窗體上輸出
37、結(jié)果,程序代碼如下:直接在窗體上輸出結(jié)果,程序代碼如下: Private Sub Form_Load() Show Dim pi As Single, c As Integer, s As Integer pi = 0 s = 1 s表示加或減運(yùn)算表示加或減運(yùn)算 For c = 1 To 10000 Step 2 pi = pi + s / c s = -s 交替改變加、減號交替改變加、減號 Next c Print =; pi * 4 End Sub 程序運(yùn)行結(jié)果是:程序運(yùn)行結(jié)果是: 3.141397 例例5.4 用用/41 - 1/3 + 1/5 - 1/7 + 級級數(shù)求數(shù)求的近似值的近似
38、值 (取前取前5000項(xiàng)來進(jìn)行計(jì)算項(xiàng)來進(jìn)行計(jì)算) 下面采用下面采用“窮舉法窮舉法”來解此題。來解此題。 其做法是:從所有可能解中,逐個進(jìn)行試驗(yàn),其做法是:從所有可能解中,逐個進(jìn)行試驗(yàn),若滿足條件,就得到一個解,否則不是。直到條件若滿足條件,就得到一個解,否則不是。直到條件滿足或判別出無解為止。滿足或判別出無解為止。 令母雞為令母雞為x只,小雞為只,小雞為y只,根據(jù)題意可知只,根據(jù)題意可知 y = 100 x 開始先讓開始先讓x初值為初值為1,以后逐次加,以后逐次加1,求,求x為何值時,為何值時,條件條件3x+y/3=100成立。如果當(dāng)成立。如果當(dāng)x達(dá)到達(dá)到33時還不能使時還不能使條件成立,則可
39、以斷定此題無解條件成立,則可以斷定此題無解 例例5.5 用用100 元買元買100 只雞,母雞只雞,母雞3元元1只,只,小雞小雞1元元3只,問各應(yīng)買多少只只,問各應(yīng)買多少只? 采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: 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 母雞只數(shù)為母雞只數(shù)為:; x, Print 小雞只數(shù)為小雞只數(shù)為:; y End If Next
40、 x End Sub 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 母雞只數(shù)為:母雞只數(shù)為:25 小雞只數(shù)為:小雞只數(shù)為:75 采用采用Do While.Loop語句語句 采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: 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 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果: S338350 是否可以交換順序:是否可以交換順序: n = n + 1 s = s + n * n采用采用Print直接在窗體上輸出結(jié)果,程序代碼:直接在窗體上輸出結(jié)果,程序代碼: 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 + 級數(shù)級數(shù), ,求求的近似值。當(dāng)最后一項(xiàng)的絕對值的近似值。當(dāng)最后一項(xiàng)的絕對值小于小于1010-5-5時,停止計(jì)算時,停止計(jì)算 程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果: 3.141575 “輾轉(zhuǎn)相除法輾轉(zhuǎn)相除法”算法:算法:求出求出m/n余數(shù)余數(shù)p,若,若p0,n即為即為最大公約數(shù);若最大公約數(shù);若p非非0,則把原來的分母,則把原來的分母n作為新的分子作為新的分子m,把余數(shù)把余數(shù)p作為新的分母作為新的分母n繼續(xù)求解繼續(xù)求解 設(shè)計(jì)步驟如下:設(shè)計(jì)步驟如下: (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對
43、象屬性例例5.8 輸入兩個正整數(shù),求它們的最大公約數(shù)輸入兩個正整數(shù),求它們的最大公約數(shù) 編寫的編寫的“計(jì)算計(jì)算”按鈕按鈕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 (數(shù)據(jù)錯誤數(shù)據(jù)錯誤!) 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,則運(yùn)行結(jié)果如上圖,則運(yùn)行結(jié)果如上圖 把每次輸入的數(shù)累加。當(dāng)輸入把每次輸入的數(shù)累加。當(dāng)輸入-1時結(jié)束程序的運(yùn)行時結(jié)束程序的運(yùn)行 (1)創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性創(chuàng)建應(yīng)用程序的用戶界面和設(shè)置對象屬性 (2)編寫程序代碼編寫程序代碼 Private Sub Form_Load() Show Sum = 0 Do While True 條件為真,循環(huán)無終止進(jìn)行下去條件為真,循環(huán)無終止進(jìn)行下去 x = Val(InputBox(請輸入要加入的數(shù)請輸入要加入的數(shù)(-1表示結(jié)束表示結(jié)束), 輸入數(shù)據(jù)輸入數(shù)據(jù)) I
45、f x = -1 Then Exit Do End If Sum = Sum + x Text1.Text = Sum Loop MsgBox (累加運(yùn)算結(jié)束累加運(yùn)算結(jié)束) End Sub 以以-1作為作為“終止循環(huán)標(biāo)志終止循環(huán)標(biāo)志” 例例5.95.9 設(shè)計(jì)一個設(shè)計(jì)一個“加法器加法器”程序程序例例5.9.1 有一張厚有一張厚0.5mm、面積足夠大的紙,將它不斷地對折,、面積足夠大的紙,將它不斷地對折,問對折多少次后,其厚度可達(dá)到珠穆朗瑪峰的高度問對折多少次后,其厚度可達(dá)到珠穆朗瑪峰的高度? N=0 H=0.5 Do while h8848000 N=n+1 H=2*h Loop Print 對
46、折次數(shù)為對折次數(shù)為:”;n N=0 H=0.5 Do while h8848000 Then Exit do End if Loop Print “對折次數(shù)是對折次數(shù)是:”;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 本例可采用本例可采用兩重循環(huán)兩重循環(huán)來實(shí)現(xiàn)。外循環(huán)控制輸出來實(shí)現(xiàn)。外循環(huán)控制輸出7行,內(nèi)行,內(nèi)循環(huán)控制每行輸出要求的字符數(shù)。循環(huán)控制每行輸出要求的字符數(shù)。 在進(jìn)入內(nèi)循環(huán)之前,使用在進(jìn)入內(nèi)循環(huán)之前,使用Print Tab()來對起始輸出位置來對起始輸出位置定位,退出內(nèi)循環(huán)后,使用定位,退出內(nèi)循環(huán)后,使用Print來控制換行。來控制換行。例例5.115.11 編一程序,輸出下列所示的圖形編一程序,輸出下列
48、所示的圖形 采用采用Print直接在窗體上輸出結(jié)果,程序代碼如下:直接在窗體上輸出結(jié)果,程序代碼如下: 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)分析分析:設(shè)一元硬幣為:設(shè)一元硬幣為a枚,二元硬幣為枚,二元硬幣為b枚,五元硬幣枚,五元硬幣為為c枚,可列出方程枚,可列出方程 a+b+c=10 a+2b+5c=25采用兩重循環(huán),外循環(huán)變量采用兩重循環(huán),外循環(huán)變量a從從010,內(nèi)循環(huán)變量,內(nèi)循環(huán)變量b從從010 (2)創(chuàng)建應(yīng)用程序的用戶界面創(chuàng)建應(yīng)用程序的用戶界面 例例5.125.12 取一元、二元、五元的硬幣共十枚,付取一元、二元、五元的硬幣共十枚,付給給2525元錢,有多少種不同的取法元
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版跨境電商園區(qū)企業(yè)入駐合作合同書3篇
- 二零二五版購房合同中合同解除后的爭議解決3篇
- 二零二五版房屋買賣合同公證操作規(guī)范及法律效力研究3篇
- 二零二五年度高級家教專業(yè)能力認(rèn)證聘用合同集錦3篇
- 二零二五年度電子商務(wù)網(wǎng)絡(luò)安全監(jiān)測與應(yīng)急響應(yīng)合同3篇
- 二零二五年度高端精密鈑金件加工服務(wù)合同2篇
- 二零二五年鋼材加工損耗賠償合同標(biāo)準(zhǔn)3篇
- 2025年度農(nóng)業(yè)現(xiàn)代化合作雙邊合同3篇
- 二零二五年度酒店客房預(yù)訂與客房管理服務(wù)合同3篇
- 二零二五年度金正茂集團(tuán)管理體制實(shí)施合同9篇
- 高考詩歌鑒賞專題復(fù)習(xí):題畫抒懷詩、干謁言志詩
- 2023年遼寧省交通高等??茖W(xué)校高職單招(英語)試題庫含答案解析
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評定方法
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說明方案
- (完整版)英語高頻詞匯800詞
- 《基礎(chǔ)馬來語》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評論
0/150
提交評論