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

下載本文檔

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

文檔簡介

1、第4章 程序設(shè)計的3種基本結(jié)構(gòu) 1第第4章章 程序設(shè)計的程序設(shè)計的3種基本結(jié)構(gòu)種基本結(jié)構(gòu) 本章內(nèi)容及要求:本章內(nèi)容及要求: 1.了解算法概念及表示,掌握用了解算法概念及表示,掌握用NS流程圖表示算法;流程圖表示算法; 2. 熟練掌握賦值語句、輸入熟練掌握賦值語句、輸入/輸出消息框函數(shù)的使用;輸出消息框函數(shù)的使用; 3. 熟練掌握行熟練掌握行ifif語句、塊語句、塊ifif結(jié)構(gòu)、結(jié)構(gòu)、Select CaseSelect Case情況選擇情況選擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu);結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu); 4. 熟練掌握實現(xiàn)循環(huán)結(jié)構(gòu)的熟練掌握實現(xiàn)循環(huán)結(jié)構(gòu)的For/NextFor/Next循環(huán)結(jié)

2、構(gòu)及循環(huán)結(jié)構(gòu)及Exit Exit ForFor語句、語句、Do/LoopDo/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。重點:重點:選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實現(xiàn)及其應(yīng)用難點:難點:選擇的嵌套及多重循環(huán)結(jié)構(gòu)選擇的嵌套及多重循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 2本章主要內(nèi)容本章主要內(nèi)容 4.1 算法及算法的表示算法及算法的表示 4.2 順序結(jié)構(gòu)順序結(jié)構(gòu) 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 4.5 其他控制語句其他控制語句 4.6 應(yīng)用程序舉例應(yīng)用程序舉例 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 34.1 算法及算法的表示算法及算法的

3、表示 4.1.1 算法概述算法概述 什么是算法:什么是算法: 廣義地講:廣義地講:算法是為完成一項任務(wù)所應(yīng)當(dāng)算法是為完成一項任務(wù)所應(yīng)當(dāng)遵循的遵循的一步一步的規(guī)則的、精確的、無歧義的一步一步的規(guī)則的、精確的、無歧義的描述,描述,它的總步數(shù)是有限的。它的總步數(shù)是有限的。 狹義地講:狹義地講:算法是解決一個問題采取的方算法是解決一個問題采取的方法和步驟的描述。法和步驟的描述。第4章 程序設(shè)計的3種基本結(jié)構(gòu) 41) 輸入輸入A、B、C。2) A與與B中大的一個放入中大的一個放入MAX中。中。3) 把把C與與MAX中大的一個放入中大的一個放入MAX中。中。4) 輸出輸出MAX,MAX即為最大數(shù)。即為最大

4、數(shù)。例例4.1 輸入三個數(shù),然后輸出其中最大的數(shù)。輸入三個數(shù),然后輸出其中最大的數(shù)。 將三個數(shù)依次輸入到變量、將三個數(shù)依次輸入到變量、B、C中,設(shè)變量中,設(shè)變量MAX存放最大數(shù)。其算法如下:存放最大數(shù)。其算法如下: 4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 5例例4.2 輸入輸入10個數(shù),打印輸出其中最大的數(shù)。個數(shù),打印輸出其中最大的數(shù)。算法如下:算法如下: (1)輸入)輸入1個數(shù)個數(shù),存入變量存入變量A中中,將記錄數(shù)據(jù)個數(shù)的變將記錄數(shù)據(jù)個數(shù)的變量量N賦值為賦值為1,即,即N=1 (2)將)將A存入表示最大值的變量存入表示最大值的變量Max中,即中,即Max=A

5、 (3)再輸入一個值給)再輸入一個值給A,如果,如果AMax 則則 Max=A, 否則否則Max不變不變 (4)讓記錄數(shù)據(jù)個數(shù)的變量增加)讓記錄數(shù)據(jù)個數(shù)的變量增加1,即,即N=N+1 (5)判斷)判斷N是否小于是否小于10,若成立則轉(zhuǎn)到第(,若成立則轉(zhuǎn)到第(3)步執(zhí))步執(zhí)行,否則轉(zhuǎn)到第(行,否則轉(zhuǎn)到第(6)步)步 (6)打印輸出)打印輸出max4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 64.1.2 算法的特性算法的特性 1 有窮性有窮性2 確定性確定性3 有有0個或多個輸入個或多個輸入4 有一個或多個輸出有一個或多個輸出5 有效性有效性4.1 算法及算法的表示算

6、法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 74.1.3 算法的表示算法的表示 一、自然語言與偽代碼表示算法一、自然語言與偽代碼表示算法自然語言:自然語言:就是指人們?nèi)粘J褂玫恼Z言,可以是就是指人們?nèi)粘J褂玫恼Z言,可以是漢語、英語或其它語言。漢語、英語或其它語言。偽代碼:偽代碼:是用介于自然語言和計算機語言之間的是用介于自然語言和計算機語言之間的文字和符號(包括數(shù)學(xué)符號)來描述算法。文字和符號(包括數(shù)學(xué)符號)來描述算法。 4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 8例如:例例如:例4.1可用如下的偽代碼表示可用如下的偽代碼表示Begin(算法開始)(算法開始

7、) 輸入輸入 A,B,C IF AB 則則 AMax 否則否則 BMax IF CMax 則則 CMaxPrint MaxEnd (算法結(jié)束算法結(jié)束)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 9二二 、用、用傳統(tǒng)傳統(tǒng)流程圖表示算法流程圖表示算法處理框起止框I/O框判斷框流程線連接點1、傳統(tǒng)流程圖中的基本符號、傳統(tǒng)流程圖中的基本符號4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 102、三種基本結(jié)構(gòu)的表示、三種基本結(jié)構(gòu)的表示(1)順序結(jié)構(gòu))順序結(jié)構(gòu)條件語句1語句2YN語句1語句2(2)選擇結(jié)構(gòu))選擇結(jié)構(gòu)4.1 算法及算法的表示算法及算法的

