VB程序設(shè)計(jì)語句_第1頁
VB程序設(shè)計(jì)語句_第2頁
VB程序設(shè)計(jì)語句_第3頁
VB程序設(shè)計(jì)語句_第4頁
VB程序設(shè)計(jì)語句_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章VB程序設(shè)計(jì)語句,5.1賦值語句賦值語句是任何程序設(shè)計(jì)語言中最基本的語句。格式:LET變量名=表達(dá)式功能:它的作用是把右邊表達(dá)式的值賦給左邊的變量。說明:(1)LET表示賦值,通??梢允÷浴?2)表達(dá)式的類型應(yīng)與變量的類型一致,即同時(shí)為數(shù)值型或同時(shí)為字符型。當(dāng)是數(shù)值型且有不同精度時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度。,5.1賦值語句,例如:A%=6.3A為整型變量A中的結(jié)果為6在VB中,賦值語句通常是給變量賦值和設(shè)置對(duì)象屬性值。1.給變量賦值例如:DimAAsIntegerDimBAsString*10A=100B=我是中國人可以將一個(gè)表達(dá)式的值賦給一個(gè)變量,所以下面的賦值語句是合法的:DimSAsIntegerDimPAsSingleS=600+1000P=3.14*S+200*500,5.1賦值語句,2.為對(duì)象設(shè)置屬性值在程序中可以用賦值語句為對(duì)象的屬性設(shè)置屬性值。格式:對(duì)象.屬性=屬性值例如:為命令按鈕Command1的Caption屬性設(shè)置值。Command1.Caption=顯示文本為文本框Text1的FontName及FontSize屬性設(shè)置值:Text1.FontName=“隸書”Text1.FontSize=32,5.2條件語句,VB提供了多種形式的條件語句來實(shí)現(xiàn)選擇結(jié)構(gòu)。對(duì)條件進(jìn)行判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。,5.2.1分支結(jié)構(gòu),1.單分支結(jié)構(gòu)(IfThen語句)格式:(1)If條件Then語句塊EndIf(2)If條件Then語句功能:(1)如果條件為真,執(zhí)行Then后面的語句塊,如果條件為假,不執(zhí)行Then后面的語句塊,而執(zhí)行EndIf后的語句。如圖5.1所示。(2)如果條件為真,執(zhí)行Then后面的語句,如果條件為假,不執(zhí)行Then后面的語句。,5.2.1分支結(jié)構(gòu),2.雙分支結(jié)構(gòu)(IfThenElse語句)格式:If條件Then語句塊1Else語句塊2EndIf功能:如果條件為真,執(zhí)行Then后面的語句塊1,如果條件為假,執(zhí)行Else后面的語句塊2?!纠?.1】計(jì)算分段函數(shù)。用雙分支結(jié)構(gòu)實(shí)現(xiàn):y=sinx+(x2+1)x0y=cos-x3+3xx=0Ifx0Theny=sin(x)+(x*x+1)Elsey=cos(x)-x3+3*xEndIf,5.2.1分支結(jié)構(gòu),3.IIf函數(shù)IIf函數(shù)可用來執(zhí)行簡單的條件判斷操作,它是“IfThenElse”結(jié)構(gòu)的簡寫版本。格式:result=IIf(條件,True部分,F(xiàn)alse部分)功能:當(dāng)條件為真時(shí),IIf函數(shù)返回“True部分”,而當(dāng)條件為假時(shí),IIf函數(shù)返回“False部分”。說明:result函數(shù)的返回值,True部分、False部分及結(jié)果變量的類型要一致。,IIf函數(shù),例如:Ifx10Thenr=1Elser=2EndIf而用IIf函數(shù)來代替,可以使程序大大簡化。r=IIf(x10,1,2)【例5.2】某大學(xué)實(shí)行按學(xué)分收費(fèi),如果不超過12學(xué)分,應(yīng)繳納學(xué)費(fèi)為4000元,如果超過12學(xué)分,每超過1學(xué)分,加收500元學(xué)費(fèi)。輸入學(xué)分U,輸出學(xué)分U和應(yīng)繳納的學(xué)費(fèi)T。【例5.3】設(shè)計(jì)一個(gè)對(duì)輸入整數(shù)求和的程序,輸入0時(shí)程序結(jié)束運(yùn)行。,5.2.1分支結(jié)構(gòu),4.多分支結(jié)構(gòu)(IfThenElseIf語句)格式:If條件1Then語句塊1ElseIf條件2Then語句塊2Else語句塊n+1EndIf功能:這種結(jié)構(gòu)稱為多分支結(jié)構(gòu)。先測試條件1,如果條件1為真,執(zhí)行Then后面的語句塊1;如果條件1為假繼續(xù)條件2,如果條件2為真,執(zhí)行后面語句塊2;。如此測試下去。如果所有條件都為假,則執(zhí)行Else后面的語句塊n+1?!纠?.4】在文本框中,輸入學(xué)生成績,判斷其等級(jí),在窗體中輸出。,5.2.2情況語句,情況語句(SelectCase)的一般格式:SelectCase測試表達(dá)式Case表達(dá)式列表1語句塊1Case表達(dá)式列表2語句塊2Case表達(dá)式列表n語句塊nCaseElse語句塊n+1EndSelect【例5.5】用戶在文本框Text1中分別輸入:Dot,Line,Box,Circle,在窗體上分別畫一個(gè)點(diǎn)、一條線、一個(gè)矩形、或一個(gè)圓等圖形,然后在EndSelect語句出口。,5.3循環(huán)語句,5.3.1For循環(huán)格式:For循環(huán)變量=初值To終值Step步長循環(huán)體ExitForNext循環(huán)變量功能:當(dāng)循環(huán)變量的值在初值到終值范圍內(nèi)時(shí),執(zhí)行一次循環(huán)體中的語句塊,并使初值增加一個(gè)步長。當(dāng)循環(huán)變量的值不在初值到終值范圍內(nèi)時(shí),就退出循環(huán),執(zhí)行Next后面的語句。For循環(huán)語句執(zhí)行的流程圖如圖5.5所示。,5.3.1For循環(huán),【例5.6】計(jì)算S=1+2+3+.+10的和。計(jì)算機(jī)執(zhí)行一個(gè)For循環(huán)的過程是:(1)執(zhí)行For語句,把初值1賦給循環(huán)變量P即P=1,把終值10和步長1保存起來。(2)按順序執(zhí)行循環(huán)體中的語句S=S+1,即S=1;(3)執(zhí)行Next語句,把循環(huán)變量P增加一個(gè)步長1,P=P+1,即P=2,P不大于10,繼續(xù)執(zhí)行循環(huán)體S=S+P;(4)接著執(zhí)行Next語句,如果P不大于10,就繼續(xù)執(zhí)行循環(huán)體,如果P大于10,就不再執(zhí)行循環(huán)體,轉(zhuǎn)向到Next語句后面的語句去執(zhí)行。,5.3.2Do循環(huán),Do循環(huán)語句用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。此種語句有兩種語法形式。格式1:DoWhile|Until條件語句塊ExitDo語句塊Loop格式2:Do語句塊ExitDo語句塊LoopWhile|Until條件功能:當(dāng)指定的關(guān)鍵字While用于指明條件為真(True)時(shí),執(zhí)行循環(huán)體。,5.3.2Do循環(huán),說明:(1)格式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;格式2為先執(zhí)行后判斷,至少執(zhí)行一次循環(huán)體。兩種格式的While的流程圖分別如圖5.6(a)和5.6(b)所示。(2)關(guān)鍵字Until用于指明條件為假(False)時(shí),執(zhí)行循環(huán)體。(3)ExitDo:當(dāng)執(zhí)行該語句時(shí),退出循環(huán),執(zhí)行Loop的下一句。ExitDo一般放在IfThenEndIf語句中。,5.3.2Do循環(huán),下面是最簡單的形式,While子句的作用是當(dāng)給定的條件為真時(shí)繼續(xù)執(zhí)行循環(huán)體,當(dāng)條件為假時(shí)終止循環(huán)。DoWhile條件循環(huán)體Loop【例5.7】用DoWhile語句編寫計(jì)算S=1+2+3+.+10的和的程序。,5.3.3多重循環(huán),在循環(huán)體內(nèi)又包含了一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)嵌套對(duì)For循環(huán)語句和DoLoop語句均適用?!纠?.8】打印九九表。程序運(yùn)行結(jié)果如圖5.7所示。,5.3.4GoTo語句,格式:GoTo標(biāo)號(hào)、行號(hào)功能:該語句的作用是無條件地轉(zhuǎn)移到標(biāo)號(hào)或行號(hào)指定的那行語句。【例5.9】求100以內(nèi)的素?cái)?shù)。判斷某數(shù)m是否為素?cái)?shù)的方法很多,最簡單的方法是從素?cái)?shù)的定義來求解,其算法思想是:對(duì)于m從i=2,3,m-1判別m能否被i整除,只要有一個(gè)數(shù)能整除,m不是素?cái)?shù),否則m是素?cái)?shù)。,5.3.5End語句,格式:End功能:結(jié)束程序的運(yùn)行。它可放在任何一個(gè)事件過程中。,5.3.6應(yīng)用舉例,【例5.10】求S=1+3+5+99之和?!纠?.11】求S=1*2*3*10之積?!纠?.12】二重循環(huán)的運(yùn)行結(jié)果?!纠?.13】運(yùn)行下列程序?!纠?.14】編寫在窗口上顯示如圖5.8圖案的程序?!纠?.15】設(shè)計(jì)一個(gè)計(jì)算1+2+3+.+.之和直到累加結(jié)果超過30000的程序。【例5.16】用DoWhile循環(huán),求S=1+2+3+.+100之和?!纠?.17】用DoWhile循環(huán),求S=5*4*3*2*1之積?!纠?.18】產(chǎn)生若干個(gè)隨機(jī)數(shù),直到有一個(gè)隨機(jī)數(shù)大于0.9為止的程序?!纠?.19】產(chǎn)生50個(gè)兩位隨機(jī)整數(shù)的程序。【例5.20】產(chǎn)生12個(gè)30100隨機(jī)整數(shù)的程序。【例5.21】輸出150之間,能被3整除的數(shù),并累加這些數(shù)的和。,5.4數(shù)組,5.4.1數(shù)組的概念S(0,0)S(0,1)S(0,2)S(0,3)S(0,4)S(1,0)S(1,1)S(1,2)S(1,3)S(1,4)S(2,0)S(2,1)S(2,2)S(2,3)S(2,4)S(6,0)S(6,1)S(6,2)S(6,3)S(6,4)在VB中如果沒有特別的說明,數(shù)組元素的下標(biāo)是從0開始的,即第一元素的下標(biāo)為0。數(shù)組分靜態(tài)數(shù)和動(dòng)態(tài)數(shù)組。在定義數(shù)組時(shí)已確定了數(shù)組的大小,稱為靜態(tài)數(shù)組。在定義數(shù)組時(shí)未給出數(shù)組的大小,省略了括號(hào)中的下標(biāo),稱動(dòng)態(tài)數(shù)組。,5.4.2靜態(tài)數(shù)組的定義,在VB中,可以用4個(gè)語句來定義數(shù)組。4個(gè)語句格式相同,但適應(yīng)范圍不一樣。Dim用在窗體模塊或標(biāo)準(zhǔn)模塊中,定義窗體或標(biāo)準(zhǔn)模塊數(shù)組,也可在過程中用。ReDim用在過程中。Static用在過程中。Public用在標(biāo)準(zhǔn)模塊中,定義全局?jǐn)?shù)組。格式:Dim數(shù)組名(下標(biāo))As類型Dim數(shù)組名(下界TO上界),下界To上界As類型,5.4.2靜態(tài)數(shù)組的定義,功能:定義一個(gè)數(shù)組各維的大小,并分配相應(yīng)的存儲(chǔ)空間。說明:(1)格式中的數(shù)組名與簡單變量的命名規(guī)則相同。(2)下標(biāo)是數(shù)組的維數(shù),可以用來定義多維數(shù)組,在一般情況下,若缺省上界,則數(shù)組元素下標(biāo)的下界為0;當(dāng)使用下界To上界時(shí),下標(biāo)的范圍可以為-3276832767。一維數(shù)組的大小為:(上界-下界+1)。下界都必須小于上界。如果希望下標(biāo)從1開始,可以通過OptionBase語句來實(shí)現(xiàn)。格式:OptionBaseN功能:指定數(shù)組下標(biāo)的缺省下界為1。說明:如果不使用該語句,程序默認(rèn)數(shù)組的下標(biāo)下界為0。OptionBase語句在程序中只能使用一次;使用時(shí)必須把它放在數(shù)組定義之前才起作用。,5.4.2靜態(tài)數(shù)組的定義,(3)As數(shù)據(jù)類型項(xiàng),用來說明數(shù)組的類型,類型可以是:整型Integer長整型Long單精度Single雙精度Double字符串型String用戶定義型(4)DIM語句中的下標(biāo)可以是常數(shù),變量或表達(dá)式。下標(biāo)全為常數(shù)稱為靜態(tài)數(shù)組,即數(shù)組大小在編譯時(shí)是確定的。下標(biāo)中有變量則稱為動(dòng)態(tài)數(shù)組,數(shù)組的大小是可變的,只有在程序運(yùn)行時(shí),變量有確定的值后,數(shù)組的大小才確定。(5)數(shù)組必須先定義,后使用。(6)當(dāng)用Dim語句定義數(shù)組時(shí),該語句把數(shù)值數(shù)組中的全部數(shù)組元素都初始化為0,而把字符串?dāng)?shù)組中的全部元素都初始化為空字符串。,5.4.2靜態(tài)數(shù)組的定義,例如:DimA(4)AsString定義了類型為字符型的一維數(shù)組A,共有5個(gè)元素:A(0)、A(1)、A(2)、A(3)、A(4)。DimB(1,3To5)AsInteger定義了一個(gè)整型的二維數(shù)組,共有6個(gè)元素:B(0,3)、B(0,4)、B(0,5)、B(1,3)、B(1,4)和B(1,5)。DimS(5To5,2To10)AsString*20定義S是一個(gè)定長字符串組成的二維數(shù)組,下標(biāo)范圍是55,210。每個(gè)數(shù)組元素的字符串長度是20。DimX(10)AsInteger定義了數(shù)組X,有11個(gè)元素X(10)=100對(duì)X(10)這個(gè)數(shù)組元素賦值為100,5.4.3數(shù)組下標(biāo)界的測試函數(shù),有時(shí)需要知道數(shù)組的上界值和下界值,這可以通過LBound和UBound函數(shù)來測試。格式:LBound(數(shù)組名,維)格式:UBound(數(shù)組名,維)功能:LBound函數(shù)返回一個(gè)數(shù)組中指定維的下界。UBound函數(shù)返回一個(gè)數(shù)組中指定維的上界?!纠?.22】測試三維數(shù)組的每維的下界和上界的大小。,5.4.4動(dòng)態(tài)數(shù)組的定義,格式:ReDim數(shù)組名(下標(biāo))As類型功能:改變動(dòng)態(tài)數(shù)組的大小和存儲(chǔ)空間。說明:例如:DimA(20,20,20)ReDimA(10,10,10)重新定義動(dòng)態(tài)數(shù)組A的空間ReDimA(5,5,5)再重新定義動(dòng)態(tài)數(shù)組A的空間此程序是采用動(dòng)態(tài)數(shù)組,能根據(jù)應(yīng)用的情況確定數(shù)組的大小,因此編寫的程序有更強(qiáng)的實(shí)用性和通用性。,5.4.5數(shù)組的清除和重新定義,在一個(gè)程序中,同一數(shù)組只能用Dim語句定義一次。但有時(shí)可能需要清除數(shù)組的內(nèi)容或?qū)?shù)組重新定義,這可以用Erase語句來實(shí)現(xiàn)。格式:Erase數(shù)組名,數(shù)組名功能:用于重新初始化靜態(tài)數(shù)組的元素,或者釋放動(dòng)態(tài)數(shù)組的存儲(chǔ)空間。例如:DimT(10)AsIntegerEraseT【例5.23】用Erase語句初始化數(shù)組。,5.4.5數(shù)組的清除和重新定義,程序是定義了一個(gè)靜態(tài)數(shù)組T,用For循環(huán)語句為每個(gè)數(shù)組的元素賦值,然后執(zhí)行Erase語句,將各數(shù)組元素的值清除。程序的運(yùn)行結(jié)果如下:1234500000,5.4.6數(shù)組的基本操作,數(shù)組的基本操作包括輸入、輸出及復(fù)制,這些操作都是對(duì)數(shù)組元素進(jìn)行的。1.給數(shù)組元素賦初值(1)利用For循環(huán)語句DimA(5)AsIntegerForI=1To5A(I)=0數(shù)組的每個(gè)元素值為0Next(2)利用Array函數(shù)在VB中可以使用Array函數(shù)為數(shù)組元素賦值,即把一個(gè)數(shù)據(jù)集賦值給某個(gè)數(shù)組。,利用Array函數(shù),格式:數(shù)組變量名=Array(數(shù)組元素值)功能:將數(shù)組元素值賦給數(shù)組各元素的值,各值之間用逗號(hào)分隔。說明:數(shù)組變量名是預(yù)先定義的數(shù)組名(定義時(shí)沒有指定維數(shù)和上下界,并且類型必須為變量體類型Variant),在數(shù)組變量名之后沒有括號(hào)?!纠?.24】用Array函數(shù)給數(shù)組賦值。說明:(1)利用Array函數(shù)對(duì)數(shù)組各元素賦值,定義數(shù)組時(shí)圓括號(hào)可以省略,其類型只能是Variant。(2)數(shù)組的下界為零,上界由Array函數(shù)括號(hào)內(nèi)的參數(shù)個(gè)數(shù)決定,也可通過函數(shù)UBound獲得。,5.4.6數(shù)組的基本操作,2.數(shù)組的輸入數(shù)組的輸入可以用For循環(huán)語句及文本框控件輸入,也可以通過InputBox函數(shù)輸入。(1)InputBox函數(shù)給數(shù)組賦值【例5.25】用InputBox函數(shù)給數(shù)組賦值。(2)用賦值語句給數(shù)組賦值3.數(shù)組元素的輸出多維數(shù)組元素的輸出和輸入都可以通過多重循環(huán)來實(shí)現(xiàn)。由于VB中的數(shù)組是按行存儲(chǔ)的,因此把控制數(shù)組第一維的循環(huán)變量放在最外層循環(huán)中?!纠?.26】二維數(shù)組的輸入與輸出。,5.4.6數(shù)組的基本操作,4.數(shù)組元素的復(fù)制【例5.27】把N數(shù)組中的數(shù)據(jù)復(fù)制到M數(shù)組中,程序如下:,5.4.7數(shù)組應(yīng)用舉例,【例5.28】用數(shù)組輸入5個(gè)整數(shù),按逆序排列?!纠?.29】用數(shù)組輸入5個(gè)整數(shù),找出最大的數(shù)?!纠?.30】求數(shù)組中最大元素值和所在的下標(biāo)及各元素之和?!纠?.31】輸入一個(gè)字符串,統(tǒng)計(jì)各字母出現(xiàn)的次數(shù),字母不區(qū)分大小寫。程序的運(yùn)行結(jié)分析:(1)統(tǒng)計(jì)26個(gè)字母出現(xiàn)的個(gè)數(shù),要定義一個(gè)具有26個(gè)元素的數(shù)組,每個(gè)元素的下標(biāo)表示對(duì)應(yīng)的字母,元素的值表示對(duì)應(yīng)字母出現(xiàn)的次數(shù)。(2)從輸入的字符串中逐一取出字符,轉(zhuǎn)換成大寫字符(使得大小寫不區(qū)分),進(jìn)行判斷?!纠?.32】用選擇法將數(shù)組排序。對(duì)于已知存放在數(shù)組中的n個(gè)數(shù),用選擇法按遞增順序排.【例5.33】用冒泡排序法將數(shù)組排序。對(duì)于已知存放在數(shù)組中的n個(gè)數(shù),用冒泡法遞增順序排序。,5.5控件數(shù)組,前面我們介紹了數(shù)值數(shù)組和字符數(shù)組。在VB中,還提供了控件數(shù)組,它為處理一組功能相近的控件提供有力的方法。,5.5.1控件數(shù)組的概念,控件數(shù)組是由一組相同類型的控件組成。他們共用一個(gè)控件名,具有相同的屬性,但通常有不同的屬性值。當(dāng)建立控件數(shù)組時(shí),系統(tǒng)給每個(gè)元素賦一個(gè)惟一的索引號(hào)(Index),即下標(biāo),下標(biāo)值由Index屬性指定。通過屬性窗口的Index屬性,可以知道該控件的下標(biāo)是多少,第1個(gè)元素下標(biāo)是0,第2個(gè)元素下標(biāo)是1,以此類推。其所有的元素的Name屬性必須相同??丶?shù)組共享同樣的事件過程。例如,控件數(shù)組Command有3個(gè)命令按鈕,不論單擊哪個(gè)命令按鈕,都會(huì)調(diào)用同一個(gè)事件過程。,5.5.1控件數(shù)組的概念,為了區(qū)分控件數(shù)組中的各個(gè)元素,VB會(huì)把下標(biāo)值傳送給一個(gè)過程。例如,單擊上述控件數(shù)組中的任意一個(gè)命令按鈕時(shí),調(diào)用的事件過程如下:PrivateSubCommand_Click(IndexAsInteger)EndSub,5.5.2控件數(shù)組的建立,控件數(shù)組是針對(duì)控件建立的,因此與普通數(shù)組的定義方法不一樣。可以通過以下三種方法來建立控件數(shù)組。1.在設(shè)計(jì)時(shí)建立控件數(shù)組方法一:(1)在窗體上畫出作為數(shù)組元素的各個(gè)控件。(2)單擊要包含到數(shù)組中的某個(gè)控件,將其激活。(3)在屬性窗口中,選擇Name屬性,并輸入控件的名稱。當(dāng)對(duì)第二個(gè)控件輸入與第一個(gè)控件相同的名稱后,VB將顯示一個(gè)對(duì)話框,如圖5.11所示,詢問是否確實(shí)要建立控件數(shù)組。單擊“是”按鈕,將建立控件數(shù)組,單擊“否”按鈕,則放棄建立操作。,5.5.1控件數(shù)組的概念,方法二:(1)在窗體上畫出一個(gè)控件,將其激活。(2)執(zhí)行“編輯”菜單中的“復(fù)制”命令(或者按Ctrl+C命令),將該控件放入剪貼板中。(3)執(zhí)行“編輯”菜單中的“粘貼”命令(或者按Ctrl+V命令),將顯示一個(gè)對(duì)話框,詢問是否建立控件數(shù)組,如圖5.11所示。(4)單擊對(duì)話框中的“是”按鈕,窗體的左上角將出現(xiàn)一個(gè)控件,它就是控件數(shù)組的第二個(gè)元素。(5)重復(fù)執(zhí)行“編輯”菜單中的“粘貼”命令(或者按Ctrl+V命令),可以建立控件數(shù)組的其他元素。刪除控件數(shù)組,只要改變一個(gè)控件的Name屬性,并把Index屬性置為空(不是0),就把該控件從控件數(shù)組中刪除。,5.5.1控件數(shù)組的概念,【例5.34】建立3個(gè)命令按鈕的控件數(shù)組,當(dāng)單擊某個(gè)命令按鈕時(shí),分別執(zhí)行不同的操作。建立控件數(shù)組的操作步驟如下:(1)在窗體上建立一個(gè)命令按鈕,并把其Name屬性設(shè)置為cmdTest,然后用“編輯”菜單中的“復(fù)制”命令和“粘貼”命令復(fù)制兩個(gè)命令按鈕。(2)把第一、第二、第三個(gè)命令按鈕的Caption屬性分別設(shè)置為“命令按鈕1”、“命令按鈕2”、“命令按鈕3”。,5.5.1控件數(shù)組的概念,2.在運(yùn)行時(shí)添加控件數(shù)組【例5.35】在窗體上建立一個(gè)命令按鈕、兩個(gè)單選按鈕和一個(gè)圖片框。每單擊一次命令按鈕,增加一個(gè)新的單選按鈕。如果單擊某個(gè)單選按鈕,則在圖片框中畫出具有不同填充圖案的圓。本例需要4個(gè)控件,屬性的設(shè)置如表5.1所示。,5.6過程,VB的通用過程包括兩大類:它們是Sub過程(即子程序)和Function過程(即函數(shù))。,5.6.1過程的定義,自定義子過程有兩種方法:在“工具”菜單中定義和在代碼窗口中定義。1.在“工具”菜單中定義2.在代碼窗口中定義自定義子過程的格式如下:Public|PrivateStaticSub子過程名(形參表列)語句塊ExitSub語句塊EndSub功能:定義一個(gè)Sub過程。,5.6.1過程的定義,說明:(1)Public:表示Sub過程是“公用”過程,可在整個(gè)程序范圍被調(diào)用(但需要指明該子程序所在的對(duì)象名,如果在窗體Form1中定義了一個(gè)程序Sub1,在窗體From2中調(diào)用它,應(yīng)該用:CallForm1.Sub1。(2)Private:表示Sub過程是“私用”過程,只能被本窗體中的其他過程訪問,不能被其他模塊的過程訪問。(3)Static:表示該過程中的局部變量是靜態(tài)變量,在過程被調(diào)用后其值仍然保留;如果省略“Static”,則局部變量就默認(rèn)為“自動(dòng)”的,即在每次調(diào)用過程時(shí),局部變量被初始化為0或空字符串。Static對(duì)在過程之外的變量沒有影響,即使這些變量在過程中使用。(4)形參表列:是含在調(diào)用時(shí)傳給該過程的簡單變量名或數(shù)組名,各名字之間用逗號(hào)隔開。,5.6.1過程的定義,“形參表列”指明了調(diào)用時(shí)傳送給過程的參數(shù)的類型和個(gè)數(shù),每個(gè)參數(shù)的形式:ByVal(變量名()As類型,)參數(shù)也稱形參或啞元,在定義時(shí)沒有值。ByVal表示該過程被調(diào)用時(shí),參數(shù)是值傳遞,否則引用傳遞。定義子過程或子函數(shù)時(shí),都可以無參數(shù),但函數(shù)過程無參數(shù)時(shí),函數(shù)過程名后的括號(hào)不能省略。這是函數(shù)過程與子過程的區(qū)別。(5)過程名:是長度不超過255個(gè)字符的變量名。其命名規(guī)則與變量命名規(guī)則相同。不要與VB中的關(guān)鍵字重名,也不要與WindowsAPI函數(shù)重名,也不能與同一級(jí)別的變量同名。在同一個(gè)模塊中,同一個(gè)名稱,不能既用作Sub過程名,又用作Function過程名。(6)ExitSub:表示退出子過程。(7)Static:表示靜態(tài),Public:表示全局,Private:表示局部?!纠?.36】編寫一個(gè)計(jì)算加減乘除的Sub過程。,5.6.2過程的調(diào)用,在VB中可以用兩種方法調(diào)用Sub過程。(1)使用Call語句調(diào)用Sub過程。格式:Call過程名(實(shí)參表列)功能:調(diào)用過程。說明:實(shí)參的個(gè)數(shù)、數(shù)據(jù)類型都要與被調(diào)用過程的參數(shù)一一對(duì)應(yīng)。例如下面是調(diào)用Compute過程的語句:a1=10.5b1=10.5CallCompute(a1,b1)如果過程不帶參數(shù),Call語句中過程后的一對(duì)括號(hào)可以省去,例如有一過程Sum不帶參數(shù),調(diào)用語句只是一行:CallSum這是合法的。,5.6.2過程的調(diào)用,(2)直接使用過程名調(diào)用Sub過程,而不必有Call。格式:過程名實(shí)參實(shí)參功能:調(diào)用過程。說明:不用括號(hào)把實(shí)參括起來。例如,也可以這樣調(diào)用上面的過程:Computea1,b1不帶參數(shù)的過程可以直接寫過程名即可,假如Compute過程沒有參數(shù),以下調(diào)用是符合VB語法的:Compute【例5.37】編寫一個(gè)過程調(diào)用上面的過程Compute程序。,5.6.3退出過程,在過程中可以對(duì)給出的條件測試,并根據(jù)測試的結(jié)果確定是否退出過程,如果要退出過程,則使用ExitSub語句。一進(jìn)入過程,首先測試變量b的值是否等于0,如果b的值為0,立即退出Compute過程。避免在執(zhí)行過程中出現(xiàn)錯(cuò)誤(被零除)。,5.6.4SubMain過程,如果一應(yīng)用程序只包含一個(gè)窗體,則程序從執(zhí)行窗體Form的Load過程開始。如果有多個(gè)窗體,則從設(shè)計(jì)階段建立的第一個(gè)窗體開始執(zhí)行。有時(shí),希望在運(yùn)行窗體程序之前先執(zhí)行一些操作,此時(shí),可以將這些操作寫在SubMain過程中。SubMain是在模塊中定義的,如果一個(gè)程序中包含有多個(gè)模塊,只能允許有一個(gè)SubMain過程。SubMain過程中可以包含若干語句。但它與其他語言中的主程序不同,程序啟動(dòng)時(shí)不會(huì)自動(dòng)執(zhí)行。人們可以指定程序從哪一個(gè)窗體或是SubMain開始執(zhí)行。方法如下:,方法為:,(1)選擇VB主窗口中的“工程”菜單中的“屬性”命令,打開“工程屬性”對(duì)話框,單擊“通用”選項(xiàng),如圖5.17所示。(2)單擊對(duì)話框中的“啟動(dòng)對(duì)象”框右端的箭頭,顯示出當(dāng)前工程中各窗體的名字和SubMain,可以定義啟動(dòng)工程時(shí)先啟動(dòng)的窗體或Su

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論