版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章基本程序結(jié)構(gòu)本章內(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)6.1算法及算法的表示6.1.1算法概述什么是算法:廣義地講:算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的一步一步的規(guī)則的、精確的、無(wú)歧義的描述,它的總步數(shù)是有限的。狹義地講:算法是解決一個(gè)問(wèn)題采取的方法和步驟的描述。下面通過(guò)兩個(gè)簡(jiǎn)單的例子加以說(shuō)明:例6.1輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。將三個(gè)數(shù)依次輸入到變量A、B、C中,設(shè)變量MAX存放最大數(shù)。其算法如下:例6.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ù)。6.1.2算法的特性有窮性確定性有0個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出有效性6.1.3算法的表示一、自然語(yǔ)言與偽代碼表示算法自然語(yǔ)言:就是指人們?nèi)粘J褂玫恼Z(yǔ)言,可以是漢語(yǔ)、英語(yǔ)或其它語(yǔ)言。偽代碼:是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)(包括數(shù)學(xué)符號(hào))來(lái)描述算法。例如:例6.1可用如下的偽代碼表示Begin(算法開(kāi)始)
輸入
A,B,CIFA>B則
A→Max
否則
B→MaxIFC>Max則
C→MaxPrintMaxEnd(算法結(jié)束)二、用傳統(tǒng)流程圖表示算法處理框起止框I/O框判斷框流程線(xiàn)連接點(diǎn)1、傳統(tǒng)流程圖中的基本符號(hào)2、三種基本結(jié)構(gòu)的傳統(tǒng)表示(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)例:例6.2輸入10個(gè)數(shù),打印輸出其中的最大的數(shù)的流程圖從10個(gè)數(shù)中選出最大的數(shù)的流程圖N<10Max=AN=1A>MaxMax=A輸入A開(kāi)始再輸入給AN=N+1打印Max結(jié)束YNNY6.1.4用N—S流程圖表示算法將全部算法寫(xiě)在一個(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)條件成立例:畫(huà)出從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ā)人員閱讀、編寫(xiě)程序而設(shè)計(jì)的一種輔助工具,程序則必須符一計(jì)算機(jī)語(yǔ)言的語(yǔ)法規(guī)則。下面是例6.2的計(jì)算機(jī)程序,即為用計(jì)算機(jī)語(yǔ)言表示算法:6.1.5結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)(一)用計(jì)算機(jī)解決問(wèn)題的過(guò)程提出、分析問(wèn)題確定算法模型設(shè)計(jì)算法編寫(xiě)程序調(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)一定功能,稱(chēng)為“功能模塊”例:給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+16.2順序結(jié)構(gòu)6.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ù)類(lèi)型一般要求應(yīng)一致。具體規(guī)則(P77)6.2.2注釋語(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ì)算圓的面積6.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也可以寫(xiě)成如下的單行形式:
IFX>YThenPrintXElsePrintY
雙分支選擇結(jié)構(gòu)執(zhí)行過(guò)程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>=90then Print"優(yōu)秀"ElseIfx>=80Then Print"良好"ElseIfx>=70Then Print"中等"ElseIfx>=60Then Print"及格"Else Print"不及格"EndIf6.3.2SelectCase語(yǔ)句(條件分支)形式:
SelectCase變量或表達(dá)式
Case表達(dá)式列表1
語(yǔ)句塊1 Case表達(dá)式列表2
語(yǔ)句塊2 … [CaseElse
語(yǔ)句塊n+1] EndSelect<表達(dá)式列表>:與<變量或表達(dá)式>同類(lèi)型的下面四種形式之一:表達(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á)式將例6.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)6.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…..
if<條件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)交叉,滿(mǎn)足結(jié)構(gòu)規(guī)則,其嵌套的形式將有很多種,嵌套層次也可以任意多。對(duì)于多層IF嵌套結(jié)構(gòu)中,要特別注意IF與Else的配對(duì)關(guān)系,一個(gè)Else必須與IF配結(jié),配對(duì)的原則是:在寫(xiě)含有多層嵌套的程序時(shí),建議使用縮進(jìn)對(duì)齊方式,這樣容易閱讀和維護(hù)。6.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例6.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ǔ)句塊
Loop6.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è)專(zhuān)門(mén)用來(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)滿(mǎn)足某一條件時(shí)提前退出循環(huán)。6.4.3While…Wend語(yǔ)句使用格式如下:While<條件><循環(huán)塊>Wend
說(shuō)明:該語(yǔ)句的功能與DoWhile<條件>….Loop實(shí)現(xiàn)的循環(huán)完全相同。例:用do…Loop語(yǔ)句改寫(xiě)前面的例題6.5例6.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)的程序代碼如下:
6.4.4循環(huán)的嵌套——多重循環(huán)結(jié)構(gòu)
如果在一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱(chēng)為多重循環(huán),或循環(huán)嵌套,嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱(chēng)為二重循環(huán),嵌套二層稱(chēng)為三重循環(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=1To9
Forj=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…Nextii6.4.5幾種循環(huán)語(yǔ)句比較6.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……EndIF0(4)ForI=…………
SelectCase…Case…………Case…………EndSelect……NextI×××6.5其它控制語(yǔ)句
6.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ù)字序列。例求100以?xún)?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:Nextm6.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ò)程。
EndSelectNextILoopEndSub6.5.3End語(yǔ)句形式:End
功能:結(jié)束一個(gè)程序的運(yùn)行。在VisualBasic中還有多種形式的End語(yǔ)句,用于結(jié)束一個(gè)程序塊或過(guò)程。其形式有:
EndIfEndSelectEndTypeEndWithEndSubEndFunction等它們與對(duì)應(yīng)的語(yǔ)句配對(duì)使用。
6.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)試。可以在程序的任何地方放置Stop語(yǔ)句,當(dāng)執(zhí)行Stop語(yǔ)句時(shí),系統(tǒng)將自動(dòng)打開(kāi)立即窗口。2.與End語(yǔ)句不同。6.5.5With...EndWith語(yǔ)句形式:
With對(duì)象名語(yǔ)句塊
EndWith
說(shuō)明:With語(yǔ)句可以對(duì)某個(gè)對(duì)象執(zhí)行一系列的語(yǔ)句,而不用重復(fù)指出對(duì)象的名稱(chēng)。例如,要改變一個(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=TrueEndWithEndSub6.6應(yīng)用程序舉例6.6.1素?cái)?shù)與哥德巴赫猜想判斷一個(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
驗(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所示。將程序代碼寫(xiě)到窗體的單擊事件中。實(shí)現(xiàn)上面算法的程序代碼如下:PrivateSubForm_Click()DimN%,N1%,N2%,I%,K1%,K
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產(chǎn)責(zé)任清單
- 二零二五版2025年度駕校綜合設(shè)施改造施工合同范本3篇
- 室外消火栓系統(tǒng)概述與室外消防用水量
- 2024年淮北職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 《陶罐和鐵罐》課件圖文
- 二零二五年度藝術(shù)壁畫(huà)粉刷班組服務(wù)協(xié)議6篇
- 21三體綜合征產(chǎn)前診斷
- 《科幻小說(shuō)賞析與寫(xiě)作》 課件 第1、2章 導(dǎo)論科幻小說(shuō)賞析與寫(xiě)作的“關(guān)鍵詞”;“時(shí)間旅行”的歷史與未來(lái)-《時(shí)間機(jī)器》
- 2024年瀘州醫(yī)療器械職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2024年泉州工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 2024五凌電力限公司招聘5人高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 循環(huán)系統(tǒng)練習(xí)試題(含答案)
- 2024年安徽醫(yī)學(xué)高等專(zhuān)科學(xué)校高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試題庫(kù)含答案解析
- 昭通土豆市場(chǎng)調(diào)研報(bào)告
- 公司招標(biāo)管理辦法(國(guó)有企業(yè)適用) 94m
- 酒吧、夜店、KTV員工管理手冊(cè)(2022版)
- 國(guó)際法院規(guī)則全文
- 2023年初一美術(shù)工作總結(jié)
- 【GJB9001C內(nèi)審檢查表】2019年GJB9001C-2017質(zhì)量管理體系內(nèi)部審核檢查表(含完整檢查內(nèi)容)
- 醫(yī)院職能科室綜合質(zhì)量考核表
- 電信業(yè)務(wù)申請(qǐng)表
評(píng)論
0/150
提交評(píng)論