8、表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 11(3)循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu)a) 當(dāng)型循環(huán)當(dāng)型循環(huán)b) 直到循環(huán)直到循環(huán)條件語句組YN( b )條件( a )YN語句組4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 12三種基本結(jié)構(gòu)的特點:三種基本結(jié)構(gòu)的特點:(1)只有一個入口)只有一個入口(2)只有一個出口)只有一個出口(3)不存在死語句)不存在死語句(4)不存在死循環(huán))不存在死循環(huán)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 13 從從10個數(shù)中選出最個數(shù)中選出最大的數(shù)的算法流程圖大的數(shù)的算法流程圖NMaxMax =A輸入A開始再輸入給AN=N+

9、1打印Max結(jié)束YNNY4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 144.1.4 用用NS流程圖表示算法流程圖表示算法 將全部算法寫在一個矩形框內(nèi),在矩形內(nèi)還可將全部算法寫在一個矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框。包含其它從屬于它的框。三種基本結(jié)構(gòu)的三種基本結(jié)構(gòu)的NS圖表示:圖表示:語句A語句B語句A語句B條件YN1、順序結(jié)構(gòu)、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)、選擇結(jié)構(gòu)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 153、循環(huán)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)a) 當(dāng)型循環(huán)當(dāng)型循環(huán)b) 直到循環(huán)直到循環(huán)例:例: 畫出從畫出從10個數(shù)中選出最大的數(shù)的個數(shù)中選出

10、最大的數(shù)的NS 流程圖。流程圖。語句組當(dāng)條件成立( a )語句組直到當(dāng)條件成立( b )4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 16傳統(tǒng)流程圖NMaxMax =A輸入A開始再輸入給AN=N+1打印Max結(jié)束YNNY輸入A當(dāng)NMaxYN輸入A4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 17A=Val(InputBox(A=?)B=Val(InputBox(B=?)C=Val(InputBox(C=?)If AB then Max=AElse Max=BEnd IfIf CMax then Max=CPrint Max=;Max下面是

11、例下面是例4.1的計算機的計算機 程序,即為用計算機語言表示算法:程序,即為用計算機語言表示算法:4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 184.1.5 結(jié)構(gòu)化程序設(shè)計方法(補充)結(jié)構(gòu)化程序設(shè)計方法(補充)(一)用計算機解決問題的過程(一)用計算機解決問題的過程提出、分提出、分析問題析問題確定算確定算法模型法模型設(shè)計設(shè)計算法算法編寫編寫程序程序調(diào)試調(diào)試程序程序分析輸分析輸出結(jié)果出結(jié)果正確正確合理合理結(jié)束結(jié)束不正確不正確4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 19(二)結(jié)構(gòu)化程序設(shè)計思想(二)結(jié)構(gòu)化程序設(shè)計思想自頂向下、逐步細化

12、、模塊化自頂向下、逐步細化、模塊化自頂向下:自頂向下:先從全局、整體設(shè)計先從全局、整體設(shè)計逐步細化:逐步細化:將一個問題分解成幾個較小的問題解決將一個問題分解成幾個較小的問題解決模塊化:模塊化: 將一個大任務(wù)分解成若干個較小的部分,將一個大任務(wù)分解成若干個較小的部分, 每每 個部分承擔(dān)一定功能,稱為個部分承擔(dān)一定功能,稱為“功能模塊功能模塊”例:給例:給100個整數(shù),打印輸出其中的素數(shù)。個整數(shù),打印輸出其中的素數(shù)。4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 20S1NS流程圖流程圖輸入輸入100個數(shù)存入個數(shù)存入X1,x2,x100打印打印x1.x100中不中不等于

13、等于0的數(shù)的數(shù)讓讓x1,x2,x100中的非素變?yōu)橹械姆撬刈優(yōu)?S3S2輸入輸入xi當(dāng)當(dāng)i=100i=i+1i=1S1細化細化xi0當(dāng)當(dāng)i=100i=i+1i=1YN打印打印xiS3細化細化4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 21S1NS流程圖流程圖輸入輸入100個數(shù)存入個數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中的中的非素變?yōu)榉撬刈優(yōu)?S3S2S2細化細化判斷判斷xi是否是素數(shù),是否是素數(shù),若不是則將若不是則將xi=0當(dāng)當(dāng)i=100i=i+1i=1S21r=0rxi/2S21細化細化4.1 算法及算法的

14、表示算法及算法的表示 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 22輸入輸入100個數(shù)存入個數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中中的非素變?yōu)榈姆撬刈優(yōu)?細化后的流程圖細化后的流程圖輸入輸入xi當(dāng)當(dāng)i=100i=i+1i=1當(dāng)當(dāng)ixi/2i=i+1xi0當(dāng)當(dāng)i=100i=1YN打印打印xii=i+1第4章 程序設(shè)計的3種基本結(jié)構(gòu) 234.2 順序結(jié)構(gòu)順序結(jié)構(gòu)4.2.1 4.2.1 賦值語句賦值語句 形式形式: : 變量名表達式變量名表達式 對象對象.屬性表達式屬性表達式 功能:功能: 將表達式的值賦值給變量名或指定對象的屬性。將表達式的值賦值給變量

