第4章 結(jié)構(gòu)化程序設(shè)計_第1頁
第4章 結(jié)構(gòu)化程序設(shè)計_第2頁
第4章 結(jié)構(gòu)化程序設(shè)計_第3頁
第4章 結(jié)構(gòu)化程序設(shè)計_第4頁
第4章 結(jié)構(gòu)化程序設(shè)計_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-5-252022-5-25Visual BasicVisual Basic 程序設(shè)計實例教程程序設(shè)計實例教程第第4章章結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計主講:主講:XXXXTEL:XXXX本章目錄本章目錄2第第4章章 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計4.1 結(jié)構(gòu)化程序設(shè)計導(dǎo)學(xué)實例結(jié)構(gòu)化程序設(shè)計導(dǎo)學(xué)實例4.2 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計 4.3 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計4.4 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計4.5 綜合應(yīng)用綜合應(yīng)用4.6 擴展與提高擴展與提高本章目錄本章目錄34.1 結(jié)構(gòu)化程序設(shè)計導(dǎo)學(xué)實例結(jié)構(gòu)化程序設(shè)計導(dǎo)學(xué)實例 結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是:順序結(jié)構(gòu)、結(jié)構(gòu)化程序

2、設(shè)計的三種基本結(jié)構(gòu)是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 【例例4.1】循環(huán)輸入半徑求】循環(huán)輸入半徑求2個圓的面積。個圓的面積。(1)按書寫順序執(zhí)行就是順序結(jié)構(gòu);)按書寫順序執(zhí)行就是順序結(jié)構(gòu);(2)用)用 Do While i2 LOOP 構(gòu)成的循環(huán)結(jié)構(gòu),構(gòu)成的循環(huán)結(jié)構(gòu),控制程序兩次接收圓的半徑并計算面積控制程序兩次接收圓的半徑并計算面積 ;(3)用)用If R 0 Then else end if構(gòu)成的選構(gòu)成的選擇結(jié)構(gòu)處理半徑小于擇結(jié)構(gòu)處理半徑小于0時的情況。時的情況。 VB具有結(jié)構(gòu)化程序設(shè)計的三種程序控制結(jié)構(gòu),具有結(jié)構(gòu)化程序設(shè)計的三種程序控制結(jié)構(gòu),它們是程序設(shè)計的基礎(chǔ)。它們

3、是程序設(shè)計的基礎(chǔ)。本章目錄本章目錄44.2 順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)程序設(shè)計4.2.1 常用流程圖符號常用流程圖符號 流程圖是用一些特定的圖形符號和必要的文字來流程圖是用一些特定的圖形符號和必要的文字來描述解題步驟的圖示。描述解題步驟的圖示。 4.2.2 順序結(jié)構(gòu)的構(gòu)成順序結(jié)構(gòu)的構(gòu)成語句按出現(xiàn)的先后次序執(zhí)行語句按出現(xiàn)的先后次序執(zhí)行本章目錄本章目錄5在順序結(jié)構(gòu)中實現(xiàn)的在順序結(jié)構(gòu)中實現(xiàn)的常見常見功能和相應(yīng)的語句有功能和相應(yīng)的語句有: 程序結(jié)束語句;程序結(jié)束語句; 注釋語句;注釋語句; 賦值語句;賦值語句; 數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出輸出:l 文本框控件、標(biāo)簽控件、文本框控件、標(biāo)簽控件、l InputB

4、ox函數(shù)、函數(shù)、MsgBox函數(shù)和過程函數(shù)和過程l Print方法等來實現(xiàn)。方法等來實現(xiàn)。 本章目錄本章目錄64.2.3 注釋與結(jié)束語句注釋與結(jié)束語句 (1) 注釋語句注釋語句 要提高程序可維護(hù)性和可讀性,需要在程序的要提高程序可維護(hù)性和可讀性,需要在程序的適當(dāng)位置加上必要的注釋。適當(dāng)位置加上必要的注釋。格式:格式: Rem 注釋內(nèi)容注釋內(nèi)容 或或 注釋內(nèi)容注釋內(nèi)容注釋語句僅對程序起注釋作用,是非執(zhí)行語句;注釋語句僅對程序起注釋作用,是非執(zhí)行語句;注釋語言可獨占一行,也可放在語句的后面;注釋語言可獨占一行,也可放在語句的后面;Rem與注釋內(nèi)容之間要加一個空格,通常獨占與注釋內(nèi)容之間要加一個空格

