VB控制結(jié)構(gòu)_ForWhileDo_第1頁(yè)
VB控制結(jié)構(gòu)_ForWhileDo_第2頁(yè)
VB控制結(jié)構(gòu)_ForWhileDo_第3頁(yè)
VB控制結(jié)構(gòu)_ForWhileDo_第4頁(yè)
VB控制結(jié)構(gòu)_ForWhileDo_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1v提要提要 掌握循環(huán)結(jié)構(gòu)基本知識(shí) For Next While Wend Do Loop 掌握程序控制結(jié)構(gòu)編程方法v重點(diǎn)重點(diǎn) For Next While Wend Do Loop第第4章章 程序控制結(jié)構(gòu) 2問題問題: 產(chǎn)生產(chǎn)生15個(gè)個(gè)1,40隨機(jī)整數(shù),并用隨機(jī)整數(shù),并用Print方法輸出方法輸出.a = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Print aa = Int(Rnd * (40 - 1 + 1) + 1)Prin

2、t a4.7.3 循循 環(huán)環(huán) 結(jié)結(jié) 構(gòu)構(gòu)開始開始結(jié)束結(jié)束T0 初值初值終值終值 ( 終值終值=0 死循環(huán)死循環(huán) 當(dāng)循環(huán)終值是一個(gè)變量時(shí),在第一次運(yùn)行時(shí)取走當(dāng)循環(huán)終值是一個(gè)變量時(shí),在第一次運(yùn)行時(shí)取走該變量中的值后,該變量中的值即便有修改,但該變量中的值后,該變量中的值即便有修改,但不再影響循環(huán)節(jié)奏。不再影響循環(huán)節(jié)奏。M=5For I=1 To M M=M+1 print I,MNext I 即即: For I=1 To 5 在循環(huán)體內(nèi),循環(huán)變量可多次引用;但最好不要對(duì)在循環(huán)體內(nèi),循環(huán)變量可多次引用;但最好不要對(duì)其賦值,否則影響原來的循環(huán)控制規(guī)律。其賦值,否則影響原來的循環(huán)控制規(guī)律。For I=1

3、 To 5 I=I+2 Print INext I For I=1 To 5 I=I-1 Print INext I 輸出I=?輸出I=?【例例4-3】編程求自然數(shù)編程求自然數(shù)10的階乘。的階乘。Private sub Form_Click( ) Dim I% , S%, T% T為每一項(xiàng)為每一項(xiàng) S=1 :T=1 For Next Print “S=”;SEnd Sub For I I=1 To 10 Step 1 S=S*T T=T+1Next I IS = S * I I此時(shí),T=I?分析分析: 每一項(xiàng)和每次相乘的積都是變化量每一項(xiàng)和每次相乘的積都是變化量因此,需要兩個(gè)變量因此,需要兩個(gè)

4、變量 用用T表示每一項(xiàng)的值表示每一項(xiàng)的值:T=T+1 用用S表示累加之和表示累加之和:S=S*T 循環(huán)終止條件循環(huán)終止條件: 循環(huán)次數(shù)循環(huán)次數(shù)100 初始化初始化: S=1【例例4-3】編程求自然數(shù)編程求自然數(shù)n的階乘。的階乘。Private sub Form_Click( ) Dim I% , S%, n% S=1 For I=1 To 10 Step 1 S=S* I Next I Print “S=”;SEnd Sub n =InputBox(“n=”)n+ ) 1(1.431321211nn設(shè)設(shè)s=123n ,求求s不大于不大于6000時(shí)最大的時(shí)最大的n和和s.思思 考:考:思考思考:

5、 這是連乘器?加法器?計(jì)數(shù)器?這是連乘器?加法器?計(jì)數(shù)器?循環(huán)次數(shù)循環(huán)次數(shù)能否能否確定?確定?循環(huán)終止條件是什么?循環(huán)終止條件是什么?1. ForNext控制結(jié)構(gòu)能否解決?控制結(jié)構(gòu)能否解決?( (一般用于循環(huán)次數(shù)未知一般用于循環(huán)次數(shù)未知) ) 討論討論While-Wend 進(jìn)入循環(huán)體之前,應(yīng)正確設(shè)置循環(huán)條件。如果條件進(jìn)入循環(huán)體之前,應(yīng)正確設(shè)置循環(huán)條件。如果條件一開始就不成立一開始就不成立(False),則一次循環(huán)體也不執(zhí)行。,則一次循環(huán)體也不執(zhí)行。 循環(huán)體內(nèi)必須有修改循環(huán)條件的語句,確保循環(huán)體循環(huán)體內(nèi)必須有修改循環(huán)條件的語句,確保循環(huán)體能正常執(zhí)行和正常結(jié)束。能正常執(zhí)行和正常結(jié)束。 先判斷條件,

6、后執(zhí)行循環(huán)體先判斷條件,后執(zhí)行循環(huán)體Do While|Until 條件條件 語句塊語句塊 Exit Do 語句塊語句塊 Loop 先執(zhí)行循環(huán)體,后判斷條件先執(zhí)行循環(huán)體,后判斷條件Do 語句塊語句塊 Exit Do 語句塊語句塊 Loop While|Until 條件條件 ( (一般用于循環(huán)次數(shù)未知一般用于循環(huán)次數(shù)未知) )直到型循環(huán)直到型循環(huán)代碼代碼2:Private Sub Form_Click() Dim i%, s& s = 1 : i=1 Do While s = 6000 s = s * i i = i + 1 Loop Print i - 2 , s /(i-1)End S

7、ub代碼代碼4:Private Sub Form_Click() Dim i%, s& s = 1: i=1 Do s = s * i i = i + 1 Loop Print i - 2 , s /(i-1)End Sub問題解決問題解決:代碼代碼1:Private Sub Form_Click() Dim i%, s& s = 1: i=1 While s=6000 s = s * i i = i + 1 Wend Print i - 2 , s /(i-1)End Sub代碼代碼3:Private Sub Form_Click() Dim i%, s& s = 1

8、 : i=1 Do s = s * i i = i + 1 Loop While s = 6000 Print i - 2 , s /(i-1)End Sub設(shè)設(shè)s=123n ,求求s不大于不大于6000時(shí)最大的時(shí)最大的n和和s.思考思考: :從鍵盤上輸入字符從鍵盤上輸入字符, ,以以“? ?”結(jié)束結(jié)束, ,并對(duì)輸入的并對(duì)輸入的字符分別統(tǒng)計(jì)字母和數(shù)字的個(gè)數(shù)。字符分別統(tǒng)計(jì)字母和數(shù)字的個(gè)數(shù)。思路思路:1.輸入一個(gè)字符,進(jìn)行判斷是否結(jié)束?輸入一個(gè)字符,進(jìn)行判斷是否結(jié)束?2.判斷字符類型,分類統(tǒng)計(jì)個(gè)數(shù),轉(zhuǎn)到判斷字符類型,分類統(tǒng)計(jì)個(gè)數(shù),轉(zhuǎn)到第第1步。步。Private Sub Form_Click( )

9、輸入一個(gè)字符輸入一個(gè)字符ch,判斷并分類統(tǒng)計(jì),判斷并分類統(tǒng)計(jì) 以以“?”結(jié)束結(jié)束While Wend End Sub整理課件應(yīng)用應(yīng)用1: 我國(guó)有我國(guó)有13億人口,按人口年增長(zhǎng)億人口,按人口年增長(zhǎng)0.8%計(jì)算計(jì)算,多少年后我國(guó)人口超過多少年后我國(guó)人口超過26億。億。 x = 13 n = 0While x = 26 n = n + 1 x = x +x* 0.008 Wend Print n, xx = 1300000000 n = 0While x = 2600000000# n = n + 1 x = x + x * 0.008 Wend Print n, x整理課件應(yīng)用應(yīng)用2: 小紅今年小

10、紅今年12歲歲,父親比她大父親比她大30歲,編程計(jì)歲,編程計(jì)算父親在幾年后比她年齡大一倍,那時(shí)父算父親在幾年后比她年齡大一倍,那時(shí)父女的年齡各為多少?女的年齡各為多少?Private Sub Form_Click() Dim age As Integer Dim n As Integer age = 12 While age* 2 age + 30 age = age + 1 Wend Print 經(jīng)過經(jīng)過; age-12; 年年 Print 小紅父女的年齡分別是小紅父女的年齡分別是:; age+30; 和和;ageEnd Sub整理課件課堂思考:課堂思考:l有一段樓梯有一段樓梯, 若每步上若

11、每步上2階階, 則最后剩下則最后剩下1階,階,若每步上若每步上3階階, 則最后剩下則最后剩下2階階, 若每步上若每步上5階階,則最后剩下則最后剩下4階階, 若每步上若每步上6階階,則最后剩下則最后剩下5階階,只有每步上只有每步上7階,正好階,正好1階不剩。請(qǐng)問,這段階不剩。請(qǐng)問,這段樓梯共有多少階?樓梯共有多少階? n=7Do n = n + 1Loop Until (n Mod 2 = 1) And (n Mod 3 = 2) And (n Mod 5 = 4) And (n Mod 6 = 5) And (n Mod 7 = 0)思考思考:循環(huán)次數(shù)已知問題循環(huán)次數(shù)已知問題,能否使用能否使用

12、While或或Do呢呢?OK編程序計(jì)算:編程序計(jì)算:s=123410 。Private sub form_click( ) Dim i%, s& s=1 For i=1 to 10 step 1 s=s*i Next i Print s=; sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 While i=10 s=s*I i=i+1 Wend Print s=;sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 do While i=10 s=s*

13、i i=i+1 Loop Print s=; sEnd sub Private sub form_click( ) Dim i%, s& s=1 : i=1 do s=s*I i=i+1 Loop While i10整理課件課本課本P3 給定兩個(gè)正整數(shù)給定兩個(gè)正整數(shù)m和和n(mn),求它們的求它們的最大公約數(shù)和最小公倍數(shù)。最大公約數(shù)和最小公倍數(shù)。課課 后后 作作 業(yè)業(yè)輾轉(zhuǎn)相除法輾轉(zhuǎn)相除法, 課本課本P3 最小公倍數(shù)最小公倍數(shù)=兩個(gè)正整數(shù)的乘積兩個(gè)正整數(shù)的乘積/最大公約數(shù)最大公約數(shù).整理課件輾轉(zhuǎn)相除法:輾轉(zhuǎn)相除法:求余數(shù)求余數(shù): m除以除以n,并令,并令r為所得余數(shù);為所得余數(shù);余數(shù)為余

14、數(shù)為0?: 若若r=0,算法結(jié)束,算法結(jié)束,n即為答案;否則執(zhí)行即為答案;否則執(zhí)行;互換互換: 置置mn 和和 nr,轉(zhuǎn)向,轉(zhuǎn)向繼續(xù)執(zhí)行繼續(xù)執(zhí)行。NYrm除以除以n的余數(shù)的余數(shù)r = 0?n r輸出輸出n的值的值輸入正整數(shù)輸入正整數(shù)m和和n開始開始結(jié)束結(jié)束m n例例1-3: 給定兩個(gè)正整數(shù)給定兩個(gè)正整數(shù)m和和n,求最大公約數(shù)?,求最大公約數(shù)?Exit語句語句多種形式多種形式 作用:作用:End 語句語句多種形式多種形式 作用:作用:With語句語句作用作用等價(jià)等價(jià)28Private Sub Form_Click( ) For i=0 To 50 i=i+3 n=n+1 if i10 then

15、Exit For Next i Print n=; nEnd Sub1.當(dāng)當(dāng)i=0時(shí)時(shí), i=i+3=3 , n=12.當(dāng)當(dāng)i=4時(shí)時(shí), i=i+3=7 , n=23.當(dāng)當(dāng)i=8時(shí)時(shí), i=i+3=11, n=3,循環(huán)結(jié)束循環(huán)結(jié)束29Private Sub Form_Click() Dim num% num = 0 While num = 2 num = num + 1 Print num; WendEnd Sub1.當(dāng)當(dāng)num=0時(shí)時(shí), num=num+1=12.當(dāng)當(dāng)num=1時(shí)時(shí), num=num+1=23.當(dāng)當(dāng)num=2時(shí)時(shí), num=num+1=330Private Sub Form_

16、Click() Dim a%, b% a = 0: b = 1 Do a = a + b b = b + 1 Loop While a 10 Print a; bEnd Suba=0:b=11.當(dāng)當(dāng)a=0時(shí)時(shí),a=1, b=22.當(dāng)當(dāng)a=1時(shí)時(shí),a=3, b=33.當(dāng)當(dāng)a=3時(shí)時(shí),a=6, b=44.當(dāng)當(dāng)a=6時(shí)時(shí),a=10, b=5 循環(huán)結(jié)束循環(huán)結(jié)束31Private Sub Form_Click( ) Dim str1 As String Dim letter As Integer Dim number As Integer Dim other As Integer Dim n As In

17、teger Letter=0: number=0: other=0 Str1=InputBox(“輸入字符串輸入字符串=”,”輸入框輸入框”,”ab32-c,4d_5”) For n=1 to Len(str1) Select Case Mid(Str1,n,1) Case “A” to “Z”, “a” to “z” Letter=letter+1 Case 1 to 9 Number=number+1 Case else Other=other+1 End Select Next n End Sub 32 跳轉(zhuǎn)跳轉(zhuǎn): Goto 標(biāo)號(hào)標(biāo)號(hào)1.當(dāng)當(dāng)n=1時(shí)時(shí), sum=sum+n=1, n+1=22.當(dāng)當(dāng)n=2時(shí)時(shí), sum=sum+n=3, n=n+1=33.當(dāng)當(dāng)n=3時(shí)時(shí), sum=sum+n=6, n=n+1=4, 跳轉(zhuǎn)結(jié)束跳轉(zhuǎn)結(jié)束For 循環(huán)變量循環(huán)變量=初值初值 To 終值終值

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論