15、名或指定對象的屬性。 一般用于給變量賦值或?qū)丶O(shè)定屬性值。一般用于給變量賦值或?qū)丶O(shè)定屬性值。 例:例: sRate = 0.1 Text1.Text 歡迎使用歡迎使用Visual Basic 6.0”說明:說明: 1、執(zhí)行過程:先求表達式的值,然后將值賦值給左邊的變量。、執(zhí)行過程:先求表達式的值,然后將值賦值給左邊的變量。 2、右邊的表達式可以是變量、常量、函數(shù)調(diào)用等特殊的表達式。、右邊的表達式可以是變量、常量、函數(shù)調(diào)用等特殊的表達式。 3、不要將、不要將“”理解為數(shù)學(xué)上的等號:理解為數(shù)學(xué)上的等號: A=A+1 是表示將是表示將A單元的值加后以放回到單元的值加后以放回到A單元。單元。第4

16、章 程序設(shè)計的3種基本結(jié)構(gòu) 24執(zhí)行過程如右圖執(zhí)行過程如右圖4、賦值符號、賦值符號“=”左邊一定只能是變量名或?qū)ο蟮膶傩砸筮呉欢ㄖ荒苁亲兞棵驅(qū)ο蟮膶傩砸?,不能是常量、符號常量、表達式。用,不能是常量、符號常量、表達式。 下面的賦值語句都是錯的:下面的賦值語句都是錯的:5=X 左邊是常量。左邊是常量。Abs(X)=20 左邊是函數(shù)調(diào)用,即是表達式。左邊是函數(shù)調(diào)用,即是表達式。 5、賦值符號、賦值符號“=”兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。 4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 254.2.2 數(shù)據(jù)的輸出數(shù)據(jù)的輸出Print方法方法 Print方法

17、的一般格式:方法的一般格式: 對象名對象名.Print,|;說明:說明: 對象名對象名. 可以是窗體名、圖片框名,也可是可以是窗體名、圖片框名,也可是立即窗口立即窗口“Debug”。若省略對象,則表示在。若省略對象,則表示在當(dāng)前窗當(dāng)前窗體體上輸出。上輸出。 用用Print方法在圖片框和立即窗口對象中輸出與方法在圖片框和立即窗口對象中輸出與在窗體對象中輸出完全相同。在窗體對象中輸出完全相同。 4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 264.2.3 用戶交互函數(shù)和過程用戶交互函數(shù)和過程 1. InputBox函數(shù)函數(shù)變量名變量名=InputBox$(, , ) 其中其中:提示提示

18、提示信息提示信息,標(biāo)題標(biāo)題 標(biāo)題區(qū)顯示標(biāo)題區(qū)顯示,缺省缺省輸入?yún)^(qū)缺省值。輸入?yún)^(qū)缺省值。 例如,要在屏幕上顯示如下的對話框例如,要在屏幕上顯示如下的對話框:4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 27 例如:有下列語句如下例如:有下列語句如下: Dim x% x= Val(InputBox(“請輸入一個數(shù)請輸入一個數(shù)”, “輸入框輸入框”, 100) 語句執(zhí)行后打開如下對話框。語句執(zhí)行后打開如下對話框。缺省值缺省值標(biāo)題標(biāo)題提示提示4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 282. MsgBox函數(shù)和函數(shù)和MsgBox過程過程 函數(shù)形式函數(shù)形式:變量變量% = Msg

19、Box(提示提示,按鈕按鈕圖標(biāo)圖標(biāo)+ 缺省按鈕缺省按鈕+模式模式,標(biāo)題,標(biāo)題) 過程形式過程形式: MsgBox 提示提示,按鈕按鈕圖標(biāo)圖標(biāo) +缺省按鈕缺省按鈕+ 模式模式,標(biāo)題標(biāo)題圖標(biāo)圖標(biāo)標(biāo)題標(biāo)題提示信息提示信息命令按鈕命令按鈕4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 29說明:說明: 、“標(biāo)題標(biāo)題”和和“提示提示”與與InputBox函數(shù)函數(shù)中對應(yīng)的參數(shù)相同;中對應(yīng)的參數(shù)相同; 、“按鈕圖標(biāo)按鈕圖標(biāo) +缺省按鈕缺省按鈕+模式模式”是是整型表達式,決定信息框按鈕數(shù)目、出現(xiàn)在整型表達式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式信息框上的圖標(biāo)類型及操作模式(見表見表4

20、.1)4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 30按鈕及圖標(biāo)值如下按鈕及圖標(biāo)值如下:4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 31 根據(jù)用戶所選按鈕,根據(jù)用戶所選按鈕,函數(shù)返回函數(shù)返回1 17 7的整數(shù)的整數(shù)值,其含義表值,其含義表4.24.24.2 順序結(jié)構(gòu)順序結(jié)構(gòu) 3、若程序中需要、若程序中需要返回值返回值,則使用函數(shù),否則可調(diào)則使用函數(shù),否則可調(diào)用過程。用過程。 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 324.2 順序結(jié)構(gòu)順序結(jié)構(gòu) 用戶可根據(jù)用戶可根據(jù)MsgBox函數(shù)的不同返回值,實現(xiàn)程序函數(shù)的不同返回值,實現(xiàn)程序的控制流程,就必需通過編寫程序代碼才能實現(xiàn)。例的控制

21、流程,就必需通過編寫程序代碼才能實現(xiàn)。例如:如: i = MsgBox(發(fā)生錯誤,是否繼續(xù)?發(fā)生錯誤,是否繼續(xù)?, vbYesNo + vbQuestion, 提示信息提示信息) If i = 7 Then End 或?qū)懗苫驅(qū)懗?If i = vbNo Then End 當(dāng)用戶單擊當(dāng)用戶單擊“否否”,程序就結(jié)束,單擊,程序就結(jié)束,單擊“是是”或或直接按回車鍵,程序則繼續(xù)向下執(zhí)行。直接按回車鍵,程序則繼續(xù)向下執(zhí)行。 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 334.2.4 注釋語句注釋語句 其語法格式為:其語法格式為:Rem 或或 說明:說明:1. 指要包括的任何注釋文本。在指要包括的任何注釋文本。在Re

