




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第4 4章章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì) v掌握掌握For循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句的使用的使用v掌握掌握DoLoop循環(huán)控制語(yǔ)句的使用循環(huán)控制語(yǔ)句的使用v掌握掌握嵌套循環(huán)嵌套循環(huán)的使用的使用v掌握掌握滾動(dòng)條控件滾動(dòng)條控件的使用方法的使用方法學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)2第第4 4章章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)知識(shí)結(jié)構(gòu)圖知識(shí)結(jié)構(gòu)圖案例案例1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)案例案例2 猜數(shù)游戲猜數(shù)游戲案例案例3 漂亮的星星漂亮的星星案案例例4 調(diào)色板調(diào)色板滾動(dòng)條控件的使用滾動(dòng)條控件的使用循環(huán)的嵌套循環(huán)的嵌套DoLoop循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句For循環(huán)控制語(yǔ)句循
2、環(huán)控制語(yǔ)句34.1 4.1 案例案例1 1簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 相關(guān)知識(shí)相關(guān)知識(shí) 44.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v加密、解密程序運(yùn)行初始界加密、解密程序運(yùn)行初始界面如圖面如圖4.1所示。所示。 v輸入字符串,然后單擊輸入字符串,然后單擊“加加密密”按鈕,在之后的文本框按鈕,在之后的文本框內(nèi)顯示加密后的密文,如圖內(nèi)顯示加密后的密文,如圖4.2所示。所示。 v單擊單擊“解密解密”按鈕,在之后按鈕,在之后的文本框內(nèi)會(huì)顯示解密后的的文本框內(nèi)會(huì)顯示
3、解密后的原文,如圖原文,如圖4.2所示;所示; 案例描述案例描述圖圖4.1程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.2 “加密加密”、“解密解密”結(jié)果結(jié)果 54.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v用戶界面分析用戶界面分析 標(biāo)簽標(biāo)簽Label控件用來(lái)顯示提示信息控件用來(lái)顯示提示信息 文本框文本框TextBox用來(lái)輸入輸出數(shù)據(jù)用來(lái)輸入輸出數(shù)據(jù) 命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作 v程序分析程序分析 加密加密算法:簡(jiǎn)單的加密方法是將每個(gè)字符加一序數(shù)(密算法:簡(jiǎn)單的加密方法是將每個(gè)字符加一序數(shù)(密鑰),即得到密文。鑰),即得到密文。 解密解密算法:解
4、密過(guò)程與加密過(guò)程互為逆過(guò)程,即將密文算法:解密過(guò)程與加密過(guò)程互為逆過(guò)程,即將密文字符串中的每個(gè)字符減去密鑰,得到解密后的原文字符。字符串中的每個(gè)字符減去密鑰,得到解密后的原文字符。 案例分析案例分析64.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v程序分析程序分析 加密加密算法:算法:案例分析案例分析code = key = 5 slen = Len(RTrim(Text1.Text) k = 1 k=slen? c = Mid(Text1.Text, k, 1) c_asc = Asc(c) + key code = code + Chr(c_asc) k = k+1 Fals
5、eTrue74.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v界面設(shè)計(jì):界面設(shè)計(jì): 1個(gè)標(biāo)簽個(gè)標(biāo)簽 3個(gè)文本框個(gè)文本框 3個(gè)命令按鈕個(gè)命令按鈕 案例設(shè)計(jì)案例設(shè)計(jì)標(biāo)簽標(biāo)簽命令按鈕命令按鈕文本框文本框84.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Caption加密解密算法加密解密算法Label1Caption輸入字符串輸入字符串Text1Text3Text置空置空Command1Caption加密加密Command2Caption解密解密Command3Caption清除清除94.1 4.1
6、 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Dim key As Integer, slen As IntegerPrivate Sub Command1_Click() Dim code As String, c As String Dim c_asc As Integer code = key = 5 slen = Len(RTrim(Text1.Text) For k = 1 To slen c = Mid(Text1.Text, k, 1) c_asc = Asc(c) + key code = code + Chr(c_asc) Next k T
7、ext2.Text = codeEnd Sub加密加密密碼字符串初始化密碼字符串初始化設(shè)置密鑰設(shè)置密鑰值值將第將第k個(gè)字符個(gè)字符ASCII碼加上密鑰碼加上密鑰取字符串長(zhǎng)度取字符串長(zhǎng)度取第取第k個(gè)字符個(gè)字符獲取加密字符并連獲取加密字符并連接到密碼字符串中接到密碼字符串中顯示密文顯示密文104.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command2_Click() Dim decode As String, c As String Dim d_asc As Integer decode = key = 5 slen =
8、Len(RTrim(Text2.Text) For k = 1 To slen c = Mid(Text2.Text, k, 1) d_asc = Asc(c) - key decode = decode + Chr(d_asc) Next k Text3.Text = decodeEnd Sub解密解密 114.1 4.1 案例案例1 1 簡(jiǎn)單的加密解密簡(jiǎn)單的加密解密相關(guān)知識(shí)相關(guān)知識(shí)For循環(huán)語(yǔ)句循環(huán)語(yǔ)句 1121. For1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句 v不少實(shí)際問(wèn)題中存在許多具有規(guī)律性的重復(fù)操作,因此,不少實(shí)際問(wèn)題中存在許多具有規(guī)律性的重復(fù)操作,因此,在程序中就需要重復(fù)執(zhí)行某些語(yǔ)句,這可以
9、通過(guò)循環(huán)結(jié)構(gòu)在程序中就需要重復(fù)執(zhí)行某些語(yǔ)句,這可以通過(guò)循環(huán)結(jié)構(gòu)語(yǔ)句方便地實(shí)現(xiàn)。語(yǔ)句方便地實(shí)現(xiàn)。vVB中提供了兩種類型的循環(huán)語(yǔ)句:中提供了兩種類型的循環(huán)語(yǔ)句:一種是計(jì)數(shù)型循環(huán)語(yǔ)句一種是計(jì)數(shù)型循環(huán)語(yǔ)句;另一種是另一種是條件型循環(huán)語(yǔ)句條件型循環(huán)語(yǔ)句。本案例采用的是。本案例采用的是計(jì)數(shù)型循環(huán)語(yǔ)計(jì)數(shù)型循環(huán)語(yǔ)句句For語(yǔ)句語(yǔ)句。 概述概述131. For1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句v語(yǔ)句格式語(yǔ)句格式 For 循環(huán)控制變量循環(huán)控制變量=初值初值 To 終值終值 Step 步長(zhǎng)步長(zhǎng) 循環(huán)體循環(huán)體 Next 循環(huán)控制變量循環(huán)控制變量ForFor循環(huán)語(yǔ)句循環(huán)語(yǔ)句是數(shù)值表達(dá)式,控是數(shù)值表達(dá)式,控制循環(huán)次數(shù)制循環(huán)次數(shù)
10、 n=int -1終值 初值步長(zhǎng)必須相同必須相同 141. For1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句v執(zhí)行流程執(zhí)行流程 ForFor循環(huán)語(yǔ)句循環(huán)語(yǔ)句FT循環(huán)控制變量循環(huán)控制變量= =初值初值循環(huán)控制變量循環(huán)控制變量終值?終值?循環(huán)體循環(huán)體循環(huán)控制變量循環(huán)控制變量= =循環(huán)控制變量循環(huán)控制變量+ +步長(zhǎng)步長(zhǎng)NextNext的下一條語(yǔ)句的下一條語(yǔ)句步長(zhǎng)為步長(zhǎng)為負(fù)數(shù)負(fù)數(shù)時(shí),初值應(yīng)大時(shí),初值應(yīng)大于或等于終值。保持循環(huán)于或等于終值。保持循環(huán)的條件是的條件是“循環(huán)控制變量循環(huán)控制變量終值終值?”151. For1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句例例4.1 4.1 計(jì)算計(jì)算1 1100100之間的奇數(shù)和,程序代碼如下:
11、之間的奇數(shù)和,程序代碼如下:Private Sub Form_Click() Dim sum As Integer, i As Integer sum = 0 For i = 1 To 100 Step 2 sum = sum + i Next i Print sum=; sum, i=; i End Sub ForFor循環(huán)語(yǔ)句循環(huán)語(yǔ)句累加器初始化累加器初始化執(zhí)行累加執(zhí)行累加161. For1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句例例4.2 4.2 計(jì)算計(jì)算5!5!,程序代碼如下:,程序代碼如下:Private Sub Form_Click() Dim t As Long, i As Integer t
12、 = 1 For i = 5 To 1 Step -1 t = t * i Next i Print 5!=; t, i=; i End SubForFor循環(huán)語(yǔ)句循環(huán)語(yǔ)句乘法器初始化乘法器初始化累乘累乘退出循環(huán)后,循環(huán)變量的值保持退出退出循環(huán)后,循環(huán)變量的值保持退出時(shí)的值;在循環(huán)體內(nèi)對(duì)循環(huán)控制變量時(shí)的值;在循環(huán)體內(nèi)對(duì)循環(huán)控制變量可多次引用,但不要對(duì)其賦值,否則可多次引用,但不要對(duì)其賦值,否則會(huì)影響原來(lái)的循環(huán)控制規(guī)律。會(huì)影響原來(lái)的循環(huán)控制規(guī)律。 174.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲 案例案例2 2 猜數(shù)游戲猜數(shù)游戲 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)
13、案例設(shè)計(jì) 相關(guān)知識(shí)相關(guān)知識(shí) 184.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v猜數(shù)游戲程序運(yùn)行后,在猜數(shù)游戲程序運(yùn)行后,在“下界下界”和和“上界上界”文本框中設(shè)置要猜的文本框中設(shè)置要猜的數(shù)的范圍,如圖數(shù)的范圍,如圖4.7所示;所示; v單擊單擊“開(kāi)始開(kāi)始”按鈕,打開(kāi)對(duì)話框按鈕,打開(kāi)對(duì)話框等待輸入要猜的數(shù),如圖等待輸入要猜的數(shù),如圖4.8所示;所示;v如果猜錯(cuò)了,會(huì)繼續(xù)彈出對(duì)話框如果猜錯(cuò)了,會(huì)繼續(xù)彈出對(duì)話框給出提示并等待用戶輸入數(shù)據(jù),給出提示并等待用戶輸入數(shù)據(jù),如圖如圖4.9所示,直到猜對(duì)為止。所示,直到猜對(duì)為止。v猜對(duì)數(shù)后給出提示信息,如圖猜對(duì)數(shù)后給出提示信息,如圖4.10所示;所示;案例
14、描述案例描述圖圖4.7設(shè)置要猜的數(shù)的范圍設(shè)置要猜的數(shù)的范圍 圖圖4.8輸入猜測(cè)的數(shù)輸入猜測(cè)的數(shù) 圖圖4.9 猜錯(cuò)數(shù)字后繼續(xù)輸入數(shù)據(jù)猜錯(cuò)數(shù)字后繼續(xù)輸入數(shù)據(jù) 圖圖4.10 猜對(duì)數(shù)字后的提示信息猜對(duì)數(shù)字后的提示信息 194.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v用戶界面分析用戶界面分析 標(biāo)簽標(biāo)簽Label控件用來(lái)顯示提示信息控件用來(lái)顯示提示信息 文本框文本框TextBox用來(lái)輸入數(shù)據(jù)用來(lái)輸入數(shù)據(jù) 命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作 框架框架Frame用來(lái)分隔界面區(qū)域用來(lái)分隔界面區(qū)域v程序分析程序分析猜一個(gè)隨機(jī)數(shù),要反復(fù)猜幾次才能猜中,在設(shè)計(jì)程序時(shí),猜一個(gè)隨機(jī)數(shù),要
15、反復(fù)猜幾次才能猜中,在設(shè)計(jì)程序時(shí),由于并不知道幾次才能猜中,所以使用由于并不知道幾次才能猜中,所以使用For循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句就不適合了,而用就不適合了,而用DoLoop循環(huán)語(yǔ)句。循環(huán)語(yǔ)句。 案例分析案例分析204.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v程序分析程序分析 “開(kāi)始開(kāi)始”按鈕功能按鈕功能 案例分析案例分析m =Val(Text1.Text) n = Val(Text2.Text) num = Int(m + Rnd * (n - m + 1) js = 1 接收猜測(cè)數(shù)字接收猜測(cè)數(shù)字ans Val(ans) num? js = js+1 Val(ans) num? 猜大
16、了猜大了,繼續(xù)猜測(cè)繼續(xù)猜測(cè)ans 猜小了猜小了,繼續(xù)猜測(cè)繼續(xù)猜測(cè)ans FalseTrueTrueFalse猜中猜中 214.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v界面設(shè)計(jì):界面設(shè)計(jì):2個(gè)標(biāo)簽控件個(gè)標(biāo)簽控件 2個(gè)文本框控件個(gè)文本框控件 2個(gè)命令按鈕控件個(gè)命令按鈕控件 1個(gè)框架個(gè)框架案例設(shè)計(jì)案例設(shè)計(jì)標(biāo)簽標(biāo)簽文本框文本框命令按鈕命令按鈕框架框架224.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Caption數(shù)字猜大小數(shù)字猜大小Frame1Caption要猜的數(shù)的范圍要猜的數(shù)的范圍Label1Caption下界
17、下界 Label2Caption上界上界Text1Text2Text置空置空Command1Caption開(kāi)始開(kāi)始Command2Caption清除清除234.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() Dim ans As String, num As Integer Dim m As Integer, n As Integer Randomize m = Val(Text1.Text): n = Val(Text2.Text) num = Int(m + Rnd * (n - m + 1) js
18、= 1 ans = InputBox(已經(jīng)產(chǎn)生了一個(gè)已經(jīng)產(chǎn)生了一個(gè) & m & & n & 之間的數(shù)之間的數(shù) & 猜猜看是幾猜猜看是幾?, 猜數(shù)游戲猜數(shù)游戲) Do While Val(ans) num js = js + 1 If Val(ans) num Then ans = InputBox(很抱歉,你猜的大了,再猜很抱歉,你猜的大了,再猜?, 猜數(shù)游戲猜數(shù)游戲) Else ans = InputBox(很抱歉,你猜的小了,再猜很抱歉,你猜的小了,再猜?, 猜數(shù)游戲猜數(shù)游戲) End If Loop MsgBox 祝賀你猜中了,這個(gè)數(shù)就是祝賀你猜中
19、了,這個(gè)數(shù)就是: & Str(ans) & 共猜了共猜了 & Str(js) & 次次!, , 猜中猜中End Sub要猜數(shù)的范圍下界要猜數(shù)的范圍下界要猜數(shù)的范圍上界要猜數(shù)的范圍上界產(chǎn)生要猜的數(shù)產(chǎn)生要猜的數(shù)輸入要猜的數(shù)輸入要猜的數(shù)沒(méi)有猜中時(shí)執(zhí)行循環(huán)沒(méi)有猜中時(shí)執(zhí)行循環(huán)244.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command2_Click() Text1.Text = Text2.Text = Text1.SetFocusEnd Sub使文本框獲得使文本框獲得輸入焦點(diǎn)輸入焦點(diǎn)清空文本框清空文本框2
20、54.2 4.2 案例案例2 2 猜數(shù)游戲猜數(shù)游戲相關(guān)知識(shí)相關(guān)知識(shí)DoLoop循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句 1261. Do1. DoLoopLoop循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句 vDo循環(huán)循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。v語(yǔ)法格式語(yǔ)法格式 :Do While Until 條件條件 循環(huán)體循環(huán)體LoopDo 循環(huán)體循環(huán)體Loop While Until 條件條件 條件為條件為True時(shí)執(zhí)行時(shí)執(zhí)行循環(huán)體中的語(yǔ)句循環(huán)體中的語(yǔ)句 當(dāng)條件為當(dāng)條件為False時(shí)執(zhí)時(shí)執(zhí)行循環(huán)體中的語(yǔ)句行循環(huán)體中的語(yǔ)句 先判斷條件,后執(zhí)行循環(huán)先判斷條件,后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行體,有可能
21、一次也不執(zhí)行循環(huán)體循環(huán)體 先執(zhí)行循環(huán)體,后判斷先執(zhí)行循環(huán)體,后判斷條件,至少執(zhí)行一次循條件,至少執(zhí)行一次循環(huán)體環(huán)體 271. Do1. DoLoopLoop循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句 v執(zhí)行流程:執(zhí)行流程:條件條件?循環(huán)體循環(huán)體FT圖圖4.12 Do WhileLoop流程圖流程圖條件條件?F圖圖4.13 DoLoop While流程圖流程圖循環(huán)體循環(huán)體T281. Do1. DoLoopLoop循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句例例4.3 使用使用DoLoop循環(huán)語(yǔ)句計(jì)算循環(huán)語(yǔ)句計(jì)算5!,代碼如下:,代碼如下:Private Sub Form_Click() Dim t As Long, i As Int
22、eger t = 1 i = 1 Do While i = 5 t = t * i i = i + 1 Loop Print 5!=; tEnd Sub 294.3 4.3 案例案例3 3 漂亮的星星漂亮的星星 案例案例3 3 漂亮的星星漂亮的星星 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 相關(guān)知識(shí)相關(guān)知識(shí) 304.3 4.3 案例案例3 3 漂亮的星星漂亮的星星v在窗體上打印有一定規(guī)律的圖形在窗體上打印有一定規(guī)律的圖形v程序運(yùn)行后,單擊程序運(yùn)行后,單擊“顯示顯示”按鈕,按鈕,則在窗體上打印一個(gè)由則在窗體上打印一個(gè)由“”組成組成的三角形,如圖的三角形,如圖4.14
23、所示。所示。 案例描述案例描述圖圖4.14 單擊單擊“顯示顯示”按鈕后顯示的圖形按鈕后顯示的圖形 314.3 4.3 案例案例3 3 漂亮的星星漂亮的星星v用戶界面分析用戶界面分析 命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作 v程序分析程序分析 使用使用嵌套循環(huán)嵌套循環(huán)打印圖形:外循環(huán)控制打印的行數(shù),外循打印圖形:外循環(huán)控制打印的行數(shù),外循環(huán)的循環(huán)體一般包含三個(gè)語(yǔ)句。環(huán)的循環(huán)體一般包含三個(gè)語(yǔ)句。 第一個(gè)語(yǔ)句控制每行打印的起始位置:如第一個(gè)語(yǔ)句控制每行打印的起始位置:如 Print Tab(20 - 2 *i)第二個(gè)語(yǔ)句是用內(nèi)嵌的第二個(gè)語(yǔ)句是用內(nèi)嵌的For循環(huán)語(yǔ)句控制每一行打
24、印循環(huán)語(yǔ)句控制每一行打印“”的個(gè)數(shù):的個(gè)數(shù):第三個(gè)語(yǔ)句是用第三個(gè)語(yǔ)句是用Print語(yǔ)句輸出一個(gè)空行,實(shí)現(xiàn)換行。語(yǔ)句輸出一個(gè)空行,實(shí)現(xiàn)換行。案例分析案例分析324.3 4.3 案例案例3 3 漂亮的星星漂亮的星星v界面設(shè)計(jì):界面設(shè)計(jì):1個(gè)命令按鈕控件個(gè)命令按鈕控件v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Caption漂亮的星星漂亮的星星Command1Caption顯示顯示334.3 4.3 案例案例3 3 漂亮的星星漂亮的星星v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() For i = 1 To 7 Pri
25、nt Tab(20 - 2 * i); For j = 1 To 2 * i - 1 Print ; Next j Print Next iEnd Sub設(shè)定每行打印設(shè)定每行打印的起始位置的起始位置換行換行控制每行打印的個(gè)數(shù)控制每行打印的個(gè)數(shù)控制打印的行數(shù)控制打印的行數(shù)344.3 4.3 案例案例3 3 漂亮的星星漂亮的星星相關(guān)知識(shí)相關(guān)知識(shí)循環(huán)的嵌套循環(huán)的嵌套 1351. 1. 循環(huán)的嵌套循環(huán)的嵌套 v在一個(gè)循環(huán)控制語(yǔ)句的循環(huán)體內(nèi)又包含了另外的循環(huán)控制在一個(gè)循環(huán)控制語(yǔ)句的循環(huán)體內(nèi)又包含了另外的循環(huán)控制語(yǔ)句,這種結(jié)構(gòu)稱為語(yǔ)句,這種結(jié)構(gòu)稱為循環(huán)的嵌套循環(huán)的嵌套。處于內(nèi)部的循環(huán)稱為。處于內(nèi)部的循環(huán)稱
26、為內(nèi)內(nèi)循環(huán)循環(huán),處于外部的循環(huán)稱為,處于外部的循環(huán)稱為外循環(huán)外循環(huán)。 v嵌套循環(huán)的嵌套循環(huán)的執(zhí)行過(guò)程執(zhí)行過(guò)程是:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)完整地是:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)完整地執(zhí)行一個(gè)周期。所以,嵌套循環(huán)的循環(huán)次數(shù)等于每一重循執(zhí)行一個(gè)周期。所以,嵌套循環(huán)的循環(huán)次數(shù)等于每一重循環(huán)次數(shù)的乘積。環(huán)次數(shù)的乘積。 361. 1. 循環(huán)的嵌套循環(huán)的嵌套 v注意:注意: 內(nèi)循環(huán)控制變量不能與外循環(huán)控制變量同名。內(nèi)循環(huán)控制變量不能與外循環(huán)控制變量同名。外循環(huán)控制結(jié)構(gòu)必須完全包含內(nèi)循環(huán)控制結(jié)構(gòu),不能外循環(huán)控制結(jié)構(gòu)必須完全包含內(nèi)循環(huán)控制結(jié)構(gòu),不能交叉。交叉。如果循環(huán)體內(nèi)有如果循環(huán)體內(nèi)有If語(yǔ)句,或語(yǔ)句,或If語(yǔ)句內(nèi)有
27、循環(huán)語(yǔ)句,也不語(yǔ)句內(nèi)有循環(huán)語(yǔ)句,也不能交叉。能交叉。 For i=1 to 10 For j=1 to 10 Next iNext j For i=1 to 10 For i=1 to 10 Next iNext i 內(nèi)外循環(huán)交叉內(nèi)外循環(huán)交叉 內(nèi)外循環(huán)變量同名內(nèi)外循環(huán)變量同名 374.4 4.4 案例案例4 4 調(diào)色板調(diào)色板 案例案例4 4 調(diào)色板調(diào)色板 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 相關(guān)知識(shí)相關(guān)知識(shí) 384.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v調(diào)色板程序運(yùn)行初始界面如圖調(diào)色板程序運(yùn)行初始界面如圖4.15所示。所示。 v用鼠標(biāo)拖動(dòng)用鼠標(biāo)拖動(dòng)“紅色
28、紅色”滾動(dòng)條上的滾動(dòng)條上的滑塊,或者單擊滾動(dòng)條兩端的箭滑塊,或者單擊滾動(dòng)條兩端的箭頭或空白處,可以調(diào)整紅色值,頭或空白處,可以調(diào)整紅色值,同樣可以調(diào)整綠色和藍(lán)色值,調(diào)同樣可以調(diào)整綠色和藍(lán)色值,調(diào)整后的顏色通過(guò)標(biāo)簽的背景色顯整后的顏色通過(guò)標(biāo)簽的背景色顯示出來(lái),如圖示出來(lái),如圖4.16所示;所示; v也可以直接在文本框內(nèi)輸入顏色也可以直接在文本框內(nèi)輸入顏色值,然后按回車鍵,完成顏色的值,然后按回車鍵,完成顏色的調(diào)制。調(diào)制。 案例描述案例描述圖圖4.15 程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.16 調(diào)制顏色調(diào)制顏色 394.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v用戶界面分析用戶界面分析標(biāo)簽標(biāo)
29、簽Label用來(lái)顯示提示信息用來(lái)顯示提示信息文本框文本框TextBox用來(lái)顯示顏色值用來(lái)顯示顏色值滾動(dòng)條滾動(dòng)條 HScrollBar用來(lái)設(shè)置顏色用來(lái)設(shè)置顏色v程序分析程序分析滾動(dòng)條的滾動(dòng)條的Change事件過(guò)程:使用三個(gè)滾動(dòng)條的事件過(guò)程:使用三個(gè)滾動(dòng)條的Value屬性值作為屬性值作為RGB函數(shù)函數(shù)中的三個(gè)顏色分量值,設(shè)置標(biāo)簽的中的三個(gè)顏色分量值,設(shè)置標(biāo)簽的背景色。背景色。 案例分析案例分析404.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v程序分析程序分析在文本框的在文本框的KeyPress事件過(guò)程:事件過(guò)程: 通過(guò)判斷用戶是否按通過(guò)判斷用戶是否按下回車鍵,來(lái)識(shí)別輸入是否結(jié)束,如果輸入結(jié)束,則用
30、下回車鍵,來(lái)識(shí)別輸入是否結(jié)束,如果輸入結(jié)束,則用文本框中的數(shù)值設(shè)置相應(yīng)滾動(dòng)條的文本框中的數(shù)值設(shè)置相應(yīng)滾動(dòng)條的ValueValue屬性值,同時(shí)屬性值,同時(shí)修改修改RGBRGB函數(shù)中的相應(yīng)顏色分量值,從而改變標(biāo)簽顏色。函數(shù)中的相應(yīng)顏色分量值,從而改變標(biāo)簽顏色。 案例分析案例分析414.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v界面設(shè)計(jì):界面設(shè)計(jì):4個(gè)標(biāo)簽控件個(gè)標(biāo)簽控件 3個(gè)文本框控件個(gè)文本框控件3個(gè)滾動(dòng)條控件個(gè)滾動(dòng)條控件案例設(shè)計(jì)案例設(shè)計(jì)標(biāo)簽標(biāo)簽滾動(dòng)條滾動(dòng)條標(biāo)簽標(biāo)簽文本框文本框424.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值For
31、mCaption調(diào)色板調(diào)色板Label1Caption置空置空BackColor&H00000000&Label2Caption紅色紅色Label3Caption綠色綠色Label4Caption藍(lán)色藍(lán)色HScroll1HScroll3Value0Min0Max255SmallChange1LargeChange25Text1Text3Text0434.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub HScroll1_Change() Label1.BackColor = RGB(HScroll1.Value, HScroll
32、2.Value, HScroll3.Value) Text1.Text = HScroll1.ValueEnd SubPrivate Sub HScroll2_Change() Label1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) Text2.Text = HScroll2.ValueEnd SubPrivate Sub HScroll3_Change() Label1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) Text3
33、.Text = HScroll3.ValueEnd Sub調(diào)整藍(lán)色值調(diào)整藍(lán)色值調(diào)整綠色值調(diào)整綠色值調(diào)整紅色值調(diào)整紅色值444.4 4.4 案例案例4 4 調(diào)色板調(diào)色板v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then HScroll1.Value = Val(Text1.Text) Label1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End IfEnd Sub監(jiān)測(cè)紅色文本監(jiān)測(cè)紅色文本
34、框中值的變化框中值的變化按鍵的按鍵的Ascii碼碼判斷是否按下回車鍵判斷是否按下回車鍵454.4 4.4 案例案例4 4 調(diào)色板調(diào)色板案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then HScroll2.Value = Val(Text2.Text) Label1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End IfEnd SubPrivate Sub Text3_KeyPress(KeyAscii As
35、 Integer) If KeyAscii = 13 Then HScroll3.Value = Val(Text3.Text) Label1.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End IfEnd Sub監(jiān)測(cè)綠色文本監(jiān)測(cè)綠色文本框中值的變化框中值的變化監(jiān)測(cè)藍(lán)色文本監(jiān)測(cè)藍(lán)色文本框中值的變化框中值的變化v代碼設(shè)計(jì)代碼設(shè)計(jì) 464.4 4.4 案例案例4 4 調(diào)色板調(diào)色板相關(guān)知識(shí)相關(guān)知識(shí)滾動(dòng)條滾動(dòng)條 14471. 1. 滾動(dòng)條滾動(dòng)條 v滾動(dòng)條(滾動(dòng)條(ScrollBar)常用來(lái)協(xié)助觀察數(shù)據(jù)或確定位置,也常用
36、來(lái)協(xié)助觀察數(shù)據(jù)或確定位置,也可以用來(lái)作為數(shù)據(jù)的輸入工具??梢杂脕?lái)作為數(shù)據(jù)的輸入工具。v當(dāng)應(yīng)用程序或控件所包含的信息超過(guò)當(dāng)前控件所能顯示的當(dāng)應(yīng)用程序或控件所包含的信息超過(guò)當(dāng)前控件所能顯示的信息時(shí)信息時(shí) ,則控件上會(huì)自動(dòng)出現(xiàn)滾動(dòng)條。,則控件上會(huì)自動(dòng)出現(xiàn)滾動(dòng)條。v滾動(dòng)條有滾動(dòng)條有水平滾動(dòng)條水平滾動(dòng)條和和垂直滾動(dòng)條垂直滾動(dòng)條兩種,除方向不同外,兩種,除方向不同外,二者的結(jié)構(gòu)和操作是一樣的。二者的結(jié)構(gòu)和操作是一樣的。v滾動(dòng)條的兩端各有一個(gè)滾動(dòng)條的兩端各有一個(gè)滾動(dòng)箭頭滾動(dòng)箭頭,在滾動(dòng)箭頭之間有一個(gè),在滾動(dòng)箭頭之間有一個(gè)滑塊滑塊。 基本概念基本概念481. 1. 滾動(dòng)條滾動(dòng)條(1)Value屬性:用于設(shè)置或
37、返回滾動(dòng)條當(dāng)前位置值,即滑屬性:用于設(shè)置或返回滾動(dòng)條當(dāng)前位置值,即滑塊所處位置的值,默認(rèn)值為塊所處位置的值,默認(rèn)值為0。 (2)Min屬性:用于設(shè)置或返回滾動(dòng)條所能代表的最小值,屬性:用于設(shè)置或返回滾動(dòng)條所能代表的最小值,取值范圍為范圍取值范圍為范圍-3276832767,默認(rèn)值為,默認(rèn)值為0。當(dāng)滑塊處于。當(dāng)滑塊處于水平滾動(dòng)條的水平滾動(dòng)條的最左端最左端或垂直滾動(dòng)條的或垂直滾動(dòng)條的頂端頂端時(shí),代表的值為時(shí),代表的值為最小值。最小值。(3)Max屬性:用于設(shè)置或返回滾動(dòng)條所能代表的最大值,屬性:用于設(shè)置或返回滾動(dòng)條所能代表的最大值,取值范圍為范圍取值范圍為范圍-3276832767,默認(rèn)值為,默認(rèn)
38、值為32767。當(dāng)滑。當(dāng)滑塊處于水平滾動(dòng)條的塊處于水平滾動(dòng)條的最右端最右端或垂直滾動(dòng)條的或垂直滾動(dòng)條的底端底端時(shí),代表時(shí),代表的值為最大值。的值為最大值。 常用屬性常用屬性 491. 1. 滾動(dòng)條滾動(dòng)條(4)SmallChange屬性:表示單擊滾動(dòng)條兩端的箭頭時(shí),屬性:表示單擊滾動(dòng)條兩端的箭頭時(shí),Value屬性所增加或減少的值,默認(rèn)值為屬性所增加或減少的值,默認(rèn)值為1。 (5)LargeChange屬性:表示單擊滾動(dòng)條的空白處(滑塊與屬性:表示單擊滾動(dòng)條的空白處(滑塊與兩端箭頭之間的區(qū)域)時(shí),兩端箭頭之間的區(qū)域)時(shí),Value屬性所增加或減少的值,屬性所增加或減少的值,默認(rèn)值為默認(rèn)值為1 常用
39、屬性常用屬性 501. 1. 滾動(dòng)條滾動(dòng)條(1)Scroll事件:用鼠標(biāo)拖動(dòng)滑塊時(shí)觸發(fā)該事件。事件:用鼠標(biāo)拖動(dòng)滑塊時(shí)觸發(fā)該事件。(2)Change事件,當(dāng)改變事件,當(dāng)改變Value屬性值(滾動(dòng)條內(nèi)滑塊位置屬性值(滾動(dòng)條內(nèi)滑塊位置改變)時(shí)觸發(fā)該事件。常用來(lái)得到滾動(dòng)條最后的改變)時(shí)觸發(fā)該事件。常用來(lái)得到滾動(dòng)條最后的Value值。值。常用事件常用事件 514.5 4.5 拓展案例拓展案例 【拓展案例拓展案例1】斐波那契數(shù)列斐波那契數(shù)列 【拓展案例拓展案例2】判斷素?cái)?shù)判斷素?cái)?shù) 【拓展案例拓展案例3】求最大公約數(shù)求最大公約數(shù) 【拓展案例拓展案例4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值 【拓展案
40、例拓展案例6】打印九九乘法表打印九九乘法表 【拓展案例拓展案例5】百錢買百雞百錢買百雞 52【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列 拓展案例拓展案例1 斐波那契數(shù)列斐波那契數(shù)列 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 53【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列v斐波那契數(shù)列的第斐波那契數(shù)列的第1個(gè)數(shù)和第個(gè)數(shù)和第2個(gè)個(gè)數(shù)分別是數(shù)分別是1,從第,從第3項(xiàng)開(kāi)始,每一項(xiàng)開(kāi)始,每一項(xiàng)都等于前兩項(xiàng)之和項(xiàng)都等于前兩項(xiàng)之和 。v打印斐波那契數(shù)列前打印斐波那契數(shù)列前30個(gè)數(shù)的程個(gè)數(shù)的程序運(yùn)行初始界面如圖序運(yùn)行初始界面如圖4.18所示。所示。v單擊單擊“打印
41、打印”按鈕,在窗體上就按鈕,在窗體上就打印出該數(shù)列的前打印出該數(shù)列的前30項(xiàng),如圖項(xiàng),如圖4.19所示。所示。 案例描述案例描述圖圖4.18程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.19顯示斐波那契數(shù)列顯示斐波那契數(shù)列 54【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列v用戶界面分析用戶界面分析命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作v程序分析程序分析首先初始化第首先初始化第1項(xiàng)和第項(xiàng)和第2項(xiàng)的值,并在循環(huán)外輸出。每個(gè)項(xiàng)的值,并在循環(huán)外輸出。每個(gè)輸出項(xiàng)占輸出項(xiàng)占10列的寬度。列的寬度。 通過(guò)通過(guò)For循環(huán)控制語(yǔ)句輸出其余的數(shù)。循環(huán)控制語(yǔ)句輸出其余的數(shù)。案例分析案例分析
42、55【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列v程序分析程序分析算法流程圖算法流程圖案例分析案例分析fib1 = 1: fib2 = 1Print fib1; Tab(10); fib2; i=3i=30fib = fib1 + fib2 Print Fib; fib1 = fib2fib2 = fib i=i+1TrueFalse56【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列v界面設(shè)計(jì):界面設(shè)計(jì):2個(gè)命令按鈕控件個(gè)命令按鈕控件 v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Caption求斐波那契數(shù)列求斐波那契數(shù)列Command1Captio
43、n打印打印Command2Caption結(jié)束結(jié)束57【拓展案例拓展案例1 1】斐波那契數(shù)列斐波那契數(shù)列v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() Cls Dim i As Integer, k As Integer, js As Integer Dim fib1 As Long, fib2 As Long, fib As Long fib1 = 1 fib2 = 1 js = 1 k = 10 Print fib1; Tab(10); fib2; For i = 3 To 30 fib = fib1 + fib2 js = js + 1 Pri
44、nt Tab(js * k); fib; If i Mod 5 = 0 Then Print: js = -1 fib1 = fib2 fib2 = fib Next iEnd SubPrivate Sub Command2_Click() EndEnd Sub每個(gè)數(shù)所占的寬度每個(gè)數(shù)所占的寬度計(jì)算當(dāng)前項(xiàng),為前兩項(xiàng)之和計(jì)算當(dāng)前項(xiàng),為前兩項(xiàng)之和每行打印每行打印5個(gè)數(shù)之個(gè)數(shù)之后換行后換行求當(dāng)前數(shù)列求當(dāng)前數(shù)列的最后兩項(xiàng)的最后兩項(xiàng)58【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù) 拓展案例拓展案例2 判斷素?cái)?shù)判斷素?cái)?shù) 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 59【拓展案例拓展
45、案例2 2】判斷素?cái)?shù)判斷素?cái)?shù) v判斷素?cái)?shù)的程序運(yùn)行初始判斷素?cái)?shù)的程序運(yùn)行初始界面如圖界面如圖4.20所示。所示。v在文本框內(nèi)輸入數(shù)據(jù)后,在文本框內(nèi)輸入數(shù)據(jù)后,單擊單擊“判斷素?cái)?shù)判斷素?cái)?shù)”按鈕,按鈕,判斷結(jié)果顯示在圖片框內(nèi),判斷結(jié)果顯示在圖片框內(nèi),如圖如圖4.21所示。所示。 案例描述案例描述圖圖4.20 程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.21 判斷素?cái)?shù)結(jié)果判斷素?cái)?shù)結(jié)果 60【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù)v用戶界面分析用戶界面分析圖片框圖片框PictureBox用來(lái)打印判斷結(jié)果用來(lái)打印判斷結(jié)果文本框文本框TextBox用來(lái)輸入數(shù)據(jù)用來(lái)輸入數(shù)據(jù)命令按鈕命令按鈕Command用來(lái)
46、執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作框架框架Frame用于分隔區(qū)域用于分隔區(qū)域v程序分析程序分析所謂所謂素?cái)?shù)素?cái)?shù)是指除了是指除了1和它本身以外,不能被其他任何整和它本身以外,不能被其他任何整數(shù)整除的數(shù)。數(shù)整除的數(shù)。案例分析案例分析61【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù)v程序分析程序分析“判斷素?cái)?shù)判斷素?cái)?shù)”按鈕功能:要判別某數(shù)按鈕功能:要判別某數(shù)m是否是素?cái)?shù),就是否是素?cái)?shù),就是依次用是依次用i=2m-1 去除去除m,只要有一個(gè)數(shù)能整除,只要有一個(gè)數(shù)能整除m,則,則m就不是素?cái)?shù),否則就不是素?cái)?shù),否則m是素?cái)?shù)。具體流程如下:是素?cái)?shù)。具體流程如下: 案例分析案例分析m = Val(Text1.Text
47、) flag = True i=2i=m-1? flag = False Exit For i=i+1True (m Mod i) = 0? TrueFalse flag =true?TrueFalsem是素?cái)?shù)是素?cái)?shù)m不是素?cái)?shù)不是素?cái)?shù)False62【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù)v界面設(shè)計(jì):界面設(shè)計(jì):1個(gè)圖片框控件個(gè)圖片框控件1個(gè)命令按鈕控件個(gè)命令按鈕控件1個(gè)文本框個(gè)文本框1個(gè)框架個(gè)框架 案例設(shè)計(jì)案例設(shè)計(jì)圖片框圖片框文本框文本框命令按鈕命令按鈕框架框架63【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù)v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Capt
48、ion判斷素?cái)?shù)判斷素?cái)?shù)Frame1Caption判斷結(jié)果判斷結(jié)果Text1Text置空置空Command1Caption判斷素?cái)?shù)判斷素?cái)?shù)64【拓展案例拓展案例2 2】判斷素?cái)?shù)判斷素?cái)?shù)v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() Dim i%, m%, flag As Boolean m = Val(Text1.Text) flag = True For i = 2 To m - 1 If (m Mod i) = 0 Then flag = False: Exit For Next i If flag Then Picture1.Print m &
49、amp; 是素?cái)?shù)是素?cái)?shù) Else Picture1.Print m & 不是素?cái)?shù)不是素?cái)?shù) End IfEnd Sub假定是素?cái)?shù)假定是素?cái)?shù)m能被能被i整除,則整除,則m不是素不是素?cái)?shù),數(shù),flag為假,退出循環(huán)為假,退出循環(huán)根據(jù)根據(jù)flag的值輸?shù)闹递敵雠卸ńY(jié)果出判定結(jié)果65【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù) 拓展案例拓展案例3 求最大公約數(shù)求最大公約數(shù) 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 66【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v求兩個(gè)數(shù)的最大公約數(shù)程序運(yùn)求兩個(gè)數(shù)的最大公約數(shù)程序運(yùn)行初始界面如圖行初始界面如圖4.23所示
50、所示 。 v在文本框內(nèi)輸入兩個(gè)整數(shù);然在文本框內(nèi)輸入兩個(gè)整數(shù);然后單擊后單擊“計(jì)算計(jì)算”按鈕,右邊的按鈕,右邊的標(biāo)簽就會(huì)顯示這標(biāo)簽就會(huì)顯示這2個(gè)數(shù)的最大個(gè)數(shù)的最大公約數(shù),如圖公約數(shù),如圖4.24所示。所示。 案例描述案例描述圖圖4.23 程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.24 計(jì)算最大公約數(shù)計(jì)算最大公約數(shù) 67【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v用戶界面分析用戶界面分析標(biāo)簽標(biāo)簽Label用來(lái)顯示提示信息和計(jì)算結(jié)果用來(lái)顯示提示信息和計(jì)算結(jié)果文本框文本框TextBox用來(lái)輸入數(shù)據(jù)用來(lái)輸入數(shù)據(jù)命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作v程序分析程序分析“計(jì)
51、算計(jì)算”按鈕功能:使用輾轉(zhuǎn)相除法求最大公約數(shù)。按鈕功能:使用輾轉(zhuǎn)相除法求最大公約數(shù)?!扒宄宄卑粹o功能:清除已有數(shù)據(jù),等待輸入新的數(shù)據(jù)按鈕功能:清除已有數(shù)據(jù),等待輸入新的數(shù)據(jù)。 案例分析案例分析68【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v程序分析程序分析輾轉(zhuǎn)相除法輾轉(zhuǎn)相除法流程:流程:案例分析案例分析m = Val(Text1.Text)n = Val(Text2.Text) m n ? m = nn = r r 0 ? r = m Mod n n為最大公為最大公約數(shù)約數(shù)m、n交換交換 r = m Mod n TrueFalseTrueFalse69【拓展案例拓展案例3 3】求最
52、大公約數(shù)求最大公約數(shù)v界面設(shè)計(jì):界面設(shè)計(jì):4個(gè)標(biāo)簽控件個(gè)標(biāo)簽控件2個(gè)文本框控件個(gè)文本框控件2個(gè)命令按鈕控件個(gè)命令按鈕控件 案例設(shè)計(jì)案例設(shè)計(jì)標(biāo)簽標(biāo)簽命令按鈕命令按鈕文本框文本框標(biāo)簽標(biāo)簽70【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名稱屬性名稱屬性值屬性值Form1Caption計(jì)算最大公約數(shù)計(jì)算最大公約數(shù)Label1Caption第一個(gè)數(shù)第一個(gè)數(shù)Label2Caption第二個(gè)數(shù)第二個(gè)數(shù)Label3Caption最大公約數(shù)最大公約數(shù)Label4Caption置空置空BorderStyle1-Fixed SingleText1Text2Text
53、置空置空Command1Caption計(jì)算計(jì)算Command2Caption清除清除71【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() m = Val(Text1.Text) n = Val(Text2.Text) If m n Then t = m: m = n: n = t r = m Mod n Do While (r 0) m = n n = r r = m Mod n Loop Label4.Caption = Str(n)End Sub除數(shù)賦給被除數(shù)除數(shù)賦給被除數(shù)余數(shù)賦給除數(shù)余數(shù)賦給除數(shù)
54、新的余數(shù)新的余數(shù)余數(shù)余數(shù)r不等于不等于0就繼續(xù)循環(huán)就繼續(xù)循環(huán)保證保證m中放大數(shù)中放大數(shù)72【拓展案例拓展案例3 3】求最大公約數(shù)求最大公約數(shù)v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command2_Click() Text1.Text = Text2.Text = Label4.Caption = Text1.SetFocusEnd Sub73【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值拓展案例拓展案例4求自然對(duì)數(shù)底求自然對(duì)數(shù)底e的近似值的近似值案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 74【拓展案例拓展案例4 4】
55、求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值程的近似值程序運(yùn)行初始界面如圖序運(yùn)行初始界面如圖4.26所所示。示。v首先輸入首先輸入計(jì)算誤差計(jì)算誤差,然后單,然后單擊擊“計(jì)算計(jì)算”按鈕,計(jì)算結(jié)果按鈕,計(jì)算結(jié)果顯示在標(biāo)簽上,如圖顯示在標(biāo)簽上,如圖4.27所所示。示。案例描述案例描述圖圖4.26 程序運(yùn)行初始界面程序運(yùn)行初始界面圖圖4.27顯示計(jì)算結(jié)果顯示計(jì)算結(jié)果75【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v用戶界面分析用戶界面分析標(biāo)簽標(biāo)簽Label用來(lái)顯示提示信息和計(jì)算結(jié)果用來(lái)顯示提示信息和計(jì)算結(jié)果文本框文本框TextBox
56、用來(lái)輸入誤差數(shù)據(jù)用來(lái)輸入誤差數(shù)據(jù)命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作v程序分析程序分析求求e的近似值的公式:的近似值的公式:案例分析案例分析11111111!2!nieni 實(shí)質(zhì)是計(jì)算累加和,每次累實(shí)質(zhì)是計(jì)算累加和,每次累加的項(xiàng)值是在上一項(xiàng)的基礎(chǔ)加的項(xiàng)值是在上一項(xiàng)的基礎(chǔ)上按規(guī)律計(jì)算出來(lái)的;累加上按規(guī)律計(jì)算出來(lái)的;累加的項(xiàng)數(shù)取決于設(shè)置的計(jì)算誤的項(xiàng)數(shù)取決于設(shè)置的計(jì)算誤差,當(dāng)某項(xiàng)的值小于誤差值差,當(dāng)某項(xiàng)的值小于誤差值時(shí),停止累加時(shí),停止累加。76【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v程序分析程序分析“計(jì)算計(jì)算”按鈕功能按鈕功能: 計(jì)算計(jì)算
57、e值,其流程值,其流程 圖如下:圖如下:案例分析案例分析 j = 0:e=0: t=1 e = e + 1 / t1 / t er? j = j + 1 t = t * jer = Val(Text1.Text) TrueFalse輸出輸出e值值77【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v界面設(shè)計(jì):界面設(shè)計(jì):2個(gè)標(biāo)簽控件個(gè)標(biāo)簽控件1個(gè)文本框控件個(gè)文本框控件1個(gè)命令按鈕控件個(gè)命令按鈕控件 案例設(shè)計(jì)案例設(shè)計(jì)標(biāo)簽標(biāo)簽命令按鈕命令按鈕文本框文本框78【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v屬性設(shè)置屬性設(shè)置案例設(shè)計(jì)案例設(shè)計(jì)對(duì)象對(duì)象屬性名
58、稱屬性名稱屬性值屬性值Form1Caption計(jì)算計(jì)算e的近似值的近似值Label1Caption置空置空Label2Caption輸入誤差值輸入誤差值Text1Text置空置空Command1Caption計(jì)算計(jì)算79【拓展案例拓展案例4 4】求自然對(duì)數(shù)的底求自然對(duì)數(shù)的底e的近似值的近似值v代碼設(shè)計(jì)代碼設(shè)計(jì) 案例設(shè)計(jì)案例設(shè)計(jì)Private Sub Command1_Click() Dim j%, t&, e! j = 0 e = 0 t = 1 er = Val(Text1.Text) Do While 1 / t er e = e + 1 / t j = j + 1 t = t *
59、 j Loop Label1.Caption = 經(jīng)過(guò)經(jīng)過(guò) & Str(j) & 項(xiàng)項(xiàng)計(jì)算計(jì)算 & vbCrLf & e的值是:的值是: & Str(e)End Sub階乘階乘下一項(xiàng)的階乘下一項(xiàng)的階乘獲得誤差值獲得誤差值80【拓展案例拓展案例5 5】百錢買百雞百錢買百雞 拓展案例拓展案例5百錢買百雞百錢買百雞 案例演示案例演示 案例描述案例描述 案例分析案例分析 案例設(shè)計(jì)案例設(shè)計(jì) 81【拓展案例拓展案例5 5】百錢買百雞百錢買百雞v百錢買百雞問(wèn)題:假設(shè)公雞每百錢買百雞問(wèn)題:假設(shè)公雞每只只2元,母雞每只元,母雞每只3元,小雞每元,小雞每只只0.5元?,F(xiàn)有元
60、?,F(xiàn)有100元錢,要求元錢,要求買買100只雞,問(wèn)買公雞、母雞、只雞,問(wèn)買公雞、母雞、小雞各多少只?有多少可能的小雞各多少只?有多少可能的購(gòu)雞方案?購(gòu)雞方案?v求解百元買百雞問(wèn)題的程序運(yùn)求解百元買百雞問(wèn)題的程序運(yùn)行初始界面如圖行初始界面如圖4.29所示。所示。v單擊單擊“計(jì)算計(jì)算”按鈕,所有可能按鈕,所有可能的購(gòu)雞方案顯示在窗體上,如的購(gòu)雞方案顯示在窗體上,如圖圖4.30所示。所示。 案例描述案例描述圖圖4.29 程序運(yùn)行初始界面程序運(yùn)行初始界面 圖圖4.30 購(gòu)雞方案購(gòu)雞方案 82【拓展案例拓展案例5 5】百錢買百雞百錢買百雞v用戶界面分析用戶界面分析命令按鈕命令按鈕Command用來(lái)執(zhí)行有關(guān)操作用來(lái)執(zhí)行有關(guān)操作窗體窗體用于打印結(jié)果用于打印結(jié)果v程序分析程序分析可以采用可以采用窮舉法窮舉法找出所有可能的方案,即一一列舉各種找出
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于商鋪合同范本
- 第二單元第2節(jié) 人機(jī)的互動(dòng) 教學(xué)設(shè)計(jì) -2023-2024學(xué)年粵教清華版初中信息技術(shù)七年級(jí)下冊(cè)
- 公司自主物業(yè)合同范本
- 修理公司合同范本
- 2024遼寧興灝城市建設(shè)集團(tuán)有限公司面向社會(huì)公開(kāi)招聘工作人員10人筆試參考題庫(kù)附帶答案詳解
- 公傷勞動(dòng)合同范本
- 2000勞務(wù)合同范本
- 劇組道具購(gòu)置合同范本
- 北京室內(nèi)施工合同范本
- 勞務(wù)備案合同范本北京
- 學(xué)校托管工作方案
- 腎性高血壓的護(hù)理查房
- 醫(yī)療巡視與巡查制度
- 第11課 社會(huì)歷史的主體-【中職專用】2024年中職思想政治《哲學(xué)與人生》金牌課件(高教版2023·基礎(chǔ)模塊)
- 六年級(jí)成長(zhǎng)冊(cè)課件
- 大學(xué)創(chuàng)意寫作(葛紅兵第二版)課件全套 第1-8章 科學(xué)活動(dòng)與科技結(jié)構(gòu)-廣告文案與軟文
- 第一單元 歌唱祖國(guó)-《 中華人民共和國(guó)國(guó)歌》課件 2023-2024學(xué)年人音版初中音樂(lè)七年級(jí)上冊(cè)
- 2024-2030年中國(guó)腎性貧血療法行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 辦公家具采購(gòu)項(xiàng)目質(zhì)量保證售后服務(wù)承諾書(shū)
- 2024年時(shí)政試題庫(kù)(b卷)
- 2024助貸委托服務(wù)協(xié)議合同模板
評(píng)論
0/150
提交評(píng)論