




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 1第第4章章 程序設(shè)計(jì)的程序設(shè)計(jì)的3種基本結(jié)構(gòu)種基本結(jié)構(gòu) 本章內(nèi)容及要求:本章內(nèi)容及要求: 1.了解算法概念及表示,掌握用了解算法概念及表示,掌握用NS流程圖表示算法;流程圖表示算法; 2. 熟練掌握賦值語(yǔ)句、輸入熟練掌握賦值語(yǔ)句、輸入/輸出消息框函數(shù)的使用;輸出消息框函數(shù)的使用; 3. 熟練掌握行熟練掌握行ifif語(yǔ)句、塊語(yǔ)句、塊ifif結(jié)構(gòu)、結(jié)構(gòu)、Select CaseSelect Case情況選擇情況選擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu);結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu); 4. 熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的For/NextFor/Next循環(huán)結(jié)
2、構(gòu)及循環(huán)結(jié)構(gòu)及Exit Exit ForFor語(yǔ)句、語(yǔ)句、Do/LoopDo/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。重點(diǎn):重點(diǎn):選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用難點(diǎn):難點(diǎn):選擇的嵌套及多重循環(huán)結(jié)構(gòu)選擇的嵌套及多重循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的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 其他控制語(yǔ)句其他控制語(yǔ)句 4.6 應(yīng)用程序舉例應(yīng)用程序舉例 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 34.1 算法及算法的表示算法及算法的
3、表示 4.1.1 算法概述算法概述 什么是算法:什么是算法: 廣義地講:廣義地講:算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的遵循的一步一步的規(guī)則的、精確的、無(wú)歧義的一步一步的規(guī)則的、精確的、無(wú)歧義的描述,描述,它的總步數(shù)是有限的。它的總步數(shù)是有限的。 狹義地講:狹義地講:算法是解決一個(gè)問(wèn)題采取的方算法是解決一個(gè)問(wèn)題采取的方法和步驟的描述。法和步驟的描述。第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 41) 輸入輸入A、B、C。2) A與與B中大的一個(gè)放入中大的一個(gè)放入MAX中。中。3) 把把C與與MAX中大的一個(gè)放入中大的一個(gè)放入MAX中。中。4) 輸出輸出MAX,MAX即為最大數(shù)。即為最大
4、數(shù)。例例4.1 輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。 將三個(gè)數(shù)依次輸入到變量、將三個(gè)數(shù)依次輸入到變量、B、C中,設(shè)變量中,設(shè)變量MAX存放最大數(shù)。其算法如下:存放最大數(shù)。其算法如下: 4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 5例例4.2 輸入輸入10個(gè)數(shù),打印輸出其中最大的數(shù)。個(gè)數(shù),打印輸出其中最大的數(shù)。算法如下:算法如下: (1)輸入)輸入1個(gè)數(shù)個(gè)數(shù),存入變量存入變量A中中,將記錄數(shù)據(jù)個(gè)數(shù)的變將記錄數(shù)據(jù)個(gè)數(shù)的變量量N賦值為賦值為1,即,即N=1 (2)將)將A存入表示最大值的變量存入表示最大值的變量Max中,即中,即Max=A
5、 (3)再輸入一個(gè)值給)再輸入一個(gè)值給A,如果,如果AMax 則則 Max=A, 否則否則Max不變不變 (4)讓記錄數(shù)據(jù)個(gè)數(shù)的變量增加)讓記錄數(shù)據(jù)個(gè)數(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è)計(jì)的3種基本結(jié)構(gòu) 64.1.2 算法的特性算法的特性 1 有窮性有窮性2 確定性確定性3 有有0個(gè)或多個(gè)輸入個(gè)或多個(gè)輸入4 有一個(gè)或多個(gè)輸出有一個(gè)或多個(gè)輸出5 有效性有效性4.1 算法及算法的表示算
6、法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 74.1.3 算法的表示算法的表示 一、自然語(yǔ)言與偽代碼表示算法一、自然語(yǔ)言與偽代碼表示算法自然語(yǔ)言:自然語(yǔ)言:就是指人們?nèi)粘J褂玫恼Z(yǔ)言,可以是就是指人們?nèi)粘J褂玫恼Z(yǔ)言,可以是漢語(yǔ)、英語(yǔ)或其它語(yǔ)言。漢語(yǔ)、英語(yǔ)或其它語(yǔ)言。偽代碼:偽代碼:是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)(包括數(shù)學(xué)符號(hào))來(lái)描述算法。文字和符號(hào)(包括數(shù)學(xué)符號(hào))來(lái)描述算法。 4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 8例如:例例如:例4.1可用如下的偽代碼表示可用如下的偽代碼表示Begin(算法開(kāi)始)(算法開(kāi)始
7、) 輸入輸入 A,B,C IF AB 則則 AMax 否則否則 BMax IF CMax 則則 CMaxPrint MaxEnd (算法結(jié)束算法結(jié)束)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 9二二 、用、用傳統(tǒng)傳統(tǒng)流程圖表示算法流程圖表示算法處理框起止框I/O框判斷框流程線連接點(diǎn)1、傳統(tǒng)流程圖中的基本符號(hào)、傳統(tǒng)流程圖中的基本符號(hào)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 102、三種基本結(jié)構(gòu)的表示、三種基本結(jié)構(gòu)的表示(1)順序結(jié)構(gòu))順序結(jié)構(gòu)條件語(yǔ)句1語(yǔ)句2YN語(yǔ)句1語(yǔ)句2(2)選擇結(jié)構(gòu))選擇結(jié)構(gòu)4.1 算法及算法的表示算法及算法的
8、表示 第4章 程序設(shè)計(jì)的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)條件語(yǔ)句組YN( b )條件( a )YN語(yǔ)句組4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 12三種基本結(jié)構(gòu)的特點(diǎn):三種基本結(jié)構(gòu)的特點(diǎn):(1)只有一個(gè)入口)只有一個(gè)入口(2)只有一個(gè)出口)只有一個(gè)出口(3)不存在死語(yǔ)句)不存在死語(yǔ)句(4)不存在死循環(huán))不存在死循環(huán)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 13 從從10個(gè)數(shù)中選出最個(gè)數(shù)中選出最大的數(shù)的算法流程圖大的數(shù)的算法流程圖NMaxMax =A輸入A開(kāi)始再輸入給AN=N+
9、1打印Max結(jié)束YNNY4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 144.1.4 用用NS流程圖表示算法流程圖表示算法 將全部算法寫(xiě)在一個(gè)矩形框內(nèi),在矩形內(nèi)還可將全部算法寫(xiě)在一個(gè)矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框。包含其它從屬于它的框。三種基本結(jié)構(gòu)的三種基本結(jié)構(gòu)的NS圖表示:圖表示:語(yǔ)句A語(yǔ)句B語(yǔ)句A語(yǔ)句B條件YN1、順序結(jié)構(gòu)、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)、選擇結(jié)構(gòu)4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的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)例:例: 畫(huà)出從畫(huà)出從10個(gè)數(shù)中選出最大的數(shù)的個(gè)數(shù)中選出
10、最大的數(shù)的NS 流程圖。流程圖。語(yǔ)句組當(dāng)條件成立( a )語(yǔ)句組直到當(dāng)條件成立( b )4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 16傳統(tǒng)流程圖NMaxMax =A輸入A開(kāi)始再輸入給AN=N+1打印Max結(jié)束YNNY輸入A當(dāng)NMaxYN輸入A4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的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的計(jì)算機(jī)的計(jì)算機(jī) 程序,即為用計(jì)算機(jī)語(yǔ)言表示算法:程序,即為用計(jì)算機(jī)語(yǔ)言表示算法:4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 184.1.5 結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)(一)用計(jì)算機(jī)解決問(wèn)題的過(guò)程(一)用計(jì)算機(jī)解決問(wèn)題的過(guò)程提出、分提出、分析問(wèn)題析問(wèn)題確定算確定算法模型法模型設(shè)計(jì)設(shè)計(jì)算法算法編寫(xiě)編寫(xiě)程序程序調(diào)試調(diào)試程序程序分析輸分析輸出結(jié)果出結(jié)果正確正確合理合理結(jié)束結(jié)束不正確不正確4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 19(二)結(jié)構(gòu)化程序設(shè)計(jì)思想(二)結(jié)構(gòu)化程序設(shè)計(jì)思想自頂向下、逐步細(xì)化
12、、模塊化自頂向下、逐步細(xì)化、模塊化自頂向下:自頂向下:先從全局、整體設(shè)計(jì)先從全局、整體設(shè)計(jì)逐步細(xì)化:逐步細(xì)化:將一個(gè)問(wèn)題分解成幾個(gè)較小的問(wèn)題解決將一個(gè)問(wèn)題分解成幾個(gè)較小的問(wèn)題解決模塊化:模塊化: 將一個(gè)大任務(wù)分解成若干個(gè)較小的部分,將一個(gè)大任務(wù)分解成若干個(gè)較小的部分, 每每 個(gè)部分承擔(dān)一定功能,稱為個(gè)部分承擔(dān)一定功能,稱為“功能模塊功能模塊”例:給例:給100個(gè)整數(shù),打印輸出其中的素?cái)?shù)。個(gè)整數(shù),打印輸出其中的素?cái)?shù)。4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 20S1NS流程圖流程圖輸入輸入100個(gè)數(shù)存入個(gè)數(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細(xì)化細(xì)化xi0當(dāng)當(dāng)i=100i=i+1i=1YN打印打印xiS3細(xì)化細(xì)化4.1 算法及算法的表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 21S1NS流程圖流程圖輸入輸入100個(gè)數(shù)存入個(gè)數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中的中的非素變?yōu)榉撬刈優(yōu)?S3S2S2細(xì)化細(xì)化判斷判斷xi是否是素?cái)?shù),是否是素?cái)?shù),若不是則將若不是則將xi=0當(dāng)當(dāng)i=100i=i+1i=1S21r=0rxi/2S21細(xì)化細(xì)化4.1 算法及算法的
14、表示算法及算法的表示 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 22輸入輸入100個(gè)數(shù)存入個(gè)數(shù)存入X1,x2,x100打印打印x1.x100中中不等于不等于0的數(shù)的數(shù)讓讓x1,x100中中的非素變?yōu)榈姆撬刈優(yōu)?細(xì)化后的流程圖細(xì)化后的流程圖輸入輸入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è)計(jì)的3種基本結(jié)構(gòu) 234.2 順序結(jié)構(gòu)順序結(jié)構(gòu)4.2.1 4.2.1 賦值語(yǔ)句賦值語(yǔ)句 形式形式: : 變量名表達(dá)式變量名表達(dá)式 對(duì)象對(duì)象.屬性表達(dá)式屬性表達(dá)式 功能:功能: 將表達(dá)式的值賦值給變量名或指定對(duì)象的屬性。將表達(dá)式的值賦值給變量
15、名或指定對(duì)象的屬性。 一般用于給變量賦值或?qū)丶O(shè)定屬性值。一般用于給變量賦值或?qū)丶O(shè)定屬性值。 例:例: sRate = 0.1 Text1.Text 歡迎使用歡迎使用Visual Basic 6.0”說(shuō)明:說(shuō)明: 1、執(zhí)行過(guò)程:先求表達(dá)式的值,然后將值賦值給左邊的變量。、執(zhí)行過(guò)程:先求表達(dá)式的值,然后將值賦值給左邊的變量。 2、右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。、右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。 3、不要將、不要將“”理解為數(shù)學(xué)上的等號(hào):理解為數(shù)學(xué)上的等號(hào): A=A+1 是表示將是表示將A單元的值加后以放回到單元的值加后以放回到A單元。單元。第4
16、章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 24執(zhí)行過(guò)程如右圖執(zhí)行過(guò)程如右圖4、賦值符號(hào)、賦值符號(hào)“=”左邊一定只能是變量名或?qū)ο蟮膶傩砸筮呉欢ㄖ荒苁亲兞棵驅(qū)ο蟮膶傩砸?,不能是常量、符?hào)常量、表達(dá)式。用,不能是常量、符號(hào)常量、表達(dá)式。 下面的賦值語(yǔ)句都是錯(cuò)的:下面的賦值語(yǔ)句都是錯(cuò)的:5=X 左邊是常量。左邊是常量。Abs(X)=20 左邊是函數(shù)調(diào)用,即是表達(dá)式。左邊是函數(shù)調(diào)用,即是表達(dá)式。 5、賦值符號(hào)、賦值符號(hào)“=”兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。 4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 254.2.2 數(shù)據(jù)的輸出數(shù)據(jù)的輸出Print方法方法 Print方法
17、的一般格式:方法的一般格式: 對(duì)象名對(duì)象名.Print,|;說(shuō)明:說(shuō)明: 對(duì)象名對(duì)象名. 可以是窗體名、圖片框名,也可是可以是窗體名、圖片框名,也可是立即窗口立即窗口“Debug”。若省略對(duì)象,則表示在。若省略對(duì)象,則表示在當(dāng)前窗當(dāng)前窗體體上輸出。上輸出。 用用Print方法在圖片框和立即窗口對(duì)象中輸出與方法在圖片框和立即窗口對(duì)象中輸出與在窗體對(duì)象中輸出完全相同。在窗體對(duì)象中輸出完全相同。 4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 264.2.3 用戶交互函數(shù)和過(guò)程用戶交互函數(shù)和過(guò)程 1. InputBox函數(shù)函數(shù)變量名變量名=InputBox$(, , ) 其中其中:提示提示
18、提示信息提示信息,標(biāo)題標(biāo)題 標(biāo)題區(qū)顯示標(biāo)題區(qū)顯示,缺省缺省輸入?yún)^(qū)缺省值。輸入?yún)^(qū)缺省值。 例如,要在屏幕上顯示如下的對(duì)話框例如,要在屏幕上顯示如下的對(duì)話框:4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 27 例如:有下列語(yǔ)句如下例如:有下列語(yǔ)句如下: Dim x% x= Val(InputBox(“請(qǐng)輸入一個(gè)數(shù)請(qǐng)輸入一個(gè)數(shù)”, “輸入框輸入框”, 100) 語(yǔ)句執(zhí)行后打開(kāi)如下對(duì)話框。語(yǔ)句執(zhí)行后打開(kāi)如下對(duì)話框。缺省值缺省值標(biāo)題標(biāo)題提示提示4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 282. MsgBox函數(shù)和函數(shù)和MsgBox過(guò)程過(guò)程 函數(shù)形式函數(shù)形式:變量變量% = Msg
19、Box(提示提示,按鈕按鈕圖標(biāo)圖標(biāo)+ 缺省按鈕缺省按鈕+模式模式,標(biāo)題,標(biāo)題) 過(guò)程形式過(guò)程形式: 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è)計(jì)的3種基本結(jié)構(gòu) 29說(shuō)明:說(shuō)明: 、“標(biāo)題標(biāo)題”和和“提示提示”與與InputBox函數(shù)函數(shù)中對(duì)應(yīng)的參數(shù)相同;中對(duì)應(yīng)的參數(shù)相同; 、“按鈕圖標(biāo)按鈕圖標(biāo) +缺省按鈕缺省按鈕+模式模式”是是整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式信息框上的圖標(biāo)類型及操作模式(見(jiàn)表見(jiàn)表4
20、.1)4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 30按鈕及圖標(biāo)值如下按鈕及圖標(biāo)值如下:4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的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)用過(guò)程。用過(guò)程。 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 324.2 順序結(jié)構(gòu)順序結(jié)構(gòu) 用戶可根據(jù)用戶可根據(jù)MsgBox函數(shù)的不同返回值,實(shí)現(xiàn)程序函數(shù)的不同返回值,實(shí)現(xiàn)程序的控制流程,就必需通過(guò)編寫(xiě)程序代碼才能實(shí)現(xiàn)。例的控制
21、流程,就必需通過(guò)編寫(xiě)程序代碼才能實(shí)現(xiàn)。例如:如: i = MsgBox(發(fā)生錯(cuò)誤,是否繼續(xù)?發(fā)生錯(cuò)誤,是否繼續(xù)?, vbYesNo + vbQuestion, 提示信息提示信息) If i = 7 Then End 或?qū)懗苫驅(qū)懗?If i = vbNo Then End 當(dāng)用戶單擊當(dāng)用戶單擊“否否”,程序就結(jié)束,單擊,程序就結(jié)束,單擊“是是”或或直接按回車(chē)鍵,程序則繼續(xù)向下執(zhí)行。直接按回車(chē)鍵,程序則繼續(xù)向下執(zhí)行。 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 334.2.4 注釋語(yǔ)句注釋語(yǔ)句 其語(yǔ)法格式為:其語(yǔ)法格式為:Rem 或或 說(shuō)明:說(shuō)明:1. 指要包括的任何注釋文本。在指要包括的任何注釋文本。在Re
22、m關(guān)鍵字關(guān)鍵字和注釋內(nèi)容之間要加一個(gè)空格??梢杂靡粋€(gè)英文單引號(hào)和注釋內(nèi)容之間要加一個(gè)空格??梢杂靡粋€(gè)英文單引號(hào)“”來(lái)來(lái)代替代替Rem關(guān)鍵字。關(guān)鍵字。2. 如果在其他語(yǔ)句行后面使用如果在其他語(yǔ)句行后面使用Rem關(guān)鍵字,必需用冒號(hào)關(guān)鍵字,必需用冒號(hào)(:)與語(yǔ)句隔開(kāi)。若用英文單引號(hào)與語(yǔ)句隔開(kāi)。若用英文單引號(hào)“”,則在其他語(yǔ)句行后面,則在其他語(yǔ)句行后面不必加冒號(hào)不必加冒號(hào)(:)。例如:例如:Const PI=3.1415925 符號(hào)常量符號(hào)常量PIS=PI*r*r : Rem計(jì)算圓的面積計(jì)算圓的面積4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 344.2.5 應(yīng)用舉例應(yīng)用舉例例例4.3 輸入
23、時(shí)間(小時(shí),分和秒),然后使用輸輸入時(shí)間(小時(shí),分和秒),然后使用輸出消息框輸出總計(jì)多少秒。出消息框輸出總計(jì)多少秒。使用文本框輸入數(shù)據(jù),使用消息框輸出計(jì)算結(jié)果,使用文本框輸入數(shù)據(jù),使用消息框輸出計(jì)算結(jié)果,程序運(yùn)行界面如圖所示。程序運(yùn)行界面如圖所示。4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)第4章 程序設(shè)計(jì)的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ù)點(diǎn)后數(shù)點(diǎn)后4位。位。解:球的體積公式解:球的體積公式 :4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)334RV)(
24、34343431323132RRRRV本題所求的球環(huán)面的體積公式本題所求的球環(huán)面的體積公式 :第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 36選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行選擇結(jié)構(gòu)是根據(jù)條件選擇執(zhí)行不同的分支不同的分支語(yǔ)句,語(yǔ)句,以完成問(wèn)題的要求。在以完成問(wèn)題的要求。在Visual Basic程序設(shè)計(jì)中,使程序設(shè)計(jì)中,使用用IF語(yǔ)句和語(yǔ)句和Select Case語(yǔ)句來(lái)處理選擇結(jié)構(gòu)。語(yǔ)句來(lái)處理選擇結(jié)構(gòu)。其特點(diǎn)是:根據(jù)所給定的條件成立(其特點(diǎn)是:根據(jù)所給定的條件成立(True)或)或不成立(不成立(False),從各實(shí)際可能的不同分支中執(zhí)行),從各實(shí)際可能的不同分支中執(zhí)行某一分支的相應(yīng)操作(程序塊),并且任何情況
25、下某一分支的相應(yīng)操作(程序塊),并且任何情況下總有總有“無(wú)論條件多寡,必?fù)衿湟唬浑m然條件眾多,無(wú)論條件多寡,必?fù)衿湟唬浑m然條件眾多,僅選其一僅選其一”的特性。的特性。 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 371. IfThen語(yǔ)句語(yǔ)句(單分支結(jié)構(gòu)單分支結(jié)構(gòu)) If Then 語(yǔ)句塊語(yǔ)句塊 End If 或或 If Then tyx例例:已知兩個(gè)數(shù)已知兩個(gè)數(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條件語(yǔ)句條件語(yǔ)句
26、第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 382. IfThenElse語(yǔ)句語(yǔ)句(雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)) If Then Else End If If Then Else 雙分支選擇結(jié)構(gòu)執(zhí)行過(guò)程雙分支選擇結(jié)構(gòu)執(zhí)行過(guò)程 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 39例如:輸出例如:輸出x,y兩個(gè)中值較大的一個(gè)值。兩個(gè)中值較大的一個(gè)值。 IF XY Then Print X Else Print Y End If也可以寫(xiě)成如下的單行形式:也可以寫(xiě)成如下的單行形式: IF XY Then Print X Else Print Y4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 403. 條
27、件函數(shù)條件函數(shù)Iif() IIf函數(shù)可用來(lái)執(zhí)行簡(jiǎn)單的條件判斷操作,它相當(dāng)于函數(shù)可用來(lái)執(zhí)行簡(jiǎn)單的條件判斷操作,它相當(dāng)于IFThen.Else結(jié)構(gòu)。結(jié)構(gòu)。IIF函數(shù)的使用格式:函數(shù)的使用格式:IIF(,)說(shuō)明:說(shuō)明: (1)與與IF語(yǔ)句中的表達(dá)式相同,通常是關(guān)系表語(yǔ)句中的表達(dá)式相同,通常是關(guān)系表達(dá)式、邏輯表達(dá)式,也可為算術(shù)表達(dá)式。如果是算術(shù)表達(dá)式,達(dá)式、邏輯表達(dá)式,也可為算術(shù)表達(dá)式。如果是算術(shù)表達(dá)式,其值按非其值按非0為為T(mén)rue,0為為False進(jìn)行判斷。進(jìn)行判斷。 (2)當(dāng))當(dāng)為真時(shí),函數(shù)返回為真時(shí),函數(shù)返回的值,當(dāng)?shù)闹?,?dāng)為假時(shí),函數(shù)返回為假時(shí),函數(shù)返回的值。的值。 (3)、可以是任何表達(dá)式
28、??梢允侨魏伪磉_(dá)式。例如:例如:Max=IIF(XY, X, Y )它與下面語(yǔ)句等價(jià):)它與下面語(yǔ)句等價(jià): IF XY Then Max=x Else Max=Y 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 414. IfThenElseIf語(yǔ)句語(yǔ)句(多分支結(jié)構(gòu)多分支結(jié)構(gòu)) 形式形式: If Then ElseIf Then Else 語(yǔ)句塊語(yǔ)句塊 n+1 End If執(zhí)行過(guò)程4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 42例例4.6:輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:90100分為分為“優(yōu)秀優(yōu)秀”,8089分為分為“良好良好”,7
29、079分為分為“中等中等”,6069分為分為“及格及格”,60分以為分以為“不合格不合格”4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)使用使用IF語(yǔ)句實(shí)現(xiàn)的程序段如下:語(yǔ)句實(shí)現(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è)計(jì)的3種基本結(jié)構(gòu) 434.3.2 Select Case語(yǔ)句(情況語(yǔ)句)語(yǔ)句(情況語(yǔ)句)形式:形式:Select Case 變量或表達(dá)式變量或表達(dá)式Case
30、 表達(dá)式列表表達(dá)式列表1語(yǔ)句塊語(yǔ)句塊1Case 表達(dá)式列表表達(dá)式列表2語(yǔ)句塊語(yǔ)句塊2Case Else語(yǔ)句塊語(yǔ)句塊n+1End Select數(shù)值型或字符串表達(dá)式數(shù)值型或字符串表達(dá)式4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 44說(shuō)明:說(shuō)明: :與:與同同類型類型的下面四種形式之一:的下面四種形式之一:v 表達(dá)式表達(dá)式 A +5v 一組枚舉表達(dá)式一組枚舉表達(dá)式(用逗號(hào)分隔用逗號(hào)分隔) 2, 4, 6, 8 v 表達(dá)式表達(dá)式1 To 表達(dá)式表達(dá)式2 60 to 100v Is關(guān)系運(yùn)算符表達(dá)式關(guān)系運(yùn)算符表達(dá)式 Is604.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 45例如:將例
31、例如:將例4.6 使用使用select case.語(yǔ)句來(lái)實(shí)現(xiàn)的程序段如下:語(yǔ)句來(lái)實(shí)現(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è)計(jì)的3種基本結(jié)構(gòu) 462. Choose函數(shù)函數(shù)Choose函數(shù)使用格式:函數(shù)使用格式:Choose(,. ) 說(shuō)明:說(shuō)明:Choose函數(shù)函數(shù)根據(jù)根據(jù)的值來(lái)決定返回的值
32、來(lái)決定返回其后其后中的那個(gè)表達(dá)式的值中的那個(gè)表達(dá)式的值。如果。如果的值為的值為1,則返回,則返回的值,如果的值,如果的值為的值為2,則返回,則返回的值,以此類推。若的值,以此類推。若的值小于的值小于1或大于或大于n,則函數(shù)返回,則函數(shù)返回Null( 空空)。 例如:例如:根據(jù)根據(jù)Nop的值,得到的值,得到+、-、*,/的運(yùn)算符,可的運(yùn)算符,可由理面語(yǔ)句來(lái)實(shí)現(xiàn)。由理面語(yǔ)句來(lái)實(shí)現(xiàn)。Nop= Int(Rnd * 4)+ 1OP= Choose(Nop, +, -, *, /)4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的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è)計(jì)的3種基本結(jié)構(gòu) 48 注意:只能在一個(gè)分支內(nèi)嵌套,注意:只能在一個(gè)分支內(nèi)嵌套,不出現(xiàn)交叉。不出現(xiàn)交叉。滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套層次也可以任意多。層次也可以任意多。對(duì)于多層對(duì)于多層IF嵌套結(jié)構(gòu)
34、中,要特別注意嵌套結(jié)構(gòu)中,要特別注意IF與與Else的配對(duì)關(guān)系,一個(gè)的配對(duì)關(guān)系,一個(gè)Else必須與必須與IF配結(jié),配對(duì)配結(jié),配對(duì)的原則是:的原則是:else總是與離它最近、且尚未配對(duì)的總是與離它最近、且尚未配對(duì)的if配對(duì)。配對(duì)。在寫(xiě)含有多層嵌套的程序時(shí),建議使用在寫(xiě)含有多層嵌套的程序時(shí),建議使用縮進(jìn)縮進(jìn)對(duì)齊對(duì)齊方式,這樣容易閱讀和維護(hù)。方式,這樣容易閱讀和維護(hù)。4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 49例例4.7 設(shè)計(jì)一個(gè)用戶身份驗(yàn)證程序,運(yùn)行界面如下圖所示。設(shè)計(jì)一個(gè)用戶身份驗(yàn)證程序,運(yùn)行界面如下圖所示。 4.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu) 設(shè)密碼分別為設(shè)密碼分別為 1234567(普
35、通用戶)、(普通用戶)、1989643(授權(quán)用戶)和(授權(quán)用戶)和1687799(特許用戶),按回車(chē)鍵表(特許用戶),按回車(chē)鍵表示密碼輸入結(jié)束。如果輸入密碼正確,則用示密碼輸入結(jié)束。如果輸入密碼正確,則用MsgBox對(duì)話框顯示對(duì)話框顯示“你的口令正確你的口令正確,已通過(guò)身份驗(yàn)證已通過(guò)身份驗(yàn)證”并顯示并顯示用戶類型;否則顯示用戶類型;否則顯示“密碼不符,要重試一遍嗎!密碼不符,要重試一遍嗎!”(有(有“是是”和和“否否”兩個(gè)按鈕),當(dāng)用戶單擊兩個(gè)按鈕),當(dāng)用戶單擊“是是”則將焦點(diǎn)定位到文本框中、清除文本框中的內(nèi)容并允則將焦點(diǎn)定位到文本框中、清除文本框中的內(nèi)容并允許再輸入一遍,如果單擊許再輸入一遍
36、,如果單擊“否否”則退出程序。則退出程序。第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 504.4 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 1. For循環(huán)語(yǔ)句循環(huán)語(yǔ)句 (一般用于循環(huán)次數(shù)已知一般用于循環(huán)次數(shù)已知)形式:形式: For 循環(huán)變量初值循環(huán)變量初值 to 終值終值 Step 步長(zhǎng)步長(zhǎng) 語(yǔ)句塊語(yǔ)句塊Exit For 語(yǔ)句塊語(yǔ)句塊 Next 循環(huán)變量循環(huán)變量循環(huán)體 0 初值初值終值終值 當(dāng)當(dāng)=1 時(shí)時(shí),可省可省終值終值=0 死循環(huán)死循環(huán) 步長(zhǎng)步長(zhǎng)4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)變量在終值內(nèi) 語(yǔ)句塊 Exit For 語(yǔ)句塊 循環(huán)變量加步長(zhǎng) T F 循 環(huán) 變 量 得 初值 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 51循環(huán)次
37、數(shù)循環(huán)次數(shù)) 1(步長(zhǎng)初值終值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è)計(jì)的3種基本結(jié)構(gòu) 52例例4.8 編程計(jì)算:編程計(jì)算: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è)計(jì)的3種基本結(jié)構(gòu) 53 條 件 F T Exit Do 語(yǔ)句塊 語(yǔ)句塊 Do WhileLoop 執(zhí)行過(guò)程 形式形式1:(當(dāng)型循環(huán)):(當(dāng)型循環(huán)) Do While|Until 語(yǔ)句塊語(yǔ)句塊 Exit Do 語(yǔ)句塊語(yǔ)句塊 Loop4.4.2 DoLoop循環(huán)語(yǔ)句循環(huán)語(yǔ)句 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 54T F Exit D o 語(yǔ) 句 塊 語(yǔ) 句 塊 條 件 D o Loop W hile 的 執(zhí) 行 過(guò) 程 形式形
39、式2:(直到循環(huán))直到循環(huán))Do 語(yǔ)句塊語(yǔ)句塊 Exit Do 語(yǔ)句塊語(yǔ)句塊Loop While|Until 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 55條 件語(yǔ)句塊語(yǔ)句塊TFExit Do條 件語(yǔ)句塊語(yǔ)句塊TFExit Do Do UntilLoop執(zhí)行過(guò)程執(zhí)行過(guò)程 DoLoop Until執(zhí)行過(guò)程執(zhí)行過(guò)程 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 56說(shuō)明:說(shuō)明: (1 1)當(dāng)使用)當(dāng)使用WhileWhile 構(gòu)成循環(huán)時(shí),當(dāng)構(gòu)成循環(huán)時(shí),當(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)時(shí),當(dāng)條構(gòu)成循環(huán)時(shí),當(dāng)條件為件為“假假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為立,即為“真真”時(shí),則退出循環(huán)。時(shí),則退出循環(huán)。4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 57 (3 3)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門(mén)用來(lái)改)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門(mén)用來(lái)改變條件表達(dá)式中變量的語(yǔ)句,以使隨著循環(huán)的變條件表達(dá)式中變量的語(yǔ)句,以使隨著循環(huán)的執(zhí)行,執(zhí)行,條件趨于不成立(或成立),條件趨于不成立(或成立),最后達(dá)到最后達(dá)到退出循環(huán)。退出循環(huán)。 (4)語(yǔ)句)語(yǔ)句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)中,用來(lái)常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來(lái)實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的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 改寫(xiě)程序計(jì)算:改寫(xiě)程序計(jì)算:S=1+2+3+100第4章 程序設(shè)
42、計(jì)的3種基本結(jié)構(gòu) 594.4.3 WhileWend語(yǔ)句語(yǔ)句使用格式如下:使用格式如下:While Wend 說(shuō)明:說(shuō)明:該語(yǔ)句的功能與該語(yǔ)句的功能與Do While .Loop實(shí)現(xiàn)的循環(huán)完全相同。實(shí)現(xiàn)的循環(huán)完全相同。4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 60例例4.10 求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)求兩個(gè)整數(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è)計(jì)的3種基本結(jié)構(gòu) 61 4.4.4 循環(huán)的嵌套循環(huán)的嵌套多重循環(huán)結(jié)構(gòu)多重循環(huán)結(jié)構(gòu) 如果在如果在一個(gè)循環(huán)內(nèi)一個(gè)循環(huán)內(nèi)完整完整地包含地包含另一個(gè)循另一個(gè)循環(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è)計(jì)的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è)計(jì)的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è)計(jì)的3種基本結(jié)構(gòu) 64對(duì)于循環(huán)的嵌套,要對(duì)于循環(huán)的嵌套,要注意注意以下事項(xiàng):以下事項(xiàng): (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è)計(jì)的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è)計(jì)的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張,問(wèn)有哪幾種組合?張,問(wèn)有哪幾種組合?思考與討論思考與討論第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 674.4.5 幾種循環(huán)語(yǔ)句比較幾種循環(huán)語(yǔ)句比較 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 語(yǔ) 句 行中在 DO 之 前在 DO 之 前使 循
48、環(huán) 結(jié) 束For 語(yǔ) 句 中 無(wú)需 專 門(mén) 語(yǔ) 句必 須 用 專 門(mén) 語(yǔ) 句必 須 使 用 專 門(mén) 語(yǔ) 句使 用 場(chǎng) 合循 環(huán) 次 數(shù) 容 易確 定循 環(huán) /結(jié) 束 控 制 條件 易 給 出循 環(huán) /結(jié) 束 控 制 條件 易 給 出4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的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)即整個(gè)選擇結(jié)構(gòu)都屬于循環(huán)體。即整個(gè)選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要求整個(gè)循環(huán)結(jié)構(gòu)必須求整個(gè)循環(huán)結(jié)構(gòu)必須完整嵌套完整嵌套在一個(gè)分支
49、在一個(gè)分支內(nèi),一個(gè)循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個(gè)或兩內(nèi),一個(gè)循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個(gè)或兩個(gè)以上的分支內(nèi)。個(gè)以上的分支內(nèi)。 4.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)第4章 程序設(shè)計(jì)的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è)計(jì)的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è)計(jì)的3種基本結(jié)構(gòu) 714.5.1 Goto 語(yǔ)句語(yǔ)句 形式形式: Go To 標(biāo)號(hào)標(biāo)號(hào)|行號(hào)行號(hào) 作用是作用是無(wú)條件地轉(zhuǎn)移無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句。行語(yǔ)句。 標(biāo)號(hào)是一個(gè)字符序列標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列。行號(hào)是一個(gè)數(shù)字序列。例如:例如:Lp: goto Lp 4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 724.5.2 Exit 語(yǔ)句語(yǔ)句 Exit 語(yǔ)句用于語(yǔ)句用于退出退出 Do.Loop、For.Next、Function或或
51、Sub代碼塊。代碼塊。 對(duì)應(yīng)的使用格式為:對(duì)應(yīng)的使用格式為:Exit Do、Exit For、Exit Function、Exit Sub。分別表示退出分別表示退出DO循環(huán)、循環(huán)、For循環(huán)、函數(shù)過(guò)程、循環(huán)、函數(shù)過(guò)程、子過(guò)程。子過(guò)程。4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 73Private Sub Form_Click()Dim I%, Num% Do While True 建立無(wú)窮循環(huán)。建立無(wú)窮循環(huán)。 For I = 1 To 100 循環(huán)循環(huán) 100 次。次。 Num = Int(Rnd * 100) 生成一個(gè)生成一個(gè)099的隨機(jī)數(shù)。的隨機(jī)數(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 退出子過(guò)程。退出子過(guò)程。 End Select Next I LoopEnd Sub4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 744.5.3 End 語(yǔ)句語(yǔ)句 形式:形式:End 功能:功能:結(jié)束結(jié)束一個(gè)程序的運(yùn)行。一個(gè)程序的運(yùn)行。 在在Visual Basic中還有多種形式的中還有多種形式的End語(yǔ)句,用于語(yǔ)句,用于結(jié)束一個(gè)程序塊或過(guò)程。結(jié)束一個(gè)程序塊或
53、過(guò)程。 其形式有:其形式有: End IfEnd SelectEnd Type End WithEnd SubEnd Function等,等,它們與對(duì)應(yīng)的語(yǔ)句配對(duì)使用。它們與對(duì)應(yīng)的語(yǔ)句配對(duì)使用。4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 754.5.4 暫停語(yǔ)句暫停語(yǔ)句 Stop語(yǔ)句用來(lái)語(yǔ)句用來(lái)暫停程序的執(zhí)行暫停程序的執(zhí)行,相當(dāng)于在事件代,相當(dāng)于在事件代碼中設(shè)置斷點(diǎn)。語(yǔ)法格式為:碼中設(shè)置斷點(diǎn)。語(yǔ)法格式為: Stop說(shuō)明:說(shuō)明: 1. Stop語(yǔ)句的主要作用是把解釋程序置為中斷語(yǔ)句的主要作用是把解釋程序置為中斷(Break)模式,以便對(duì)程序進(jìn)行檢查和調(diào)試??梢栽诔棠?/p>
54、式,以便對(duì)程序進(jìn)行檢查和調(diào)試??梢栽诔绦虻娜魏蔚胤椒胖眯虻娜魏蔚胤椒胖肧top語(yǔ)句,當(dāng)執(zhí)行語(yǔ)句,當(dāng)執(zhí)行Stop語(yǔ)句時(shí),系語(yǔ)句時(shí),系統(tǒng)將自動(dòng)打開(kāi)立即窗口。統(tǒng)將自動(dòng)打開(kāi)立即窗口。 2. 與與End語(yǔ)句不同。語(yǔ)句不同。 4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 764.5.5 With.End With 語(yǔ)句語(yǔ)句 形式:形式: With 對(duì)象名對(duì)象名 語(yǔ)句塊語(yǔ)句塊 End With 說(shuō)明:說(shuō)明:With 語(yǔ)句可以對(duì)某個(gè)對(duì)象執(zhí)語(yǔ)句可以對(duì)某個(gè)對(duì)象執(zhí)行一系列的語(yǔ)句,而不用重復(fù)指出對(duì)象的行一系列的語(yǔ)句,而不用重復(fù)指出對(duì)象的名稱。名稱。4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句
55、第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 77 例如,需要對(duì)同一對(duì)象設(shè)置幾個(gè)屬性。途例如,需要對(duì)同一對(duì)象設(shè)置幾個(gè)屬性。途徑之一是使用多條語(yǔ)句。徑之一是使用多條語(yǔ)句。Private Sub Form_Load() Command1.Caption = 退出退出(E&xit) Command1.Top = 500 Command1.Left = 4500 Command1.Enabled = TrueEnd Sub4.5 4.5 其它控制語(yǔ)句其它控制語(yǔ)句 使用使用With.End With 語(yǔ)句,程序的代碼如下。語(yǔ)句,程序的代碼如下。Private Sub Form_Load() With Command1
56、 .Caption = 退出退出(E&xit) .Top = 500 .Left = 4500 .Enabled = True End WithEnd Sub 第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 784.6 應(yīng)用程序舉例應(yīng)用程序舉例4.6.1 累計(jì)求和、求乘積、計(jì)數(shù)等問(wèn)題累計(jì)求和、求乘積、計(jì)數(shù)等問(wèn)題 此類問(wèn)題都要使用循環(huán),根據(jù)問(wèn)題的要求,確定循環(huán)變此類問(wèn)題都要使用循環(huán),根據(jù)問(wèn)題的要求,確定循環(huán)變量的初值、終值或結(jié)束條件及用來(lái)表示計(jì)數(shù)、和、階乘的變量的初值、終值或結(jié)束條件及用來(lái)表示計(jì)數(shù)、和、階乘的變量的初值。量的初值。 例例4.12 編程序計(jì)算:編程序計(jì)算: 當(dāng)最后一項(xiàng)的絕對(duì)值小于當(dāng)最后一項(xiàng)的絕對(duì)值
57、小于0.000001時(shí)停止計(jì)算,輸出其計(jì)算時(shí)停止計(jì)算,輸出其計(jì)算的結(jié)果及其計(jì)算了多少項(xiàng)。的結(jié)果及其計(jì)算了多少項(xiàng)。 編程分析:編程分析:這是用來(lái)求級(jí)數(shù)和的一類題目,這類題目一般這是用來(lái)求級(jí)數(shù)和的一類題目,這類題目一般要寫(xiě)成要寫(xiě)成s=s+t(t為通項(xiàng))這種形式。本題中相加的各項(xiàng)正負(fù)交為通項(xiàng))這種形式。本題中相加的各項(xiàng)正負(fù)交替,第替,第i+1項(xiàng)是第項(xiàng)是第i項(xiàng)乘以項(xiàng)乘以1/(2*i)*(2*i+1)。程序編寫(xiě)如下:。程序編寫(xiě)如下: )!12(1)1(.!71!51!3111nn第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 794.6 應(yīng)用程序舉例應(yīng)用程序舉例4.6.2 素?cái)?shù)與哥德巴赫猜想素?cái)?shù)與哥德巴赫猜想 例例4.
58、14 判斷一個(gè)給定的整數(shù)是否為素?cái)?shù)。判斷一個(gè)給定的整數(shù)是否為素?cái)?shù)。 算法思路:算法思路:素?cái)?shù)指除了能被素?cái)?shù)指除了能被1和自身外,不能被其他整數(shù)和自身外,不能被其他整數(shù)整除的自然數(shù)。判斷整數(shù)整除的自然數(shù)。判斷整數(shù)N是不是素?cái)?shù)的基本方法是:將是不是素?cái)?shù)的基本方法是:將N分分別除以別除以2,3,N-1,若都不能整除,則,若都不能整除,則N為素?cái)?shù)。因?yàn)闉樗財(cái)?shù)。因?yàn)镹=Sqr(N)*Sqr(N),所以,當(dāng),所以,當(dāng)N能被大于等于能被大于等于Sqr(N)的整數(shù)整的整數(shù)整除時(shí),一定存在一個(gè)小于等于除時(shí),一定存在一個(gè)小于等于Sqr(N)的整數(shù),使的整數(shù),使N能被它整除,能被它整除,因此只要判斷因此只要判斷N能
59、否被能否被2,3,Sqr(N)整除即可。整除即可。 算法流程圖如下:算法流程圖如下:第4章 程序設(shè)計(jì)的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; 是素?cái)?shù)是素?cái)?shù)Else Print N; 不是素?cái)?shù)不是素?cái)?shù)End If 4.6 應(yīng)用程序舉例應(yīng)用程序舉例算法流程圖算法流程圖程序代碼:程序代碼:第4章 程序設(shè)計(jì)的3種基本結(jié)構(gòu) 81 例例4.15 編一程序驗(yàn)證哥德巴赫猜想:一個(gè)大于等于編一程序驗(yàn)證
60、哥德巴赫猜想:一個(gè)大于等于6的偶數(shù)的偶數(shù)可以表示為兩個(gè)素?cái)?shù)之和。例如:可以表示為兩個(gè)素?cái)?shù)之和。例如: 6=3+3 8=3+5 10= 3+7 算法設(shè)計(jì):算法設(shè)計(jì):設(shè)設(shè)N為大于等于為大于等于6的的任一偶數(shù),將其分解為任一偶數(shù),將其分解為N1和和N2兩兩個(gè)數(shù),使用個(gè)數(shù),使用N1+N2=N,分別判斷,分別判斷N1和和N2是否為素?cái)?shù),若都是,則是否為素?cái)?shù),若都是,則為一組解。若為一組解。若N1不是素?cái)?shù),就不必不是素?cái)?shù),就不必再檢查再檢查N2是否素?cái)?shù)。先從是否素?cái)?shù)。先從N1=3開(kāi)開(kāi)始,直到始,直到N1=N/2為止。算法流程圖為止。算法流程圖如圖如圖4-29所示。將程序代碼寫(xiě)到窗所示。將程序代碼寫(xiě)到窗體的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙極細(xì)胞外段的超微結(jié)構(gòu)與感受器電位產(chǎn)生的課件
- 習(xí)慣養(yǎng)成教育主題班會(huì)
- 12月公共營(yíng)養(yǎng)師基礎(chǔ)知識(shí)模擬題與答案(附解析)
- 小學(xué)學(xué)校消除大班額工作實(shí)施方案
- 派遣員工職業(yè)滿意度調(diào)查與反饋利用考核試卷
- 《催化裂化技術(shù)講座》課件
- 谷物磨制在特殊人群飲食中的應(yīng)用考核試卷
- 《并串電路電流規(guī)律及例題課件》
- 制鞋業(yè)行業(yè)供應(yīng)鏈管理考核試卷
- 環(huán)境工程講解課件
- 清華附中考試試題及答案
- 《通過(guò)鼻口腔吸痰技術(shù)》教育培訓(xùn)課件
- 工程測(cè)量學(xué)概述
- 北京政法職業(yè)學(xué)院招聘筆試真題2024
- 小學(xué)三年級(jí)英語(yǔ)家長(zhǎng)會(huì)省課賽課獲獎(jiǎng)?wù)n件市賽課一等獎(jiǎng)?wù)n件
- 農(nóng)村小學(xué)教師信息技術(shù)應(yīng)用能力提升策略研究:數(shù)字化教學(xué)資源與實(shí)踐應(yīng)用
- 2024-2025學(xué)年河南省天一大聯(lián)考高二下學(xué)期4月期中測(cè)試數(shù)學(xué)試卷(含答案)
- 2025-2030中國(guó)學(xué)生校服行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 全球化背景下的超大城市治理創(chuàng)新
- 202503寶鋼大廈BA系統(tǒng)改造方案圖文
- 《雙碳管理基礎(chǔ)與實(shí)務(wù)》課件-第六章 ESG管理
評(píng)論
0/150
提交評(píng)論