版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章三種基本結(jié)構(gòu)程序設(shè)計(jì)本章內(nèi)容及要求:1.了解算法概念及算法的表示,掌握用N—S流程序表示算法2.熟練掌握賦值語(yǔ)句、End語(yǔ)句和注釋語(yǔ)句等語(yǔ)句及輸入/輸出消息框函數(shù)的使用;3.熟練掌握行if語(yǔ)句、塊if結(jié)構(gòu)、SelectCase情況選擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu);4.熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的For/Next循環(huán)結(jié)構(gòu)及ExitFor語(yǔ)句、Do/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。重點(diǎn):選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用難點(diǎn):選擇的嵌套及多重循環(huán)結(jié)構(gòu)4.1算法及算法的表示4.1.1算法概述什么是算法:廣義地講:算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的一步一步的規(guī)則的、精確的、無(wú)歧義的描述,它的總步數(shù)是有限的。狹義地講:算法是解決一個(gè)問(wèn)題采取的方法和步驟的描述。下面通過(guò)兩個(gè)簡(jiǎn)單的例子加以說(shuō)明:例4.1輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。將三個(gè)數(shù)依次輸入到變量A、B、C中,設(shè)變量MAX存放最大數(shù)。其算法如下:
例4.2輸入10個(gè)數(shù),打印輸出其中最大的數(shù)。算法設(shè)計(jì)如下:(1)輸入1個(gè)數(shù),存入變量A中,將記錄數(shù)據(jù)個(gè)數(shù)的變量N賦值為1,即N=1(2)將A存入表示最大值的變量Max中,即Max=A(3)再輸入一個(gè)值給A,如果A>Max則Max=A,否則Max不變(4)讓記錄數(shù)據(jù)個(gè)數(shù)的變量增加1,即N=N+1(5)判斷N是否小于10,若成立則轉(zhuǎn)到第(3)步執(zhí)行,否則轉(zhuǎn)到第(6)步。(6)打印輸出max1)輸入A、B、C。2)A與B中大的一個(gè)放入MAX中。3)把C與MAX中大的一個(gè)放入MAX中。4)輸出MAX,MAX即為最大數(shù)。4.1.2算法的特性有窮性確定性有0個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出有效性4.1.3算法的表示一、自然語(yǔ)言與偽代碼表示算法自然語(yǔ)言:就是指人們?nèi)粘J褂玫恼Z(yǔ)言,可以是漢語(yǔ)、英語(yǔ)或其它語(yǔ)言。偽代碼:是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)(包括數(shù)學(xué)符號(hào))來(lái)描述算法。例如:例4.1可用如下的偽代碼表示Begin(算法開(kāi)始)
輸入A,B,CIFA>B則A→Max
否則B→MaxIFC>Max則C→MaxPrintMaxEnd(算法結(jié)束)二用傳統(tǒng)流程圖表示算法處理框起止框I/O框判斷框流程線連接點(diǎn)1、傳統(tǒng)流程圖中的基本符號(hào)2、三種基本結(jié)構(gòu)的表示(1)順序結(jié)構(gòu)條件語(yǔ)句1語(yǔ)句2YN語(yǔ)句1語(yǔ)句2(2)選擇結(jié)構(gòu)條件(a)條件語(yǔ)句組(3)循環(huán)結(jié)構(gòu)a)當(dāng)型循環(huán)b)直到循環(huán)YNYN(b)語(yǔ)句組三種基本結(jié)構(gòu)的特點(diǎn):(1)只有一個(gè)入口(2)只有一個(gè)出口(3)不存在死語(yǔ)句(4)不存在死循環(huán)例:例4.2輸入10個(gè)數(shù),打印輸出其中的最大的數(shù)的流程圖從10個(gè)數(shù)中選出最大的數(shù)的流程圖N<10Max=AN=1A>MaxMax=A輸入A開(kāi)始再輸入給AN=N+1打印Max結(jié)束YNNY4.1.4用N—S流程圖表示算法將全部算法寫在一個(gè)矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框三種基本結(jié)構(gòu)的N—S圖表示:語(yǔ)句A語(yǔ)句B語(yǔ)句A語(yǔ)句B條件YN1、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)語(yǔ)句組(3)循環(huán)結(jié)構(gòu)a)當(dāng)型循環(huán)b)直到循環(huán)當(dāng)條件成立語(yǔ)句組直到當(dāng)條件成立例:畫出從10個(gè)數(shù)中選出最大的數(shù)的N—S流程圖(a)(b)傳統(tǒng)流程圖N<10Max=AN=1A>MaxMax=A輸入A開(kāi)始再輸入給AN=N+1打印Max結(jié)束YNNY輸入A當(dāng)N<=10Max=AN=N+1打印Max輸入AN—S流程圖A>=MaxYNPrivateSubForm_Click()Dima%,max%,i%max=aFori=1To10a=Val(InputBox("A=?"))Ifa>maxThenmax=aNextiPrint"Max=";maxEndSub最后需要說(shuō)明的是:上面介紹的算法表示是給人看的,即是為幫助程序開(kāi)發(fā)人員閱讀、編寫程序而設(shè)計(jì)的一種輔助工具,程序則必須符一計(jì)算機(jī)語(yǔ)言的語(yǔ)法規(guī)則。下面是例4.2的計(jì)算機(jī)程序,即為用計(jì)算機(jī)語(yǔ)言表示算法:4.1.6結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)(一)、用計(jì)算機(jī)解決問(wèn)題的過(guò)程提出、分析問(wèn)題確定算法模型設(shè)計(jì)算法編寫程序調(diào)試程序分析輸出結(jié)果正確合理結(jié)束不正確(二)、結(jié)構(gòu)化程序設(shè)計(jì)思想自頂向下、逐步細(xì)化、模塊化自頂向下:先從全局、整體設(shè)計(jì)逐步細(xì)化:將一個(gè)問(wèn)題分解成幾個(gè)較小的問(wèn)題解決模塊化:將一個(gè)大任務(wù)分解成若干個(gè)較小的部分,每個(gè)部分承擔(dān)一定功能,稱為“功能模塊”例:給100個(gè)整數(shù),打印輸出其中的素?cái)?shù)S1N—S流程圖輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,x2,……x100中的非素變?yōu)?S3S2輸入xi當(dāng)i<=100i=i+1i=1S1細(xì)化xi≠0當(dāng)i<=100i=i+1i=1YN打印xiS3細(xì)化S1N—S流程圖輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,……x100中的非素變?yōu)?S3S2S2細(xì)化判斷xi是否是素?cái)?shù),若不是則將xi=0當(dāng)i<=100i=i+1i=1S21r=0r<=將x1除j的余j=j+1j=2YNxi=0直到j(luò)>xi/2S21細(xì)化輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,……x100中的非素變?yōu)?細(xì)化后的流程圖輸入xi當(dāng)i<=100i=i+1i=1當(dāng)i<=100i=1r=0r=xi%jj=j+1j=2YNxi=0直到j(luò)>xi/2i=i+1xi≠0當(dāng)i<=100i=1YN打印xii=i+14.2順序結(jié)構(gòu)4.2.1賦值語(yǔ)句
形式:變量名=表達(dá)式對(duì)象.屬性=表達(dá)式
功能:將表達(dá)式的值賦值給變量名或指定對(duì)象的屬性。一般用于給變量賦值或?qū)丶O(shè)定屬性值.例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”說(shuō)明:1執(zhí)行過(guò)程:先求表達(dá)式的值,然后將值賦值給左邊的變量。2右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。3不要將“=”理解為數(shù)學(xué)上的等號(hào):A=A+1是表示將A單元的值加1后以放回到A單元。執(zhí)行過(guò)程如右圖4.賦值符號(hào)“=”左邊一定只能是變量名或?qū)ο蟮膶傩砸茫荒苁浅A?、符?hào)常量、表達(dá)式。下面的賦值語(yǔ)句都是錯(cuò)的:5=X'左邊是常量。Abs(X)=20'左邊是函數(shù)調(diào)用,即是表達(dá)式。5.賦值符號(hào)“=”兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。4.2.2數(shù)據(jù)的輸出——Print方法Print方法的一般格式:[對(duì)象名.]Print[<表達(dá)式表>][{,|;}]說(shuō)明:[對(duì)象名.]可以是窗體名、圖片框名,也可是立即窗口“Debug”。若省略對(duì)象,則表示在當(dāng)前窗體上輸出。在2.3節(jié)窗體對(duì)象的方法中對(duì)Print方法做了詳細(xì)的介紹。用Print方法在圖片框和立即窗口對(duì)象中輸出與在窗體對(duì)象中輸出完全相同。缺省值標(biāo)題題提示4.2.3用戶交互函數(shù)和過(guò)程
1.InputBox函數(shù)變量名=InputBox[$](<提示信息>[,<標(biāo)題>][,<缺省>][,<x坐標(biāo)>][,<y坐標(biāo)>])
其中:提示提示信息,標(biāo)題標(biāo)題區(qū)顯示,缺省輸入?yún)^(qū)缺省值有$返回字符類型,否則為數(shù)值類型.例如,要在屏幕上顯示如下的對(duì)話框:例如:有下列語(yǔ)句如下:
DimstrNameAsString*40,strS1AsString*40strS1=“請(qǐng)輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox$(strS1,“輸入框”,,100,100)
當(dāng)鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.缺省值標(biāo)題題提示2.MsgBox函數(shù)和MsgBox過(guò)程
函數(shù)形式:變量[%]=MsgBox(提示[,按鈕[+圖標(biāo)]+[缺省按鈕]+[模式]][,標(biāo)題])過(guò)程形式:MsgBox提示[,按鈕[+圖標(biāo)]+[缺省按鈕]+[模式]][,標(biāo)題]圖標(biāo)標(biāo)題提示信息命令按鈕說(shuō)明:1“標(biāo)題”和“提示”與InputBox函數(shù)中對(duì)應(yīng)的參數(shù)相同;2“按鈕+圖標(biāo)+缺省按鈕+模式”是整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式(見(jiàn)表4.1)3若程序中需要返回值,則使用函數(shù),否則可調(diào)用過(guò)程。按鈕及圖標(biāo)值如下:根據(jù)用戶所選按鈕,函數(shù)返回1—7的整數(shù)值,其含義如下表:(表4.2)4.2.4注釋語(yǔ)句其語(yǔ)法格式為:Rem<注釋內(nèi)容>或'<注釋內(nèi)容>說(shuō)明:1.<注釋內(nèi)容>指要包括的任何注釋文本。在Rem關(guān)鍵字和注釋內(nèi)容之間要加一個(gè)空格??梢杂靡粋€(gè)英文單引號(hào)“'”來(lái)代替Rem關(guān)鍵字。2.如果在其他語(yǔ)句行后面使用Rem關(guān)鍵字,必需用冒號(hào)(:)與語(yǔ)句隔開(kāi)。若用英文單引號(hào)“'”,則在其他語(yǔ)句行后面不必加冒號(hào)(:)。例如:ConstPI=3.1415925'符號(hào)常量PIS=PI*r*r :Rem計(jì)算圓的面積4.3選擇結(jié)構(gòu)
1.If…Then語(yǔ)句(單分支結(jié)構(gòu))
If<表達(dá)式>Then語(yǔ)句塊EndIf
或
If<表達(dá)式>Then<語(yǔ)句>
例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y.
Ifx<yThent=x:x=y:y=tEndIf
或Ifx<yThent=x:x=y:y=t2.If…Then…Else語(yǔ)句(雙分支結(jié)構(gòu))
If<表達(dá)式>Then<語(yǔ)句塊1>Else<語(yǔ)句塊2>EndIf
If<表達(dá)式>Then<語(yǔ)句1>Else<語(yǔ)句2>
例如:輸出x,y兩個(gè)中值較大的一個(gè)值。IFX>YThenPrintXElsePrintYEndIf也可以寫成如下的單行形式:IFX>YThenPrintXElsePrintY雙分支選擇結(jié)構(gòu)執(zhí)行過(guò)程例4.1設(shè)計(jì)一個(gè)求解一元二次方程的程序3.If…Then…ElseIf語(yǔ)句(多分支結(jié)構(gòu))
形式:
If<表達(dá)式1>Then <語(yǔ)句塊1> ElseIf<表達(dá)式2>Then <語(yǔ)句塊2> … [Else 語(yǔ)句塊n+1] EndIf
例:輸入一學(xué)生成績(jī),評(píng)定其等級(jí)。方法是:90~100分為“優(yōu)秀”,80~89分為“良好”,70~79分為“中等”,60~69分為“及格”,60分以為“不合格”執(zhí)行過(guò)程使用IF語(yǔ)句實(shí)現(xiàn)的程序段如下:Ifx>=90thenPrint"優(yōu)秀"ElseIfx>=80ThenPrint"良好"ElseIfx>=70ThenPrint"中等"ElseIfx>=60ThenPrint"及格"ElsePrint"不及格"EndIf4.3.2SelectCase語(yǔ)句(情況語(yǔ)句)形式:
SelectCase變量或表達(dá)式 Case表達(dá)式列表1 語(yǔ)句塊1 Case表達(dá)式列表2 語(yǔ)句塊2 … [CaseElse 語(yǔ)句塊n+1] EndSelect<表達(dá)式列表>:與<變量或表達(dá)式>同類型的下面四種形式之一:表達(dá)式例:A+5
一組枚舉表達(dá)式(用逗號(hào)分隔)
2,4,6,8
表達(dá)式1To表達(dá)式2
60to100 Is關(guān)系運(yùn)算符表達(dá)式
Is<60數(shù)值型或字符串表達(dá)式例如:將例4.3使用selectcase…..語(yǔ)句來(lái)實(shí)現(xiàn)的程序段如下:SelectCasexCase90to100Print"優(yōu)秀"Case80to89Print"良好"Case70to79Print"中等"Case60to69Print"及格"CaseElsePrint"不及格"EndSelect補(bǔ)充例題:設(shè)計(jì)一個(gè)由計(jì)算機(jī)來(lái)當(dāng)小學(xué)低年級(jí)學(xué)生算術(shù)老師的VB應(yīng)用程序,要求給出一系列的兩個(gè)1~10數(shù)的四則運(yùn)算的算術(shù)題,學(xué)生輸入該題的答案,計(jì)算機(jī)根據(jù)學(xué)生的答案判斷正確與否,并給出成績(jī),單擊結(jié)束命令按鈕,退出應(yīng)用程序。分析:產(chǎn)生1~10操作數(shù),可通過(guò)Int(10*Rnd+1)實(shí)現(xiàn)
4.3.3選擇結(jié)構(gòu)的嵌套在IF語(yǔ)句的Then分支和Else分支中可以完整地嵌套另一IF語(yǔ)句或SelectCase語(yǔ)句,同樣SelectCase語(yǔ)句每一個(gè)Case分支中都可嵌套另一IF語(yǔ)句或另一SelectCase語(yǔ)句。下面是兩種正確的嵌套形式:(1)IF<條件1>Then…..Then<條件2>Then……Else…..EndIf….Else….IF<條件3>Then…..Else…..EndIf…..EndIF(2)IF<條件1>Then…..SelectCase…Case……IF<條件1>Then……Else…..EndIf……Case….…..EndSelect….EndIF注意:只要在一個(gè)分支內(nèi)嵌套,不出現(xiàn)交叉,滿足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套層次也可以任意多。對(duì)于多層IF嵌套結(jié)構(gòu)中,要特別注意IF與Else的配對(duì)關(guān)系,一個(gè)Else必須與IF配結(jié),配對(duì)的原則是:在寫含有多層嵌套的程序時(shí),建議使用縮進(jìn)對(duì)齊方式,這樣容易閱讀和維護(hù)。例4.4設(shè)計(jì)一個(gè)用戶身份驗(yàn)證程序,運(yùn)行界面如下圖所示。4.4循環(huán)結(jié)構(gòu)1.For循環(huán)語(yǔ)句(一般用于循環(huán)次數(shù)已知)形式
For循環(huán)變量=初值to終值[Step步長(zhǎng)] 語(yǔ)句塊 [ExitFor] 語(yǔ)句塊Next循環(huán)變量循環(huán)體>0初值<終值=1時(shí),可省略<0初值>終值=0死循環(huán)步長(zhǎng)循環(huán)次數(shù)例:ForI=2To13Step3PrintI,NextIPrint“I=“,I循環(huán)執(zhí)行次數(shù)輸出I的值分別為:25811出了循環(huán)輸出為:I=14例4.5編程計(jì)算:S=1+2+3+…+100DimS%,I%S=0'累加前變量S為0ForI=1to100S=S+INextIPrint"S=",S當(dāng)N<=100N=N+1打印SS=0,N=1S=S+N例4-5的算法流程圖形式1:(當(dāng)型循環(huán))
Do{While|Until}<條件>語(yǔ)句塊[ExitDo]語(yǔ)句塊Loop4.4.2Do…Loop循環(huán)語(yǔ)句形式2:(直到循環(huán))
Do 語(yǔ)句塊 [ExitDo] 語(yǔ)句塊 Loop{While|Until}<條件>條件語(yǔ)句塊語(yǔ)句塊TFExitDo條件語(yǔ)句塊語(yǔ)句塊TFExitDoDoUntil…Loop執(zhí)行過(guò)程Do…LoopUntil執(zhí)行過(guò)程說(shuō)明:(1)當(dāng)使用While<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“真”,則反復(fù)執(zhí)行循環(huán)體,當(dāng)條件為“假”,則退出循環(huán)。(2)當(dāng)使用Until<條件>構(gòu)成循環(huán)時(shí),當(dāng)條件為“假”,則反復(fù)執(zhí)行循環(huán)體,直到條件成立,即為“真”時(shí),則退出循環(huán)。(3)在循環(huán)體內(nèi)一般應(yīng)有一個(gè)專門用來(lái)改變條件表達(dá)式中變量的語(yǔ)句,以使隨著循環(huán)的執(zhí)行,條件趨于不成立(或成立),最后達(dá)到退出循環(huán)。(4)語(yǔ)句ExitDo的作用是退出它所在的循環(huán)結(jié)構(gòu),它只能用在DO/Loop結(jié)構(gòu)中,并且常常是同選擇結(jié)構(gòu)一起出現(xiàn)在循環(huán)結(jié)構(gòu)中,用來(lái)實(shí)現(xiàn)當(dāng)滿足某一條件時(shí)提前退出循環(huán)。4.4.3While…Wend語(yǔ)句使用格式如下:While<條件><循環(huán)塊>Wend
說(shuō)明:該語(yǔ)句的功能與DoWhile<條件>….Loop實(shí)現(xiàn)的循環(huán)完全相同。例:用do…Loop語(yǔ)句改寫前面的例題4.5例4.7求兩個(gè)整數(shù)的最大公約數(shù)、最小公倍數(shù)Dimn%,m%,nm%,r%m=Val(InputBox("m="))n=Val(InputBox("n="))nm=n*mIfm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopPrint"最大公約數(shù)=",nPrint"最小公倍數(shù)=",nm/n算法使用轉(zhuǎn)碾除法,流程圖如右,實(shí)現(xiàn)的程序代碼如下:
4.4.4循環(huán)的嵌套——多重循環(huán)結(jié)構(gòu)
如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán)。上面介紹的幾種循環(huán)控制結(jié)構(gòu)可以相互嵌套,下面是幾種常見(jiàn)的二重嵌套形式:(1)ForI=….…..ForJ=….….NextJ…..NextI(2)ForI=….…..DoWhile/Until….….Loop…..NextI(3)DoWhile….…..ForJ=….….NextJ…..Loop(4)DoWhile/Until….…..DoWhile/Until….….Loop…..Loop例如:打印九九乘法表.
Fori=1To9Forj=1To9se=i&"×"&j&"="&i*jPicture1.PrintTab((j-1)*9+1);se;NextjPicture1.PrintNexti對(duì)于循環(huán)的嵌套,要注意以下事項(xiàng):(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;(3)不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán).
正確
錯(cuò)誤
Forii=1To10Forjj=1To20… Nextii NextjjForii=1To10Forii=1To20… Nextii NextiiForii=1To10Forjj=1To20… NextjjNextiiForii=1To10…NextiiForii=1To10…Nextii4.4.5幾種循環(huán)語(yǔ)句比較4.4.6循環(huán)結(jié)構(gòu)與選擇結(jié)構(gòu)的嵌套在循環(huán)結(jié)構(gòu)中可以完整嵌套選擇結(jié)構(gòu)即整個(gè)選擇結(jié)構(gòu)都屬于循環(huán)體。在選擇結(jié)構(gòu)中嵌套循環(huán)結(jié)構(gòu)時(shí),則要求整個(gè)循環(huán)結(jié)構(gòu)必須完整地嵌套在一個(gè)分支內(nèi),一個(gè)循環(huán)結(jié)構(gòu)不允許出現(xiàn)在兩個(gè)或兩個(gè)以上的分支內(nèi)。(1)ForI=…………IF…Then……EndIF……NextI(6)IF…Then……ForI=…………EndIF……NextI(5)SelectCase……ForI=…………Case…………Case…………NextI………EndSelect(3)ForI=…………IF…Then……NextI……EndIF(2)IF…Then……ForI=…………NextI……EndIF(4)ForI=…………SelectCase…Case…………Case…………EndSelect……NextI×××4.5其它控制語(yǔ)句
4.5.1Goto語(yǔ)句形式:GoTo{標(biāo)號(hào)|行號(hào)}作用是無(wú)條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語(yǔ)句.標(biāo)號(hào)是一個(gè)字符序列,行號(hào)是一個(gè)數(shù)字序列。
例3.8
求100以內(nèi)的素?cái)?shù)判別某數(shù)m是否為素?cái)?shù)最簡(jiǎn)單的方法是:對(duì)于m從i=2,3,…,m-1判別m能否被i整除,只要有一個(gè)能整除,m不是素?cái)?shù),否則m是素?cái)?shù)。Form=2To100Fori=2Tom-1If(mModi)=0ThenGoToNotNextMNextiPrintmNotNextM:Nextm4.5.2Exit語(yǔ)句
Exit語(yǔ)句用于退出Do...Loop、For...Next、Function或Sub代碼塊。對(duì)應(yīng)的使用格式為:ExitDo、ExitFor、ExitFunction、ExitSub。分別表示退出DO循環(huán)、For循環(huán)、函數(shù)過(guò)程、子過(guò)程。例如:下面的例子是使用Exit語(yǔ)句退出For...Next循環(huán)、Do...Loop循環(huán)及子過(guò)程。PrivateSubForm_Click()DimI%,Num%Do'建立無(wú)窮循環(huán)。ForI=1To100'循環(huán)100次。Num=Int(Rnd*100)'生成一個(gè)0~99的隨機(jī)數(shù)。SelectCaseNumCase10:ExitFor'退出For...Next循環(huán)。Case50:ExitDo'退出Do...Loop循環(huán)。Case64:ExitSub'退出子過(guò)程。EndSelectNextILoopEndSub4.5.3End語(yǔ)句
形式:End
功能:結(jié)束一個(gè)程序的運(yùn)行。在VisualBasic中還有多種形式的End語(yǔ)句,用于結(jié)束一個(gè)程序塊或過(guò)程。其形式有:EndIfEndSelectEndTypeEndWithEndSubEndFunction等它們與對(duì)應(yīng)的語(yǔ)句配對(duì)使用。
4.5.4暫停語(yǔ)句
Stop語(yǔ)句用來(lái)暫停程序的執(zhí)行,相當(dāng)于在事件代碼中設(shè)置斷點(diǎn)。語(yǔ)法格式為:Stop說(shuō)明:1.Stop語(yǔ)句的主要作用是把解釋程序置為中斷(Break)模式,以便對(duì)程序進(jìn)行檢查和調(diào)試??梢栽诔绦虻娜魏蔚胤椒胖肧top語(yǔ)句,當(dāng)執(zhí)行Stop語(yǔ)句時(shí),系統(tǒng)將自動(dòng)打開(kāi)立即窗口。2.與End語(yǔ)句不同。4.5.5With...EndWith語(yǔ)句形式:With對(duì)象名語(yǔ)句塊EndWith
說(shuō)明:With語(yǔ)句可以對(duì)某個(gè)對(duì)象執(zhí)行一系列的語(yǔ)句,而不用重復(fù)指出對(duì)象的名稱。例如,要改變一個(gè)對(duì)象的多個(gè)屬性,可以在With控制結(jié)構(gòu)中加上屬性的賦值語(yǔ)句,這時(shí)候只是引用對(duì)象一次而不是在每個(gè)屬性賦值時(shí)都要引用它。下面的例子顯示了如何使用With語(yǔ)句來(lái)給同一個(gè)對(duì)象的幾個(gè)屬性賦值。例如,需要對(duì)同一對(duì)象設(shè)置幾個(gè)屬性。途徑之一是使用多條語(yǔ)句。PrivateSubForm_Load()Command1.Caption="退出(E&xit)"Command1.Top=500Command1.Left=4500Command1.Enabled=TrueEndSub使用With...EndWith語(yǔ)句,上面程序的代碼如下。PrivateSubForm_Load()WithCommand1.Caption="OK".Top=500.Left=4500.Enabled=TrueEndWithEndSub4.6應(yīng)用程序舉例4.6.1素?cái)?shù)與哥德巴赫猜想例4.9判斷一個(gè)給定的整數(shù)是否為素?cái)?shù)。算法思路:素?cái)?shù)指除了能被1和自身外,不能被其他整數(shù)整除的自然數(shù)。判斷整數(shù)N是不是素?cái)?shù)的基本方法是:將N分別除以2,3,…,N-1,若都不能整除,則N為素?cái)?shù)。因?yàn)镹=Sqr(N)*Sqr(N),所以,當(dāng)N能被大于等于Sqr(N)的整數(shù)整除時(shí),一定存在一個(gè)小于等于Sqr(N)的整數(shù),使N能被它整除,因此只要判斷N能否被2,3,…,Sqr(N)整除即可。算法流程圖如下:DimN%,I%,K%N=Val(InputBox("N=?"))K=Int(Sqr(N))ForI=2ToKIfNModI=0ThenExitForNextIIfI>KThenPrintN;"是素?cái)?shù)"ElsePrintN;"不是素?cái)?shù)"EndIf例4.10編一程序驗(yàn)證哥德巴赫猜想:一個(gè)大于等于6的偶數(shù)可以表示為兩個(gè)素?cái)?shù)之和。例如:6=3+38=3+510=3+7
算法設(shè)計(jì):設(shè)N為大于等于6的任一偶數(shù),將其分解為N1和N2兩個(gè)數(shù),使用N1+N2=N,分別判斷N1和N2是否為素?cái)?shù),若都是,則為一組解。若N1不是素?cái)?shù),就不必再檢查N2是否素?cái)?shù)。先從N1=3開(kāi)始,直到N1=N/2為止。算法流程圖如圖4-29所示。將程序代
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司勞務(wù)派遣協(xié)議書七篇
- 公司協(xié)議書大全
- 萬(wàn)能施工安全協(xié)議書
- 面部發(fā)紅發(fā)熱病因介紹
- 進(jìn)行性球麻痹病因介紹
- 29化學(xué)中考真題匯編《溶液》及答案
- 中考政治第一部分知識(shí)闖關(guān)能力提升第5課時(shí)平等禮貌待人理解寬容他人復(fù)習(xí)課獲
- (范文)卷板機(jī)項(xiàng)目立項(xiàng)報(bào)告
- (2024)吸痰管項(xiàng)目可行性研究報(bào)告寫作范本(一)
- 2023年電子陶瓷材料項(xiàng)目融資計(jì)劃書
- 光伏電站并網(wǎng)調(diào)試方案
- eviews軟件對(duì)于我國(guó)城鎮(zhèn)居民消費(fèi)性支出和可支配收入的分析
- 2022年檔案管理員資格考試題庫(kù)及答案-精簡(jiǎn)版
- 堿爐安裝淺談
- 輕鋼龍骨吊頂和隔墻材料介紹和工藝
- 三科變頻器SK說(shuō)明書
- 光柵衍射實(shí)驗(yàn)報(bào)告.doc
- 腹腔鏡手術(shù)設(shè)備使用說(shuō)明與注意事項(xiàng)
- 建渣處置-運(yùn)輸方案(共4頁(yè))
- 輪轉(zhuǎn)護(hù)士考評(píng)表(精編版)
- 文件交接(模板)
評(píng)論
0/150
提交評(píng)論