5、,通常獨占1行,若在其它語句行后須使用冒號行,若在其它語句行后須使用冒號“:”分隔。分隔。例: Rem 這是一個求圓的面積的程序 a = 歡迎使用! 把字符串賦給變量a b = 謝謝使用! : Rem 把字符串賦給變量b本章目錄本章目錄7(2) 結(jié)束語句結(jié)束語句功能:結(jié)束一個程序的執(zhí)行,重置所有變量。功能:結(jié)束一個程序的執(zhí)行,重置所有變量。格式:格式:End例:例: Private Sub Command1_Click() Print 謝謝使用!謝謝使用! End End Sub 當(dāng)單擊當(dāng)單擊Command1,在窗體顯示,在窗體顯示“謝謝使用!謝謝使用!”,并結(jié)束程序的運行。并結(jié)束程序的運行。

6、 End語句在不同的環(huán)境下可有別的用途。語句在不同的環(huán)境下可有別的用途。 例如:例如: End Sub 結(jié)束一個結(jié)束一個Sub過程過程 End If 結(jié)束一個結(jié)束一個If語句塊語句塊本章目錄本章目錄84.2.4 Print方法及其相關(guān)函數(shù)方法及其相關(guān)函數(shù) 4.2.4.1 Print方法方法功能:在指定對象上輸出表達(dá)式的值。功能:在指定對象上輸出表達(dá)式的值。格式:格式:對象名對象名.Print表達(dá)式表表達(dá)式表,|; (1) 對象:窗體、圖片框、立即窗口、打印機等,省略為窗體;對象:窗體、圖片框、立即窗口、打印機等,省略為窗體;(2) 表達(dá)式表:是用逗號或分號分隔的若干表達(dá)式;表達(dá)式表:是用逗號或

7、分號分隔的若干表達(dá)式;(3) 逗號分隔:顯示定位在下一個打印區(qū)(每區(qū)逗號分隔:顯示定位在下一個打印區(qū)(每區(qū)14列)。列)。(4) 分號分隔:顯示定位在上一個值之后(數(shù)據(jù)值后加一個空分號分隔:顯示定位在上一個值之后(數(shù)據(jù)值后加一個空 格,格, 字符后無空格)。字符后無空格)。(5) 省略分隔符:自動換行。省略分隔符:自動換行。Print 25 * 10 + 2; aa, bb; cc, 123 Print 謝謝使用!謝謝使用! Picture1.Print 你好!你好!本章目錄本章目錄94.2.4.2 與與Print方法有關(guān)的函數(shù)方法有關(guān)的函數(shù)(1) Tab( )函數(shù)函數(shù)格式:格式:Tab(n)

8、功能:從最左端開始計算的第功能:從最左端開始計算的第n列上顯示數(shù)據(jù)。若當(dāng)列上顯示數(shù)據(jù)。若當(dāng)前顯示位置已經(jīng)超過前顯示位置已經(jīng)超過n,自動下移一行。,自動下移一行。(2)Spc()函數(shù)函數(shù)格式:格式:Spc(n)功能:在顯示下一個數(shù)據(jù)之前插入功能:在顯示下一個數(shù)據(jù)之前插入n個空格。個空格?!纠?.2】編程顯示表4-2中某學(xué)校部分學(xué)生的情況數(shù)據(jù)。本章目錄本章目錄104.2.5.1 InputBox4.2.5.1 InputBox函數(shù)函數(shù) 功能:打開一個對話框,等待用戶輸入,并返回功能:打開一個對話框,等待用戶輸入,并返回輸入輸入值(值(字符串類型)。字符串類型)。格式:格式:InputBoxInpu

9、tBox(提示提示,標(biāo)題標(biāo)題,默認(rèn)值默認(rèn)值,x坐標(biāo)位坐標(biāo)位置置,y坐標(biāo)位置坐標(biāo)位置)4.2.5 人機交互函數(shù)和過程 本章目錄本章目錄 注意注意:提示項提示項不能省略。不能省略。若要多行提示,可在每行若要多行提示,可在每行行末加回車換行行末加回車換行vbCrLfvbCrLf?;蚧駽hr(13)+ Chr(10) 本章目錄本章目錄114.2.5.2 4.2.5.2 MsgBox()函數(shù)功能:用消息框向用戶發(fā)布信息并要求用戶響應(yīng), 返回值為用戶所選按鈕的代碼值(整型)。格式:變量% = MsgBox(提示,按鈕,標(biāo)題)a = MsgBox( 此操作將使計算機完蛋此操作將使計算機完蛋 + _ Chr(

10、13) + Chr(10) + 繼續(xù)嗎?繼續(xù)嗎?, _2 + 16 + 0, 例例)按鈕圖標(biāo)組合按鈕圖標(biāo)組合可據(jù)可據(jù)4-4表做表做出多種選擇出多種選擇 a值(函數(shù)返值(函數(shù)返值)見值)見4-5表表本章目錄本章目錄12表4-4 “按鈕”參數(shù)取值及含義第第3個按鈕為默認(rèn)個按鈕為默認(rèn)512VBDefaultButton3第第2個按鈕為默認(rèn)個按鈕為默認(rèn) 256VBDefaultButton2第第1個按鈕為默認(rèn)個按鈕為默認(rèn) 0VBDefaultButton1默認(rèn)默認(rèn)按鈕按鈕 信息圖標(biāo)信息圖標(biāo) 64VBInformation警告信息圖標(biāo)警告信息圖標(biāo) 48VBExclamation詢問信息圖標(biāo)詢問信息圖標(biāo)