22、m關(guān)鍵字關(guān)鍵字和注釋內(nèi)容之間要加一個空格??梢杂靡粋€英文單引號和注釋內(nèi)容之間要加一個空格。可以用一個英文單引號“”來來代替代替Rem關(guān)鍵字。關(guān)鍵字。2. 如果在其他語句行后面使用如果在其他語句行后面使用Rem關(guān)鍵字,必需用冒號關(guān)鍵字,必需用冒號(:)與語句隔開。若用英文單引號與語句隔開。若用英文單引號“”,則在其他語句行后面,則在其他語句行后面不必加冒號不必加冒號(:)。例如:例如:Const PI=3.1415925 符號常量符號常量PIS=PI*r*r : Rem計算圓的面積計算圓的面積4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 344.2.5 應(yīng)用舉例應(yīng)用舉例例例4.3 輸入

23、時間(小時,分和秒),然后使用輸輸入時間(小時,分和秒),然后使用輸出消息框輸出總計多少秒。出消息框輸出總計多少秒。使用文本框輸入數(shù)據(jù),使用消息框輸出計算結(jié)果,使用文本框輸入數(shù)據(jù),使用消息框輸出計算結(jié)果,程序運行界面如圖所示。程序運行界面如圖所示。4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 354.2.5 應(yīng)用舉例應(yīng)用舉例例例4.4 編一程序,求一內(nèi)半徑編一程序,求一內(nèi)半徑R1=10cm,外半徑,外半徑R2=20cm的球環(huán)的體積。要求按四舍五入保留到小的球環(huán)的體積。要求按四舍五入保留到小數(shù)點后數(shù)點后4位。位。解:球的體積公式解:球的體積公式 :4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)334RV)(

24、34343431323132RRRRV本題所求的球環(huán)面的體積公式本題所求的球環(huán)面的體積公式 :第4章 程序設(shè)計的3種基本結(jié)構(gòu) 36選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行不同的分支不同的分支語句,語句,以完成問題的要求。在以完成問題的要求。在Visual Basic程序設(shè)計中,使程序設(shè)計中,使用用IF語句和語句和Select Case語句來處理選擇結(jié)構(gòu)。語句來處理選擇結(jié)構(gòu)。其特點是:根據(jù)所給定的條件成立(其特點是:根據(jù)所給定的條件成立(True)或)或不成立(不成立(False),從各實際可能的不同分支中執(zhí)行),從各實際可能的不同分支中執(zhí)行某一分支的相應(yīng)操作(程序塊),并且任何情況

25、下某一分支的相應(yīng)操作(程序塊),并且任何情況下總有總有“無論條件多寡,必擇其一;雖然條件眾多,無論條件多寡,必擇其一;雖然條件眾多,僅選其一僅選其一”的特性。的特性。 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 371. IfThen語句語句(單分支結(jié)構(gòu)單分支結(jié)構(gòu)) If Then 語句塊語句塊 End If 或或 If Then tyx例例:已知兩個數(shù)已知兩個數(shù)x和和y,比較它們的大小,比較它們的大小, 使得使得x大于大于y. If xy Then t=x : x=y: y=t End If 或或 If xy Then t=x: x=y: y=t4.3.1 If條件語句條件語句

26、第4章 程序設(shè)計的3種基本結(jié)構(gòu) 382. IfThenElse語句語句(雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)) If Then Else End If If Then Else 雙分支選擇結(jié)構(gòu)執(zhí)行過程雙分支選擇結(jié)構(gòu)執(zhí)行過程 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 39例如:輸出例如:輸出x,y兩個中值較大的一個值。兩個中值較大的一個值。 IF XY Then Print X Else Print Y End If也可以寫成如下的單行形式:也可以寫成如下的單行形式: IF XY Then Print X Else Print Y4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 403. 條

27、件函數(shù)條件函數(shù)Iif() IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它相當(dāng)于函數(shù)可用來執(zhí)行簡單的條件判斷操作,它相當(dāng)于IFThen.Else結(jié)構(gòu)。結(jié)構(gòu)。IIF函數(shù)的使用格式:函數(shù)的使用格式:IIF(,)說明:說明: (1)與與IF語句中的表達式相同,通常是關(guān)系表語句中的表達式相同,通常是關(guān)系表達式、邏輯表達式,也可為算術(shù)表達式。如果是算術(shù)表達式,達式、邏輯表達式,也可為算術(shù)表達式。如果是算術(shù)表達式,其值按非其值按非0為為True,0為為False進行判斷。進行判斷。 (2)當(dāng))當(dāng)為真時,函數(shù)返回為真時,函數(shù)返回的值,當(dāng)?shù)闹担?dāng)為假時,函數(shù)返回為假時,函數(shù)返回的值。的值。 (3)、可以是任何表達式

28、??梢允侨魏伪磉_式。例如:例如:Max=IIF(XY, X, Y )它與下面語句等價:)它與下面語句等價: IF XY Then Max=x Else Max=Y 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 414. IfThenElseIf語句語句(多分支結(jié)構(gòu)多分支結(jié)構(gòu)) 形式形式: If Then ElseIf Then Else 語句塊語句塊 n+1 End If執(zhí)行過程4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 42例例4.6:輸入一學(xué)生成績,評定其等級。方法是:輸入一學(xué)生成績,評定其等級。方法是:90100分為分為“優(yōu)秀優(yōu)秀”,8089分為分為“良好良好”,7

29、079分為分為“中等中等”,6069分為分為“及格及格”,60分以為分以為“不合格不合格”4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)使用使用IF語句實現(xiàn)的程序段如下:語句實現(xiàn)的程序段如下:If x=90 then Print 優(yōu)秀優(yōu)秀ElseIf x=80 Then Print 良好良好 ElseIf x=70 Then Print 中等中等 ElseIf x=60 Then Print 及格及格 Else Print 不及格不及格End If第4章 程序設(shè)計的3種基本結(jié)構(gòu) 434.3.2 Select Case語句(情況語句)語句(情況語句)形式:形式:Select Case 變量或表達式變量或表達式Case