11、32VBQuestion關(guān)鍵信息圖標(biāo)關(guān)鍵信息圖標(biāo) 16VBCritical圖標(biāo)圖標(biāo)類型類型 重試、取消按鈕重試、取消按鈕 5VBRetryCancel是、否按鈕是、否按鈕 4VBYesNo是、否、取消按鈕是、否、取消按鈕 3VBYesNoCancel終止、重試、忽略按鈕終止、重試、忽略按鈕 2VBAboutRetryIgnore確定、取消按鈕確定、取消按鈕 1VBOkCancel確定按鈕確定按鈕 0VBOkOnly按鈕按鈕數(shù)目數(shù)目 描描 述述值值內(nèi)內(nèi) 部部 常常 數(shù)數(shù)分組分組 本章目錄本章目錄本章目錄本章目錄13表4-5 MsgBox函數(shù)返回值本章目錄本章目錄內(nèi)部常數(shù)返回值被單擊的按鈕vbOk

12、1確定vbCancel2取消vbAbort3終止vbRetry4重試vbIgnore5忽略vbYes6是vbNo7否4.2.5.3 MsgBox過程過程 功能:產(chǎn)生一個信息提示框,無返值。格式:MsgBox 提示,按鈕,標(biāo)題說明:各參數(shù)與MsgBox函數(shù)同,但無返值,用于簡 單的信息提示。本章目錄本章目錄144.2.6 順序結(jié)構(gòu)程序設(shè)計舉例順序結(jié)構(gòu)程序設(shè)計舉例 【例例4.3】輸入每戶的用水噸數(shù)、用電度數(shù)】輸入每戶的用水噸數(shù)、用電度數(shù)和煤氣立方數(shù),通過計算后,顯示水費、電和煤氣立方數(shù),通過計算后,顯示水費、電費及煤氣費。費及煤氣費。(1) 在窗體放置一個命令按鈕用以啟動程序在窗體放置一個命令按鈕

13、用以啟動程序運行,設(shè)置其運行,設(shè)置其Caption屬性為屬性為 “計算水電計算水電煤氣費用煤氣費用”。設(shè)置窗體的。設(shè)置窗體的Caption屬性為屬性為“利用對話框進(jìn)行順序結(jié)構(gòu)程序設(shè)計實例利用對話框進(jìn)行順序結(jié)構(gòu)程序設(shè)計實例”;(2)用用Inputbox()實現(xiàn)用戶數(shù)據(jù)輸入;實現(xiàn)用戶數(shù)據(jù)輸入;(3)用用Msgbox實現(xiàn)數(shù)據(jù)信息輸出。實現(xiàn)數(shù)據(jù)信息輸出。本章目錄本章目錄154.3 選擇結(jié)構(gòu)程序設(shè)計選擇結(jié)構(gòu)程序設(shè)計u計算機要處理的問題往往復(fù)雜多變,僅采計算機要處理的問題往往復(fù)雜多變,僅采用順序結(jié)構(gòu)是不夠的。用順序結(jié)構(gòu)是不夠的。u必須利用選擇結(jié)構(gòu)等來解決實際應(yīng)用中的必須利用選擇結(jié)構(gòu)等來解決實際應(yīng)用中的各種

14、問題,使計算機具有解題智能。各種問題,使計算機具有解題智能。uVB提供了多種形式的選擇結(jié)構(gòu)語句來對情提供了多種形式的選擇結(jié)構(gòu)語句來對情況進(jìn)行判斷,根據(jù)判斷結(jié)果,做出不同反應(yīng)。況進(jìn)行判斷,根據(jù)判斷結(jié)果,做出不同反應(yīng)。主要有主要有If If語句和語句和SelectSelect語句。語句。本章目錄本章目錄164.3.1 If 語句 4.3.1.14.3.1.1 單分支結(jié)構(gòu)單分支結(jié)構(gòu) IfThen格式格式1:If Then 語句語句格式格式2:If If Then Then 語句塊語句塊 End IfEnd If功能:當(dāng)表達(dá)式的值為真功能:當(dāng)表達(dá)式的值為真True或非零時,執(zhí)行或非零時,執(zhí)行Then后