30、 表達式列表表達式列表1語句塊語句塊1Case 表達式列表表達式列表2語句塊語句塊2Case Else語句塊語句塊n+1End Select數(shù)值型或字符串表達式數(shù)值型或字符串表達式4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 44說明:說明: :與:與同同類型類型的下面四種形式之一:的下面四種形式之一:v 表達式表達式 A +5v 一組枚舉表達式一組枚舉表達式(用逗號分隔用逗號分隔) 2, 4, 6, 8 v 表達式表達式1 To 表達式表達式2 60 to 100v Is關(guān)系運算符表達式關(guān)系運算符表達式 Is604.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 45例如:將例

31、例如:將例4.6 使用使用select case.語句來實現(xiàn)的程序段如下:語句來實現(xiàn)的程序段如下:Select Case x Case 90 to 100 Print 優(yōu)秀優(yōu)秀 Case 80 to 89 Print 良好良好 Case 70 to 79 Print 中等中等 Case 60 to 69 Print 及格及格 Case Else Print 不及格不及格End Select4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 462. Choose函數(shù)函數(shù)Choose函數(shù)使用格式:函數(shù)使用格式:Choose(,. ) 說明:說明:Choose函數(shù)函數(shù)根據(jù)根據(jù)的值來決定返回的值

32、來決定返回其后其后中的那個表達式的值中的那個表達式的值。如果。如果的值為的值為1,則返回,則返回的值,如果的值,如果的值為的值為2,則返回,則返回的值,以此類推。若的值,以此類推。若的值小于的值小于1或大于或大于n,則函數(shù)返回,則函數(shù)返回Null( 空空)。 例如:例如:根據(jù)根據(jù)Nop的值,得到的值,得到+、-、*,/的運算符,可的運算符,可由理面語句來實現(xiàn)。由理面語句來實現(xiàn)。Nop= Int(Rnd * 4)+ 1OP= Choose(Nop, +, -, *, /)4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 474.3.3 選擇結(jié)構(gòu)的嵌套選擇結(jié)構(gòu)的嵌套下面是兩種正確的嵌套形式:

33、(1) IF Then . IF Then Else . End If . Else . IF Then . Else . End If . End IF(2)IF Then . Select Case Case IF Then Else . End If Case. . End Select .End IF4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 48 注意:只能在一個分支內(nèi)嵌套,注意:只能在一個分支內(nèi)嵌套,不出現(xiàn)交叉。不出現(xiàn)交叉。滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套層次也可以任意多。層次也可以任意多。對于多層對于多層IF嵌套結(jié)構(gòu)

34、中,要特別注意嵌套結(jié)構(gòu)中,要特別注意IF與與Else的配對關(guān)系,一個的配對關(guān)系,一個Else必須與必須與IF配結(jié),配對配結(jié),配對的原則是:的原則是:else總是與離它最近、且尚未配對的總是與離它最近、且尚未配對的if配對。配對。在寫含有多層嵌套的程序時,建議使用在寫含有多層嵌套的程序時,建議使用縮進縮進對齊對齊方式,這樣容易閱讀和維護。方式,這樣容易閱讀和維護。4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 49例例4.7 設(shè)計一個用戶身份驗證程序,運行界面如下圖所示。設(shè)計一個用戶身份驗證程序,運行界面如下圖所示。 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 設(shè)密碼分別為設(shè)密碼分別為 1234567(普

35、通用戶)、(普通用戶)、1989643(授權(quán)用戶)和(授權(quán)用戶)和1687799(特許用戶),按回車鍵表(特許用戶),按回車鍵表示密碼輸入結(jié)束。如果輸入密碼正確,則用示密碼輸入結(jié)束。如果輸入密碼正確,則用MsgBox對話框顯示對話框顯示“你的口令正確你的口令正確,已通過身份驗證已通過身份驗證”并顯示并顯示用戶類型;否則顯示用戶類型;否則顯示“密碼不符,要重試一遍嗎!密碼不符,要重試一遍嗎!”(有(有“是是”和和“否否”兩個按鈕),當(dāng)用戶單擊兩個按鈕),當(dāng)用戶單擊“是是”則將焦點定位到文本框中、清除文本框中的內(nèi)容并允則將焦點定位到文本框中、清除文本框中的內(nèi)容并允許再輸入一遍,如果單擊許再輸入一遍

36、,如果單擊“否否”則退出程序。則退出程序。第4章 程序設(shè)計的3種基本結(jié)構(gòu) 504.4 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 1. For循環(huán)語句循環(huán)語句 (一般用于循環(huán)次數(shù)已知一般用于循環(huán)次數(shù)已知)形式:形式: For 循環(huán)變量初值循環(huán)變量初值 to 終值終值 Step 步長步長 語句塊語句塊Exit For 語句塊語句塊 Next 循環(huán)變量循環(huán)變量循環(huán)體 0 初值初值終值終值 當(dāng)當(dāng)=1 時時,可省可省終值終值=0 死循環(huán)死循環(huán) 步長步長4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)變量在終值內(nèi) 語句塊 Exit For 語句塊 循環(huán)變量加步長 T F 循 環(huán) 變 量 得 初值 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 51循環(huán)次

37、數(shù)循環(huán)次數(shù)) 1(步長初值終值Int例例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I 循環(huán)執(zhí)行次數(shù)循環(huán)執(zhí)行次數(shù): 輸出輸出I的值分別為的值分別為: 2 5 8 11 出了循環(huán)輸出為出了循環(huán)輸出為: I=144.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)Int(13-2)/3+1)=4第4章 程序設(shè)計的3種基本結(jié)構(gòu) 52例例4.8 編程計算:編程計算:S=1+2+3+100Dim S%, I%Dim S%, I%S=0 S=0 累加前變量累加前變量S S為為0 0For I=1 to 100 For I=1 to 100 S=S+I S=S+INext I