15、面的語句。否則不做任何操作。后面的語句。否則不做任何操作。表達(dá)式:關(guān)系表達(dá)式、邏輯表達(dá)式,算術(shù)表達(dá)式。表達(dá)式:關(guān)系表達(dá)式、邏輯表達(dá)式,算術(shù)表達(dá)式。語句:語句:格式格式1中的語句也中的語句也可以是多條語句,但各語句可以是多條語句,但各語句 必須寫在一行上且用冒號分隔。必須寫在一行上且用冒號分隔。 本章目錄本章目錄17【例【例4.4】閱讀下面程序,說明其功】閱讀下面程序,說明其功Private Sub Command1_Click() X = Val(InputBox(請輸入請輸入X=) Y = Val(InputBox(請輸入請輸入Y=) If X Y Then T = X X = Y Y =

16、T End If Print X, YEnd Sub或或 If x Y Then M = X Else M = Y End If Print X; 和和; Y; 較大者為較大者為; MEnd Sub測試數(shù)據(jù):x30y5M?本章目錄本章目錄20【例【例4.6】計算分段函數(shù)的值?!坑嬎惴侄魏瘮?shù)的值。Private Sub Command1_Click() x = Val(InputBox(請輸入請輸入x=) If x = 0 Then y = 5 * x + 3 Else y = -10 End If Print y=; yEnd Sub本章目錄本章目錄214.3.1.3 多分支結(jié)構(gòu) IfThen

17、ElseIfIfThenElseIf語句語句格式:格式: If If 表達(dá)式表達(dá)式1 Then Then 語句塊語句塊1ElseIfElseIf 表達(dá)式表達(dá)式2 Then Then 語句塊語句塊2 Else Else 語句塊語句塊 n+1 End IfEnd If本章目錄本章目錄功能:不論幾個分支,依次判斷,當(dāng)某條件滿足,執(zhí)功能:不論幾個分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,且有且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。注意:注意: ElseIf不能寫成不

18、能寫成 Else If。elseifelseifelse本章目錄本章目錄22例如:計算符號函數(shù)的值:例如:計算符號函數(shù)的值: 1 (x 0)y = 0 (x =0) -1 (x 0 Then y = 1 ElseIf x = 0 Then y = 0Else y = -1End If本章目錄本章目錄23If語句的嵌套是指語句的嵌套是指If或或Else后面的語句塊中又包含后面的語句塊中又包含If語語4.3.1.4 If語句的嵌套 本章目錄本章目錄格式格式1 1:If If Then 1 Then If If Then2 Then Endif Endif End IfEnd If格式格式2 2:I

19、f If Then 1 Then ElseElse If If Then2 Then Endif Endif End IfEnd If本章目錄本章目錄24【例例4.7】我國職工工資的應(yīng)稅收入按】我國職工工資的應(yīng)稅收入按如下規(guī)定扣除:如下規(guī)定扣除:2000以內(nèi)不扣稅;以內(nèi)不扣稅; 2000-3000元,扣除稅款元,扣除稅款5%;3000-4000元,扣除稅款元,扣除稅款10%;4000-5000元,扣除稅款元,扣除稅款15%;超;超過過5000元,扣除稅款元,扣除稅款20%。編程實。編程實現(xiàn):輸入一個職工的應(yīng)稅收入,計算現(xiàn):輸入一個職工的應(yīng)稅收入,計算實發(fā)工資和應(yīng)扣稅款。實發(fā)工資和應(yīng)扣稅款。本章

20、目錄本章目錄254.3.1.5 條件函數(shù) 格式:格式: IIf(表達(dá)式表達(dá)式1,表達(dá)式,表達(dá)式2,表達(dá)式,表達(dá)式3)功能:功能:當(dāng)表達(dá)式當(dāng)表達(dá)式1的值為真(或非零)時,函數(shù)的值為真(或非零)時,函數(shù)值為表達(dá)式值為表達(dá)式2的值;否則函數(shù)值為表達(dá)式的值;否則函數(shù)值為表達(dá)式3的值的值IIf函數(shù)是函數(shù)是If Then Else 結(jié)構(gòu)的簡潔表示結(jié)構(gòu)的簡潔表示例如,將例如,將x,y中大的數(shù),放入中大的數(shù),放入Tmax變量中:變量中: Tmax = IIf ( x y,x,y) 該語句與如下語句等價該語句與如下語句等價 : If x y Then Tmax = x Else Tmax = y 本章目錄本章目

21、錄本章目錄本章目錄264.3.2 選擇結(jié)構(gòu)(情況語句) Select Case 格式:格式:Select Case Select Case 變量或表達(dá)式變量或表達(dá)式 Case 表達(dá)式列表表達(dá)式列表1 1 語句塊語句塊1 Case 表達(dá)式列表表達(dá)式列表2 2 語句塊語句塊2 Case Else 語句塊語句塊n+1End SelectEnd Select本章目錄本章目錄與與變量或表達(dá)式變量或表達(dá)式的的類型類型必須必須相同,是如下四種形式相同,是如下四種形式之之1:(1)表達(dá)式。如:)表達(dá)式。如:2、3、2*4等;等;(2)數(shù)據(jù)范圍。如)數(shù)據(jù)范圍。如 8 to 20 等;等;(3)用)用 Is 開頭

22、的關(guān)系表達(dá)式開頭的關(guān)系表達(dá)式 如:如: Is20、Is 0 And y 0 ThenIf x 0 And y 0 Then Print Print 在第一象限在第一象限 ElseIfElseIf x 0 Then x 0 Then Print Print 在第二象限在第二象限 ElseIfElseIf x 0 And y 0 Then x 0 And y 0 And y 0 And y 0 And y 0 Case x 0 And y 0Print Print 在第一象限在第一象限 Case x 0 Case x 0Print Print 在第二象限在第二象限 Case x 0 And y 0

23、 Case x 0 And y 0 And y 0 And y 0 初值初值終值終值 步長的設(shè)置必須使循環(huán)變步長的設(shè)置必須使循環(huán)變終值終值 量的變化趨向于終值。量的變化趨向于終值。 =0 死循環(huán)死循環(huán)循環(huán)次數(shù)循環(huán)次數(shù))1(步長初值終值Int循環(huán)程序閱讀:循環(huán)次數(shù)?循環(huán)變量終值?循環(huán)程序閱讀:循環(huán)次數(shù)?循環(huán)變量終值? For i=2 To 13 Step 3 循環(huán)執(zhí)行次數(shù)循環(huán)執(zhí)行次數(shù) Print i , 輸出輸出 i的值分別為的值分別為: Next i 2 5 8 11 Print Print “I=“, i 終值:I=144) 1(3213Int步長:步長:步長設(shè)置及循環(huán)次數(shù)計算:步長設(shè)置及循

24、環(huán)次數(shù)計算:本章目錄本章目錄32【例【例4.10】編程序計算:】編程序計算:1+2+3+100=?Private Sub Command1_Click() Dim S, i As Integer S = 0 For i = 1 To 100 S = S + i Next iPrint “1+2+3+100=”;SEnd Sub運行結(jié)果:運行結(jié)果:5050S累加器,用分累加器,用分步循環(huán)累加完步循環(huán)累加完成整個計算。成整個計算。注意:初值為注意:初值為0i循環(huán)變量,循環(huán)變量,由于符合連加由于符合連加數(shù)變化規(guī)律,數(shù)變化規(guī)律,故用作為累加故用作為累加變量。變量。累加是程序設(shè)計的基本算法,將有規(guī)律長串

25、數(shù)據(jù)的連加,拆分成短表達(dá)式的循環(huán)累加,靈活性增強。請考慮1到1000的累加,應(yīng)如何修改程序。本章目錄本章目錄33【例例4.11】從鍵盤輸入一個正整數(shù)】從鍵盤輸入一個正整數(shù)n,計,計算從算從1到到n的奇數(shù)之和,當(dāng)和大于或等于的奇數(shù)之和,當(dāng)和大于或等于5n時,結(jié)束求和。求出和及退出求和時時,結(jié)束求和。求出和及退出求和時循環(huán)變量循環(huán)變量i的值。的值。分析:輸入分析:輸入n值,循環(huán)變量值,循環(huán)變量i從從1變化到變化到n,兩個數(shù)之間相差兩個數(shù)之間相差2,是有規(guī)律的數(shù)據(jù),步,是有規(guī)律的數(shù)據(jù),步長為長為2,累加時可用,累加時可用i的值代替數(shù)據(jù)實現(xiàn)的值代替數(shù)據(jù)實現(xiàn)求和,當(dāng)和大于等于求和,當(dāng)和大于等于5n時,無

26、條件的退時,無條件的退出循環(huán)。變量出循環(huán)。變量p表示實際計算求奇數(shù)和的表示實際計算求奇數(shù)和的最后一個數(shù),其初值為最后一個數(shù),其初值為n。本章目錄本章目錄34【例【例4.12】編程序計算:】編程序計算:10!=?分析:因為:分析:因為:10!=1*2*3*9*10拆為短表達(dá)式,用循環(huán)完成,它可改寫:拆為短表達(dá)式,用循環(huán)完成,它可改寫: 1!= 1 2!= 1! *2 3!= 2! *3 9!= 8! *9 10!= 9! *10 所以,由所以,由1!=1,可求出,可求出2!,再求出,再求出3!,最后,最后可求出可求出10!。!。設(shè)累乘器設(shè)累乘器T,其初值為,其初值為1,循環(huán)控制變量為,循環(huán)控制變

27、量為i。實現(xiàn)程序:考慮如何求n!?Private Sub Command1_Click() Dim T As Long, i As Integer T = 1 For i = 2 To 10 T = T * i Next i Print 10!=1*2*3*.*10=; TEnd Sub注意累乘器T的初值為1。本章目錄本章目錄354.4.2 DoLoop循環(huán)Do循環(huán)用于循環(huán)條件已知而循環(huán)次數(shù)未知的情況。循環(huán)用于循環(huán)條件已知而循環(huán)次數(shù)未知的情況。形式形式1: Do Do While|UntilWhile|Until 語句塊語句塊 Exit Do 語句塊語句塊LoopLoop功能:功能:形式形式1

28、為先判斷后執(zhí)行,有可能一次也不執(zhí)行;為先判斷后執(zhí)行,有可能一次也不執(zhí)行;形式形式2為先執(zhí)行后判斷,至少執(zhí)行一次。為先執(zhí)行后判斷,至少執(zhí)行一次。While:當(dāng)型循環(huán),當(dāng)條件成立循環(huán)。:當(dāng)型循環(huán),當(dāng)條件成立循環(huán)。Until :直到型循環(huán),循環(huán)直到條件成立,即直到型循環(huán),循環(huán)直到條件成立,即條件成條件成立就退出循環(huán)。立就退出循環(huán)。形式形式2:Do 語句塊語句塊 Exit Do 語句塊語句塊Loop While|Until 本章目錄本章目錄本章目錄本章目錄36條件循環(huán)流程圖doloop F T 語句塊 語句塊 Do WhileLoop 表達(dá)式列表 1 有 Exit Do F T T F 語句塊 語句塊

29、 表達(dá)式列表 1 Do Loop While 有 Exit Do F T 本章目錄本章目錄先判斷再執(zhí)行先執(zhí)行后判斷本章目錄本章目錄37改寫例改寫例4.10,編程序計算:,編程序計算:1+2+3+100=?用?用Do循環(huán)完成循環(huán)完成Private Sub Command1_Click()Dim S, i As Integeri=1S = 0Do While i100 直到型循環(huán)直到型循環(huán)S = S + ii=i+1Loop Print “1+2+3+100=”;SEnd Sub本章目錄本章目錄38【例【例4.13】閱讀下面的程序,哪個程序可以】閱讀下面的程序,哪個程序可以實現(xiàn)求實現(xiàn)求1到到10的

30、自然數(shù)的平方和,說明理由。的自然數(shù)的平方和,說明理由。程序程序1:PrivateSub Command1_Click()Dim S, i As Integer S = 0 i=1Do While i=10 S = S + i*iLoop Print SEnd Sub程序程序2:PrivateSub Command1_Click()Dim S, i As Integer S = 0 i=1 Do Until i10 Then Exit DoLoop Print SEnd Sub程序3、4可實現(xiàn),1死循環(huán)、2循環(huán)條件錯?本章目錄本章目錄40Private Sub Command1_Click()D

31、im I%I=12Do while I10 I=I+5LoopPrint “I=“;IEnd dubDim I%I=12Do until I10 I=I+5LoopPrint “I=“;I幾種幾種D0 循環(huán)的比較循環(huán)的比較Dim I%I=12Do I=I+5Loop while I10Print “I=“;I一次也不執(zhí)行一次也不執(zhí)行I=12死循環(huán)死循環(huán)無輸出無輸出執(zhí)行一次執(zhí)行一次 I=17本章目錄本章目錄414.4.3 循環(huán)的嵌套 當(dāng)循環(huán)結(jié)構(gòu)中的循環(huán)體又包含循環(huán)結(jié)構(gòu),當(dāng)循環(huán)結(jié)構(gòu)中的循環(huán)體又包含循環(huán)結(jié)構(gòu),就構(gòu)成了多重循環(huán),也稱為循環(huán)的嵌套。就構(gòu)成了多重循環(huán),也稱為循環(huán)的嵌套。 本章目錄本章目錄

32、在使用循環(huán)的嵌套時應(yīng)注意以下幾個問題:在使用循環(huán)的嵌套時應(yīng)注意以下幾個問題:(1)(1)循環(huán)嵌套可以一層套一層,但不能相互交叉。如:循環(huán)嵌套可以一層套一層,但不能相互交叉。如:形式形式1 1是正確的嵌套形式,而形式是正確的嵌套形式,而形式2 2是錯誤的。是錯誤的。 形式形式1 1 形式形式2 2本章目錄本章目錄42(2)內(nèi)循環(huán)與外循環(huán)變量名不能同名。內(nèi)循環(huán)與外循環(huán)變量名不能同名。 (3)可以從內(nèi)循環(huán)轉(zhuǎn)到外循環(huán),但不能從外循環(huán)轉(zhuǎn)到內(nèi)循環(huán)。可以從內(nèi)循環(huán)轉(zhuǎn)到外循環(huán),但不能從外循環(huán)轉(zhuǎn)到內(nèi)循環(huán)。(4)循環(huán)次數(shù):外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行全部。循環(huán)次數(shù):外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行全部。(2)循環(huán)結(jié)構(gòu)與分支

33、結(jié)構(gòu)也允許嵌套使用,但也不允許交叉。循環(huán)結(jié)構(gòu)與分支結(jié)構(gòu)也允許嵌套使用,但也不允許交叉。For i=1 to 10 S1 Do While j=8 S2 Loop S3Next iFor ii =1 To 10 For ii=1 To 20 Next iiNext iiS2執(zhí)行?次執(zhí)行?次s1執(zhí)行?次執(zhí)行?次內(nèi)外循環(huán)變內(nèi)外循環(huán)變量同名,共量同名,共執(zhí)行幾次?執(zhí)行幾次?本章目錄本章目錄43【例例4.14】編程實現(xiàn)九九乘法表?!烤幊虒崿F(xiàn)九九乘法表。分析:乘法口訣表中相乘的兩個因子是在不斷變化的,分析:乘法口訣表中相乘的兩個因子是在不斷變化的,采用二重循環(huán)進(jìn)行編程。采用二重循環(huán)進(jìn)行編程。 “普通形式九

34、九乘法表普通形式九九乘法表”:第一個因子(用:第一個因子(用i表表示),從示),從1變化到變化到9,i每變化一次,第二個因子(用每變化一次,第二個因子(用j表示),就從表示),就從1變化到變化到9。重復(fù)做的是:輸出。重復(fù)做的是:輸出ij=i*j,要注意換行輸出。要注意換行輸出。 下三角形式九九乘法表下三角形式九九乘法表:第一個因子(用:第一個因子(用i表表示),從示),從1變化到變化到9,i每變化一次,第二個因子(用每變化一次,第二個因子(用j表示),就從表示),就從1變化到變化到i。重復(fù)做的是:輸出。重復(fù)做的是:輸出ij=i*j,要注意換行輸出。要注意換行輸出。本章目錄本章目錄44【例例4.

35、15】編程實現(xiàn)打印如圖】編程實現(xiàn)打印如圖4-16a及及4-16b所示的圖形。所示的圖形。分析如下:分析如下: 使用二重循環(huán)進(jìn)行編程,用外循環(huán)確定行數(shù)及每使用二重循環(huán)進(jìn)行編程,用外循環(huán)確定行數(shù)及每行第行第1 1個個“* *”號開始打印位置,用內(nèi)循環(huán)確定每行打號開始打印位置,用內(nèi)循環(huán)確定每行打印印“* *”號的個數(shù)。號的個數(shù)。 左對齊形式(圖左對齊形式(圖4-16a4-16a):外循環(huán)變量):外循環(huán)變量i i,一共打,一共打印印5 5行,行,i i從從1 1變化到變化到5 5,每行第,每行第1 1個個“* *”號位于同一列號位于同一列上,如可定位在每行左邊空上,如可定位在每行左邊空2525個字符處

36、;內(nèi)循環(huán)變量個字符處;內(nèi)循環(huán)變量j j,每行打印,每行打印2 2i i個個“* *”號。號。 左右對稱形式(圖左右對稱形式(圖4-16b4-16b):外循環(huán)變量):外循環(huán)變量i i,一共,一共打印打印5 5行,行,i i從從1 1變化到變化到5 5,每行第,每行第1 1個個“* *”號處于上一號處于上一行第行第1 1個個“* *”號的左邊一列上,如第號的左邊一列上,如第1 1行第行第1 1個個“* *”定位在左邊空定位在左邊空2525個字符處,則第個字符處,則第i i行第行第1 1個個“* *”就可就可定位在左邊空定位在左邊空25-i25-i個字符處;內(nèi)循環(huán)變量個字符處;內(nèi)循環(huán)變量j j,每行

37、打,每行打印印2 2i i個個“* *”號。號。 本章目錄本章目錄454.5 綜合應(yīng)用綜合應(yīng)用【例例4.16】假設(shè)一個班的人數(shù)為】假設(shè)一個班的人數(shù)為rs,每輸入一個同,每輸入一個同學(xué)的分?jǐn)?shù)學(xué)的分?jǐn)?shù)n(要求是合法的分?jǐn)?shù)),就轉(zhuǎn)換成等級,(要求是合法的分?jǐn)?shù)),就轉(zhuǎn)換成等級,并求這五個等級的人數(shù)。轉(zhuǎn)換方式如表并求這五個等級的人數(shù)。轉(zhuǎn)換方式如表4.6所示。所示。分析:用循環(huán)結(jié)構(gòu)對每一個同學(xué)的分?jǐn)?shù)進(jìn)行處理,分析:用循環(huán)結(jié)構(gòu)對每一個同學(xué)的分?jǐn)?shù)進(jìn)行處理,用用If語句編程實現(xiàn)輸入的分?jǐn)?shù)語句編程實現(xiàn)輸入的分?jǐn)?shù)/班級人數(shù)必須為合法班級人數(shù)必須為合法數(shù)據(jù),否則可用數(shù)據(jù),否則可用MsgBox提醒重新輸入分?jǐn)?shù)提醒重新輸