38、Next IPrint S=,S Print S=,S 當(dāng)當(dāng)N=100N=N+1打印打印SS=0,N=1S=S+N4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 53 條 件 F T Exit Do 語句塊 語句塊 Do WhileLoop 執(zhí)行過程 形式形式1:(當(dāng)型循環(huán)):(當(dāng)型循環(huán)) Do While|Until 語句塊語句塊 Exit Do 語句塊語句塊 Loop4.4.2 DoLoop循環(huán)語句循環(huán)語句 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 54T F Exit D o 語 句 塊 語 句 塊 條 件 D o Loop W hile 的 執(zhí) 行 過 程 形式形

39、式2:(直到循環(huán))直到循環(huán))Do 語句塊語句塊 Exit Do 語句塊語句塊Loop While|Until 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 55條 件語句塊語句塊TFExit Do條 件語句塊語句塊TFExit Do Do UntilLoop執(zhí)行過程執(zhí)行過程 DoLoop Until執(zhí)行過程執(zhí)行過程 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 56說明:說明: (1 1)當(dāng)使用)當(dāng)使用WhileWhile 構(gòu)成循環(huán)時,當(dāng)構(gòu)成循環(huán)時,當(dāng)條件為條件為“真真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假假”,則退出循環(huán)。,則退出循環(huán)。 (2)當(dāng)使

40、用)當(dāng)使用Until 構(gòu)成循環(huán)時,當(dāng)條構(gòu)成循環(huán)時,當(dāng)條件為件為“假假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為立,即為“真真”時,則退出循環(huán)。時,則退出循環(huán)。4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 57 (3 3)在循環(huán)體內(nèi)一般應(yīng)有一個專門用來改)在循環(huán)體內(nèi)一般應(yīng)有一個專門用來改變條件表達式中變量的語句,以使隨著循環(huán)的變條件表達式中變量的語句,以使隨著循環(huán)的執(zhí)行,執(zhí)行,條件趨于不成立(或成立),條件趨于不成立(或成立),最后達到最后達到退出循環(huán)。退出循環(huán)。 (4)語句)語句Exit Do的作用是的作用是退出它所在的循退出它所在的循環(huán)結(jié)構(gòu)環(huán)結(jié)構(gòu),它只能

41、用在,它只能用在DO/Loop結(jié)構(gòu)中,并且常結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來實現(xiàn)當(dāng)滿足某一條件時提前退出循環(huán)。實現(xiàn)當(dāng)滿足某一條件時提前退出循環(huán)。 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 58Dim S As Integer, I As IntegerS = 0 累加前變量累加前變量S為為0I = 1 給控制循環(huán)的變量賦初值給控制循環(huán)的變量賦初值Do While I 100 S = S + I I = I + 1LoopPrint S= ; S例例4.9 改寫程序計算:改寫程序計算:S=1+2+3+100第4章 程序設(shè)

42、計的3種基本結(jié)構(gòu) 594.4.3 WhileWend語句語句使用格式如下:使用格式如下:While Wend 說明:說明:該語句的功能與該語句的功能與Do While .Loop實現(xiàn)的循環(huán)完全相同。實現(xiàn)的循環(huán)完全相同。4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 60例例4.10 求兩個整數(shù)的最大公約數(shù)、最小公倍數(shù)求兩個整數(shù)的最大公約數(shù)、最小公倍數(shù)Dim n%,m%,nm%,r%m=Val(InputBox(m=)n=Val(InputBox(n=)nm=n*mIf mn Then t=m: m=n: n=tr=m mod nDo While (r 0) m=n n=r r= m m

43、od nLoopPrint 最大公約數(shù)最大公約數(shù)=, n Print 最小公倍數(shù)最小公倍數(shù)=, nm/n 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 61 4.4.4 循環(huán)的嵌套循環(huán)的嵌套多重循環(huán)結(jié)構(gòu)多重循環(huán)結(jié)構(gòu) 如果在如果在一個循環(huán)內(nèi)一個循環(huán)內(nèi)完整完整地包含地包含另一個循另一個循環(huán)結(jié)構(gòu)環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套。,則稱為多重循環(huán),或循環(huán)嵌套。嵌套的層數(shù)可根據(jù)需要而定,嵌套一嵌套的層數(shù)可根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。 前面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互前面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套。嵌套。4.4 循環(huán)

44、結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 62(1)For I=. . For J=. . Next J . Next I(2)For I=. . Do While/Until . . Loop . Next I(3)Do While. . For J=. . Next J . Loop(4)Do While/Until. . Do While/Until . . Loop . Loop4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 63例如例如:打印九九乘法表打印九九乘法表. For i = 1 To 9 For j = 1 To 9 se = i & & j & = & i *

45、j Picture1.Print Tab(j - 1) * 9 + 1); se; Next j Picture1.Print Next i4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 64對于循環(huán)的嵌套,要對于循環(huán)的嵌套,要注意注意以下事項:以下事項: (1) 內(nèi)循環(huán)變量與外循環(huán)變量不能同名;內(nèi)循環(huán)變量與外循環(huán)變量不能同名; (2) 外循環(huán)必須完全包含內(nèi)循環(huán),不能外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;交叉; (3) 不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán)。不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán)。4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 65

46、For i =1 To 10 For j=1 To 20 Next i Next j For i =1 To 10 For i=1 To 20 Next i Next i下面是下面是不正確不正確的嵌套的嵌套4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) For i =1 To 10 For j=1 To 20 Next j Next i For i =1 To 10 Next i For i =1 To 10 Next i 下面是下面是正確正確的嵌套的嵌套第4章 程序設(shè)計的3種基本結(jié)構(gòu) 664.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 例例4.11:將一張面值為將一張面值為100元的人民幣等值元的人民幣等值換成換成100張張5元、元、

47、1元和元和0.5元的零鈔,要求每種元的零鈔,要求每種零鈔不少于零鈔不少于1張,問有哪幾種組合?張,問有哪幾種組合?思考與討論思考與討論第4章 程序設(shè)計的3種基本結(jié)構(gòu) 674.4.5 幾種循環(huán)語句比較幾種循環(huán)語句比較 For.toNextDo while/until.Loopdo.Loop W hile/until.循 環(huán) 類 型當(dāng) 型 循 環(huán)當(dāng) 型 循 環(huán)直 到 循 環(huán)循 環(huán) 控 制 條件循 環(huán) 變 量 大 于或 小 于 終 值條 件 成 立 /不 成 立執(zhí) 行 循 環(huán)條 件 成 立 /不 成 立執(zhí) 行 循 環(huán)循 環(huán) 變 量 初值在 FOR 語 句 行中在 DO 之 前在 DO 之 前使 循

48、環(huán) 結(jié) 束For 語 句 中 無需 專 門 語 句必 須 用 專 門 語 句必 須 使 用 專 門 語 句使 用 場 合循 環(huán) 次 數(shù) 容 易確 定循 環(huán) /結(jié) 束 控 制 條件 易 給 出循 環(huán) /結(jié) 束 控 制 條件 易 給 出4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 684.4.6 循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套 在循環(huán)結(jié)構(gòu)中可以在循環(huán)結(jié)構(gòu)中可以完整嵌套完整嵌套選擇結(jié)構(gòu)選擇結(jié)構(gòu)即整個選擇結(jié)構(gòu)都屬于循環(huán)體。即整個選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時,則要在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時,則要求整個循環(huán)結(jié)構(gòu)必須求整個循環(huán)結(jié)構(gòu)必須完整嵌套完整嵌套在一個分支

49、在一個分支內(nèi),一個循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個或兩內(nèi),一個循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個或兩個以上的分支內(nèi)。個以上的分支內(nèi)。 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計的3種基本結(jié)構(gòu) 69(1)For I= IF Then End IF Next I(2)IF Then For I= Next I End IF4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)(3)For I= IF Then Next I End IF第4章 程序設(shè)計的3種基本結(jié)構(gòu) 70(4)For I= Select Case Case Case End Select Next I(5)Select Case For I= Case Case Next I E

50、nd Select(6)IF Then For I= End IF Next I第4章 程序設(shè)計的3種基本結(jié)構(gòu) 714.5.1 Goto 語句語句 形式形式: Go To 標(biāo)號標(biāo)號|行號行號 作用是作用是無條件地轉(zhuǎn)移無條件地轉(zhuǎn)移到標(biāo)號或行號指定的那到標(biāo)號或行號指定的那行語句。行語句。 標(biāo)號是一個字符序列標(biāo)號是一個字符序列,行號是一個數(shù)字序列。行號是一個數(shù)字序列。例如:例如:Lp: goto Lp 4.5 4.5 其它控制語句其它控制語句 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 724.5.2 Exit 語句語句 Exit 語句用于語句用于退出退出 Do.Loop、For.Next、Function或或

51、Sub代碼塊。代碼塊。 對應(yīng)的使用格式為:對應(yīng)的使用格式為:Exit Do、Exit For、Exit Function、Exit Sub。分別表示退出分別表示退出DO循環(huán)、循環(huán)、For循環(huán)、函數(shù)過程、循環(huán)、函數(shù)過程、子過程。子過程。4.5 4.5 其它控制語句其它控制語句 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 73Private Sub Form_Click()Dim I%, Num% Do While True 建立無窮循環(huán)。建立無窮循環(huán)。 For I = 1 To 100 循環(huán)循環(huán) 100 次。次。 Num = Int(Rnd * 100) 生成一個生成一個099的隨機數(shù)。的隨機數(shù)。 Sele

52、ct Case Num Case 10: Exit For退出退出 For.Next 循環(huán)。循環(huán)。 Case 50: Exit Do 退出退出 Do.Loop 循環(huán)。循環(huán)。 Case 64: Exit Sub 退出子過程。退出子過程。 End Select Next I LoopEnd Sub4.5 4.5 其它控制語句其它控制語句 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 744.5.3 End 語句語句 形式:形式:End 功能:功能:結(jié)束結(jié)束一個程序的運行。一個程序的運行。 在在Visual Basic中還有多種形式的中還有多種形式的End語句,用于語句,用于結(jié)束一個程序塊或過程。結(jié)束一個程序塊或

53、過程。 其形式有:其形式有: End IfEnd SelectEnd Type End WithEnd SubEnd Function等,等,它們與對應(yīng)的語句配對使用。它們與對應(yīng)的語句配對使用。4.5 4.5 其它控制語句其它控制語句 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 754.5.4 暫停語句暫停語句 Stop語句用來語句用來暫停程序的執(zhí)行暫停程序的執(zhí)行,相當(dāng)于在事件代,相當(dāng)于在事件代碼中設(shè)置斷點。語法格式為:碼中設(shè)置斷點。語法格式為: Stop說明:說明: 1. Stop語句的主要作用是把解釋程序置為中斷語句的主要作用是把解釋程序置為中斷(Break)模式,以便對程序進行檢查和調(diào)試??梢栽诔棠?/p>