38、入分?jǐn)?shù)/人數(shù),人數(shù),將分?jǐn)?shù)轉(zhuǎn)換成相應(yīng)的等級可用多分支選擇結(jié)構(gòu)實現(xiàn),將分?jǐn)?shù)轉(zhuǎn)換成相應(yīng)的等級可用多分支選擇結(jié)構(gòu)實現(xiàn),并求出各等級的人數(shù)。并求出各等級的人數(shù)。本章目錄本章目錄46【例例4.17】隨機產(chǎn)生】隨機產(chǎn)生20個個10到到100之間的數(shù),之間的數(shù),求最小值。求最小值。分析:在若干個數(shù)中求最小值,方法一,先假設(shè)分析:在若干個數(shù)中求最小值,方法一,先假設(shè)一個最大的數(shù)為最小值的初值,若無法估計較小一個最大的數(shù)為最小值的初值,若無法估計較小的值,即方法一不能實施,則取第一個為最小值的值,即方法一不能實施,則取第一個為最小值的初值;然后將每一個數(shù)與最小值比較,若該數(shù)的初值;然后將每一個數(shù)與最小值比較,若

39、該數(shù)小于最小值,將該數(shù)替換為最小值,依次逐個比小于最小值,將該數(shù)替換為最小值,依次逐個比較。較。本章目錄本章目錄47【例例4.18】求斐波那契級數(shù)的前】求斐波那契級數(shù)的前20項:項:1,1,2,3,5,8,13,。第。第1項和第項和第2項為項為1,從第三項,從第三項開始,每一項是前開始,每一項是前2項之和。分析如下:項之和。分析如下:方法一:每次產(chǎn)生一項。用方法一:每次產(chǎn)生一項。用A、B表示每組數(shù)的第一表示每組數(shù)的第一項和第二項,產(chǎn)生新的一項項和第二項,產(chǎn)生新的一項C=A+B,此時,新一,此時,新一組數(shù)的第一項為組數(shù)的第一項為B(把它保存到(把它保存到A中),第二項為中),第二項為C(把它保存到(把它保存到B中),再循環(huán)產(chǎn)生新的一項。中),再循環(huán)產(chǎn)生新的一項。方法二:每次產(chǎn)生一組兩項。用方法二:每次產(chǎn)生一組兩項。用A、B表示每組數(shù)的表示每組數(shù)的第一項和第二項,產(chǎn)生新的一組數(shù)中的第一項第一項和第二項,產(chǎn)生新的一組數(shù)中的第一項C=A+B(把它保存到(把它保存到A中),第二項為中),第二項為D=B+C(把它保存到(把它保存到B中),再循環(huán)產(chǎn)生新的一組數(shù)。中),再循環(huán)產(chǎn)生新的一組數(shù)。本章目錄本章目錄48【例【例4.19】計

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論