54、式,以便對程序進行檢查和調(diào)試??梢栽诔绦虻娜魏蔚胤椒胖眯虻娜魏蔚胤椒胖肧top語句,當(dāng)執(zhí)行語句,當(dāng)執(zhí)行Stop語句時,系語句時,系統(tǒng)將自動打開立即窗口。統(tǒng)將自動打開立即窗口。 2. 與與End語句不同。語句不同。 4.5 4.5 其它控制語句其它控制語句 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 764.5.5 With.End With 語句語句 形式:形式: With 對象名對象名 語句塊語句塊 End With 說明:說明:With 語句可以對某個對象執(zhí)語句可以對某個對象執(zhí)行一系列的語句,而不用重復(fù)指出對象的行一系列的語句,而不用重復(fù)指出對象的名稱。名稱。4.5 4.5 其它控制語句其它控制語句

55、第4章 程序設(shè)計的3種基本結(jié)構(gòu) 77 例如,需要對同一對象設(shè)置幾個屬性。途例如,需要對同一對象設(shè)置幾個屬性。途徑之一是使用多條語句。徑之一是使用多條語句。Private Sub Form_Load() Command1.Caption = 退出退出(E&xit) Command1.Top = 500 Command1.Left = 4500 Command1.Enabled = TrueEnd Sub4.5 4.5 其它控制語句其它控制語句 使用使用With.End With 語句,程序的代碼如下。語句,程序的代碼如下。Private Sub Form_Load() With Command1

56、 .Caption = 退出退出(E&xit) .Top = 500 .Left = 4500 .Enabled = True End WithEnd Sub 第4章 程序設(shè)計的3種基本結(jié)構(gòu) 784.6 應(yīng)用程序舉例應(yīng)用程序舉例4.6.1 累計求和、求乘積、計數(shù)等問題累計求和、求乘積、計數(shù)等問題 此類問題都要使用循環(huán),根據(jù)問題的要求,確定循環(huán)變此類問題都要使用循環(huán),根據(jù)問題的要求,確定循環(huán)變量的初值、終值或結(jié)束條件及用來表示計數(shù)、和、階乘的變量的初值、終值或結(jié)束條件及用來表示計數(shù)、和、階乘的變量的初值。量的初值。 例例4.12 編程序計算:編程序計算: 當(dāng)最后一項的絕對值小于當(dāng)最后一項的絕對值

57、小于0.000001時停止計算,輸出其計算時停止計算,輸出其計算的結(jié)果及其計算了多少項。的結(jié)果及其計算了多少項。 編程分析:編程分析:這是用來求級數(shù)和的一類題目,這類題目一般這是用來求級數(shù)和的一類題目,這類題目一般要寫成要寫成s=s+t(t為通項)這種形式。本題中相加的各項正負交為通項)這種形式。本題中相加的各項正負交替,第替,第i+1項是第項是第i項乘以項乘以1/(2*i)*(2*i+1)。程序編寫如下:。程序編寫如下: )!12(1)1(.!71!51!3111nn第4章 程序設(shè)計的3種基本結(jié)構(gòu) 794.6 應(yīng)用程序舉例應(yīng)用程序舉例4.6.2 素數(shù)與哥德巴赫猜想素數(shù)與哥德巴赫猜想 例例4.

58、14 判斷一個給定的整數(shù)是否為素數(shù)。判斷一個給定的整數(shù)是否為素數(shù)。 算法思路:算法思路:素數(shù)指除了能被素數(shù)指除了能被1和自身外,不能被其他整數(shù)和自身外,不能被其他整數(shù)整除的自然數(shù)。判斷整數(shù)整除的自然數(shù)。判斷整數(shù)N是不是素數(shù)的基本方法是:將是不是素數(shù)的基本方法是:將N分分別除以別除以2,3,N-1,若都不能整除,則,若都不能整除,則N為素數(shù)。因為為素數(shù)。因為N=Sqr(N)*Sqr(N),所以,當(dāng),所以,當(dāng)N能被大于等于能被大于等于Sqr(N)的整數(shù)整的整數(shù)整除時,一定存在一個小于等于除時,一定存在一個小于等于Sqr(N)的整數(shù),使的整數(shù),使N能被它整除,能被它整除,因此只要判斷因此只要判斷N能

59、否被能否被2,3,Sqr(N)整除即可。整除即可。 算法流程圖如下:算法流程圖如下:第4章 程序設(shè)計的3種基本結(jié)構(gòu) 80Dim N %, I%, K%N = Val(InputBox(N=?)K= Int(Sqr(N)For I = 2 To K If N Mod I = 0 Then Exit ForNext IIf IK Then Print N; 是素數(shù)是素數(shù)Else Print N; 不是素數(shù)不是素數(shù)End If 4.6 應(yīng)用程序舉例應(yīng)用程序舉例算法流程圖算法流程圖程序代碼:程序代碼:第4章 程序設(shè)計的3種基本結(jié)構(gòu) 81 例例4.15 編一程序驗證哥德巴赫猜想:一個大于等于編一程序驗證

60、哥德巴赫猜想:一個大于等于6的偶數(shù)的偶數(shù)可以表示為兩個素數(shù)之和。例如:可以表示為兩個素數(shù)之和。例如: 6=3+3 8=3+5 10= 3+7 算法設(shè)計:算法設(shè)計:設(shè)設(shè)N為大于等于為大于等于6的的任一偶數(shù),將其分解為任一偶數(shù),將其分解為N1和和N2兩兩個數(shù),使用個數(shù),使用N1+N2=N,分別判斷,分別判斷N1和和N2是否為素數(shù),若都是,則是否為素數(shù),若都是,則為一組解。若為一組解。若N1不是素數(shù),就不必不是素數(shù),就不必再檢查再檢查N2是否素數(shù)。先從是否素數(shù)。先從N1=3開開始,直到始,直到N1=N/2為止。算法流程圖為止。算法流程圖如圖如圖4-29所示。將程序代碼寫到窗所示。將程序代碼寫到窗體的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論