第2章VisualBasic編程基礎(chǔ)第二部分ppt課件_第1頁
第2章VisualBasic編程基礎(chǔ)第二部分ppt課件_第2頁
第2章VisualBasic編程基礎(chǔ)第二部分ppt課件_第3頁
第2章VisualBasic編程基礎(chǔ)第二部分ppt課件_第4頁
第2章VisualBasic編程基礎(chǔ)第二部分ppt課件_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、根本流程構(gòu)造根本流程構(gòu)造 2.7數(shù)組數(shù)組 2.8過程過程 2.9Visual Basic 6.0Visual Basic 6.0程序組成程序組成 2.10綜合案例綜合案例 2.11實訓(xùn)實訓(xùn) 2.12控制構(gòu)造可控制程序執(zhí)行的流程。假控制構(gòu)造可控制程序執(zhí)行的流程。假設(shè)未運用控制流語句,程序便從左至右、設(shè)未運用控制流語句,程序便從左至右、自頂向下地貫穿這些語句。有些簡單程序自頂向下地貫穿這些語句。有些簡單程序可以只用單向流程來編寫,有些流程可以可以只用單向流程來編寫,有些流程可以依托運算符的優(yōu)先級來控制,但任何編程依托運算符的優(yōu)先級來控制,但任何編程言語的效能和用途皆由其經(jīng)過構(gòu)造和循環(huán)言語的效能和用

2、途皆由其經(jīng)過構(gòu)造和循環(huán)改動語句順序的才干而得。改動語句順序的才干而得。順序構(gòu)造中程序按照語句編寫的先后順序構(gòu)造中程序按照語句編寫的先后順序一條一條地執(zhí)行。運用順序構(gòu)造只需順序一條一條地執(zhí)行。運用順序構(gòu)造只需求將合法語句按照合理的執(zhí)行順序陳列即求將合法語句按照合理的執(zhí)行順序陳列即可一一執(zhí)行??梢灰粓?zhí)行。 按鈕單擊事件中的代碼為按鈕單擊事件中的代碼為Private Sub Command1_Click() Dim x, y As Double Const a = 3 Const b = -5 x = Val(Text1.Text) y = a * x 2 + b * x + 1 y = y / A

3、bs(a + b) Text2.Text = Str$(y)End SubVisual Basic 6.0支持的條件構(gòu)造有:支持的條件構(gòu)造有: IfThen; IfThenElse; Iif; Select Case;1用用IfThen構(gòu)造有條件地執(zhí)行一個或多個語句,單構(gòu)造有條件地執(zhí)行一個或多個語句,單行語法和多行塊語法都可以運用。行語法和多行塊語法都可以運用。If 條件條件 Then 語句語句If 條件條件 Then 語句塊語句塊End If“條件通常是比較式,但它可以是任何計算數(shù)值的表達條件通常是比較式,但它可以是任何計算數(shù)值的表達式。式。Visual Basic 6.0 將這個值解釋為將

4、這個值解釋為True或或False。一個。一個為零的數(shù)值為為零的數(shù)值為False,而任何非零數(shù)值都被看做,而任何非零數(shù)值都被看做True。假。假設(shè)設(shè)“條件為條件為True,那么,那么Visual Basic 6.0執(zhí)行執(zhí)行“Then關(guān)關(guān)鍵字后面的一切鍵字后面的一切“語句塊。語句塊。2用用 IfThenElse塊定義幾個語句塊,執(zhí)行其中一個塊定義幾個語句塊,執(zhí)行其中一個語句:語句:If 條件條件1 Then 語句塊語句塊1Else If 條件條件2 Then 語句塊語句塊2 .Else 語句塊語句塊nEnd IfVisual Basic 6.0首先測試首先測試“條件條件1。假設(shè)它為。假設(shè)它為Fa

5、lse,Visual Basic 6.0就測試就測試“條件條件2,依此類推,直到找到一,依此類推,直到找到一個為個為True的條件。當它找到一個為的條件。當它找到一個為True的條件時,的條件時,Visual Basic 6.0就會執(zhí)行相應(yīng)的語句塊,然后執(zhí)行就會執(zhí)行相應(yīng)的語句塊,然后執(zhí)行End If后面的代后面的代碼。作為一個選擇,可以包含碼。作為一個選擇,可以包含Else語句塊,假設(shè)前語句塊,假設(shè)前n-1個條個條件都是件都是False,那么,那么Visual Basic 6.0執(zhí)行執(zhí)行Else語句塊。語句塊。3IIf函數(shù)用于實現(xiàn)一些簡單的條件判函數(shù)用于實現(xiàn)一些簡單的條件判別分支構(gòu)造,其格式如

6、下:別分支構(gòu)造,其格式如下:IIf(條件,條件為真時的值,條件為假時的條件,條件為真時的值,條件為假時的值值)其作用是對條件進展測試,假設(shè)條件成立其作用是對條件進展測試,假設(shè)條件成立為真值,那么取第一個值即為真值,那么取第一個值即“條件為條件為真時的值,否那么取第二個值即真時的值,否那么取第二個值即“條條件為假時的值。件為假時的值。4Visual Basic 6.0提供提供Select Case構(gòu)造替代構(gòu)造替代IfThenElse,從而可在多個語句塊中有選擇地執(zhí)行其中,從而可在多個語句塊中有選擇地執(zhí)行其中一個。一個。Select Case語句的才干與語句的才干與IfThenElse語句類似,語

7、句類似,但對多重選擇的情況,但對多重選擇的情況,Select Case語句使代碼更加易讀。語句使代碼更加易讀。Select Case在構(gòu)造的開場便處置一個測試表達式并只計算一在構(gòu)造的開場便處置一個測試表達式并只計算一次。然后,次。然后,Visual Basic 6.0將表達式的值與構(gòu)造中每個將表達式的值與構(gòu)造中每個Case的值進展比較。假設(shè)相等,就執(zhí)行與該的值進展比較。假設(shè)相等,就執(zhí)行與該Case相關(guān)聯(lián)的語句相關(guān)聯(lián)的語句塊。塊。Select Case test 測試表達式測試表達式 Case 表達式列表表達式列表1 語句塊語句塊1 Case 表達式列表表達式列表2 語句塊語句塊2 . Case

8、 Else 語句塊語句塊nEnd Select 按鈕單擊事件中的代碼為按鈕單擊事件中的代碼為Private Sub Command1_Click() Dim a As Integer定義變量定義變量 a = Val(Text1.Text)將文本框中輸入的值賦給變量將文本框中輸入的值賦給變量a If a 0 Then當當a為負數(shù)時取其相反數(shù)為負數(shù)時取其相反數(shù) a = -a End If Text2.Text = Str$(a)End Sub 按鈕單擊事件中的代碼為按鈕單擊事件中的代碼為Private Sub Command2_Click() Text1.Text = Text2.Text = E

9、nd Sub“確定按鈕單擊事件中的代碼為確定按鈕單擊事件中的代碼為Private Sub Command1_Click() Dim x As Integer x = Val(Text1.Text) If (x Mod 100) Then假設(shè)假設(shè)X不能被不能被100整除整除 If (x Mod 4 = 0) Then假設(shè)假設(shè)x能被能被4整除但不能被整除但不能被100整除整除 Text2.Text = yes Else 假設(shè)假設(shè)x不能被不能被4和和100整除整除 Text2.Text = no End If ElseIf (x Mod 400 = 0) Then假設(shè)假設(shè)x能被能被100整除,又整除

10、,又能被能被400整除整除 Text2.Text = yes Else Text2.Text = no End IfEnd Sub“去除按鈕單擊事件中的代碼為去除按鈕單擊事件中的代碼為Private Sub Command2_Click() Text1.Text = Text2.Text = End SubCase 6 Text2.Text = 虎虎 Case 7 Text2.Text = 兔兔 Case 8 Text2.Text = 龍龍 Case 9 Text2.Text = 蛇蛇 Case 10 Text2.Text = 馬馬 Case 11 Text2.Text = 羊羊 Case 0

11、 Text2.Text = 猴猴 End SelectEnd SubPrivate Sub Command1_Click() Dim year As Integer, a As Integer year = Val(Text1.Text) a = year Mod 12 Select Case a Case 1 Text2.Text = 雞雞 Case 2 Text2.Text = 狗狗 Case 3 Text2.Text = 豬豬 Case 4 Text2.Text = 鼠鼠 Case 5 Text2.Text = 牛牛ElseIf a=6 Then Text2.Text = 虎虎 Else

12、If a=7 Then Text2.Text = 兔兔 ElseIf a=8 Then Text2.Text = 龍龍 ElseIf a=9 Then Text2.Text = 蛇蛇 ElseIf a=10 Then Text2.Text = 馬馬 ElseIf a=11 Then Text2.Text = 羊羊 Else Text2.Text = 猴猴 End IfEnd Sub運用運用IfThenElse構(gòu)造,代碼如下:構(gòu)造,代碼如下:Private Sub Command1_Click() Dim year As Integer, a As Integer year = Val(Text

13、1.Text) a = year Mod 12 If a=1 Then Text2.Text = 雞雞 ElseIf a=2 Then Text2.Text = 狗狗 ElseIf a=3 Then Text2.Text = 豬豬 ElseIf a=4 Then Text2.Text = 鼠鼠 ElseIf a=5 Then Text2.Text = 牛牛 DoLoop; ForNext。 用用Do循環(huán)反復(fù)執(zhí)行一語句塊,且反復(fù)次數(shù)不定。循環(huán)反復(fù)執(zhí)行一語句塊,且反復(fù)次數(shù)不定。DoLoop語句有幾種演化方式,但每種都計算數(shù)值條件以語句有幾種演化方式,但每種都計算數(shù)值條件以決議能否繼續(xù)執(zhí)行。好像決議

14、能否繼續(xù)執(zhí)行。好像IfThen 條件必需是一個數(shù)值或條件必需是一個數(shù)值或者值為者值為True非零或非零或False零的表達式。在下面的零的表達式。在下面的DoLoop循環(huán)中,只需循環(huán)中,只需“條件為條件為True就執(zhí)行就執(zhí)行“語句塊。語句塊。Do While (條件條件) 語句塊語句塊Loop 當當Visual Basic 6.0執(zhí)行這個執(zhí)行這個Do循環(huán)時會首先測試循環(huán)時會首先測試“條條件。假設(shè)件。假設(shè)“條件為條件為False零,那么跳過一切語句;零,那么跳過一切語句;假設(shè)假設(shè)“條件為條件為True非零,那么非零,那么Visual Basic 6.0執(zhí)行語執(zhí)行語句,然后退回到句,然后退回到Do

15、 While語句再測試條件。因此,只需語句再測試條件。因此,只需“條條件為件為True或非零,循環(huán)可以隨意執(zhí)行多次;假設(shè)或非零,循環(huán)可以隨意執(zhí)行多次;假設(shè)“條件條件一開場便為一開場便為False,那么不會執(zhí)行語句。,那么不會執(zhí)行語句。 DoLoop語句的另一種演化方式是先執(zhí)行語句的另一種演化方式是先執(zhí)行語句,然后再在每次執(zhí)行后測試語句,然后再在每次執(zhí)行后測試“條件。這種方條件。這種方式保證式保證“語句塊至少執(zhí)行一次:語句塊至少執(zhí)行一次:Do 語句塊語句塊Loop While (條件條件) 其他兩種演化方式類似于前兩個,所不同的其他兩種演化方式類似于前兩個,所不同的是,只需是,只需“條件為條件為

16、False而不是而不是True,它們就執(zhí),它們就執(zhí)行循環(huán)。行循環(huán)。 與與Do循環(huán)不同,循環(huán)不同,F(xiàn)or循環(huán)運用一個叫做計數(shù)器的變量,循環(huán)運用一個叫做計數(shù)器的變量,每反復(fù)一次循環(huán)之后,計數(shù)器變量的值就會添加或者減少。每反復(fù)一次循環(huán)之后,計數(shù)器變量的值就會添加或者減少。For循環(huán)的語法如下:循環(huán)的語法如下:For 循環(huán)變量循環(huán)變量 = 初值初值 To 終值終值 Step 步長步長 語句塊語句塊Next 循環(huán)變量循環(huán)變量 參數(shù)參數(shù)“循環(huán)變量、循環(huán)變量、“初值、初值、“終值和終值和“步長都是步長都是數(shù)值型的。數(shù)值型的。 “步長參數(shù)可正可負。假設(shè)步長參數(shù)可正可負。假設(shè)“步長為正,那么步長為正,那么“初值

17、初值必需小于等于必需小于等于“終值,否那么不能執(zhí)行循環(huán)內(nèi)的語句;終值,否那么不能執(zhí)行循環(huán)內(nèi)的語句;假設(shè)假設(shè)“步長為負,那么步長為負,那么“初值必需大于等于初值必需大于等于“終值,終值,這樣才干執(zhí)行循環(huán)體。假設(shè)沒有設(shè)置這樣才干執(zhí)行循環(huán)體。假設(shè)沒有設(shè)置“Step步長,步長,那么那么“步長缺省值為步長缺省值為1。每執(zhí)行一個循環(huán),。每執(zhí)行一個循環(huán),“循環(huán)變量循環(huán)變量= 循環(huán)變量循環(huán)變量+步長。步長。 在執(zhí)行在執(zhí)行For循環(huán)時,其執(zhí)行過程如下。循環(huán)時,其執(zhí)行過程如下。 設(shè)置設(shè)置“循環(huán)變量等于循環(huán)變量等于“初值。初值。 測試測試“循環(huán)變量能否在循環(huán)變量能否在“初值和初值和“終終值之間。假設(shè)不是的話,那么值

18、之間。假設(shè)不是的話,那么Visual Basic 6.0退出循環(huán);假設(shè)是的話執(zhí)行語句。退出循環(huán);假設(shè)是的話執(zhí)行語句。 執(zhí)行完執(zhí)行完“語句塊語句,執(zhí)行語句塊語句,執(zhí)行Next 循環(huán)循環(huán)變量變量,循環(huán)變量,循環(huán)變量= 循環(huán)變量循環(huán)變量+步長。步長。 反復(fù)步驟步驟。反復(fù)步驟步驟。假設(shè)我國現(xiàn)有人口約為假設(shè)我國現(xiàn)有人口約為12億,設(shè)年增長率億,設(shè)年增長率為為1%,計算多少年后添加到,計算多少年后添加到20億。億。Private Sub Form_Click() Dim a As Double Dim r As Single Dim i As Integer a = 12 r = 0.01 i = 0 D

19、o While a 20 當人口數(shù)大于等于當人口數(shù)大于等于20億時終了循億時終了循環(huán)環(huán) a = a * (1 + r) i = i + 1 Loop Print i ;年后中國人口到達年后中國人口到達20億億End Sub運用運用DoLoop While構(gòu)造,代碼如下:構(gòu)造,代碼如下:Private Sub Form_Click() Dim a As Double Dim r As Single Dim i As Integer a = 12 r = 0.01 i = 0 Do a = a * (1 + r) i = i + 1 Loop While a = 20 Then Exit For

20、當人口數(shù)大于等于當人口數(shù)大于等于20億時跳出循環(huán)億時跳出循環(huán) Next i Print i; 年后中國人口到達年后中國人口到達20億億End Sub 在在Visual Basic 6.0中,把一組具有同中,把一組具有同一名字、不同下標的下標變量稱為數(shù)組,一名字、不同下標的下標變量稱為數(shù)組,其普通方式如下:其普通方式如下:S(i) 其中其中S稱為數(shù)組名,稱為數(shù)組名,i是下標。一個數(shù)組是下標。一個數(shù)組可以含有假設(shè)干個下標變量,下標用來指可以含有假設(shè)干個下標變量,下標用來指出某個數(shù)組元素在數(shù)組中的位置,出某個數(shù)組元素在數(shù)組中的位置,S(8)代代表表S數(shù)組中的第八個元素。數(shù)組中的第八個元素。 聲明固定

21、大小的數(shù)組有聲明固定大小的數(shù)組有3種方法,用哪種方法,用哪一種方法取決于數(shù)組應(yīng)有的有效范圍。一種方法取決于數(shù)組應(yīng)有的有效范圍。 建立全局數(shù)組,在模塊的聲明段用建立全局數(shù)組,在模塊的聲明段用Public語句聲明數(shù)組。語句聲明數(shù)組。 建立模塊或窗體數(shù)組,在模塊的聲明段建立模塊或窗體數(shù)組,在模塊的聲明段用用Private語句聲明數(shù)組。語句聲明數(shù)組。 建立部分數(shù)組,在過程中用建立部分數(shù)組,在過程中用Private語句語句聲明數(shù)組。聲明數(shù)組。 聲明數(shù)組時,在數(shù)組名之后跟一個用括弧括起來的,其上界、下界不得超聲明數(shù)組時,在數(shù)組名之后跟一個用括弧括起來的,其上界、下界不得超越越Long數(shù)據(jù)類型的范圍數(shù)據(jù)類型

22、的范圍-2 147 483 6482 147 483 647。例如,以下數(shù)組聲明可出如今模塊的聲明段:例如,以下數(shù)組聲明可出如今模塊的聲明段:Dim A(4) As Integer 同時定義了同時定義了A(0),A(1),A(2),A(3),A(4)5個元素。個元素。Dim S (20) As Double 定義了定義了S(0)到到S(20)21個元素。個元素。為建立公用數(shù)組,直接用為建立公用數(shù)組,直接用Public取代取代Dim:Public A(4) As IntegerPublic S (20) As Double 第一個聲明建立了一個有第一個聲明建立了一個有5個元素的數(shù)組,其索引號為個

23、元素的數(shù)組,其索引號為04;第二個聲明建立;第二個聲明建立了一個有了一個有21個元素的數(shù)組,其索引號范圍是個元素的數(shù)組,其索引號范圍是020。為了規(guī)定下界,可以運用關(guān)鍵字為了規(guī)定下界,可以運用關(guān)鍵字“To顯式顯式提供下界為提供下界為Long數(shù)據(jù)類型:數(shù)據(jù)類型:Dim A (1 To 5) As IntegerDim S (100 To 120) As String在前述聲明中,在前述聲明中,“A的索引值范圍為的索引值范圍為15,而而“S的索引值范圍為的索引值范圍為100120。 有時候,能夠需求知道數(shù)組的上界值有時候,能夠需求知道數(shù)組的上界值和下界值,這可以經(jīng)過和下界值,這可以經(jīng)過Lbound

24、和和Ubound函數(shù)來測試,其格式如下:函數(shù)來測試,其格式如下:Lbound(數(shù)組名數(shù)組名) 前往數(shù)組索引值的上界值前往數(shù)組索引值的上界值Ubound(數(shù)組名數(shù)組名) 前往數(shù)組索引值的下界值前往數(shù)組索引值的下界值數(shù)組長度究竟應(yīng)該為多大才算適宜,數(shù)組長度究竟應(yīng)該為多大才算適宜,有些情況下很難確定,這就需求數(shù)組可以有些情況下很難確定,這就需求數(shù)組可以在運轉(zhuǎn)時具有改動大小的才干。經(jīng)過運用在運轉(zhuǎn)時具有改動大小的才干。經(jīng)過運用動態(tài)數(shù)組,可以在程序中恣意改動數(shù)組的動態(tài)數(shù)組,可以在程序中恣意改動數(shù)組的長度。在長度。在Visual Basic 6.0中,動態(tài)數(shù)組是中,動態(tài)數(shù)組是最靈敏、最方便的,有助于有效管理

25、內(nèi)存。最靈敏、最方便的,有助于有效管理內(nèi)存。 1假設(shè)希望數(shù)組為公用數(shù)組,那么用假設(shè)希望數(shù)組為公用數(shù)組,那么用Public語句聲明數(shù)組;假設(shè)希望數(shù)組為模語句聲明數(shù)組;假設(shè)希望數(shù)組為模塊級,那么在模塊級用塊級,那么在模塊級用Dim語句聲明數(shù)組;語句聲明數(shù)組;假設(shè)希望數(shù)組為部分數(shù)組,那么在過程中假設(shè)希望數(shù)組為部分數(shù)組,那么在過程中用用Static或或Dim語句聲明數(shù)組。給數(shù)組賦一語句聲明數(shù)組。給數(shù)組賦一個空數(shù)組,這樣就將數(shù)組聲明為動態(tài)數(shù)組。個空數(shù)組,這樣就將數(shù)組聲明為動態(tài)數(shù)組。例如:例如:Dim A ()2用用ReDim語句分配實踐的元素個數(shù)。語句分配實踐的元素個數(shù)。ReDim A (X + 1)R

26、eDim語句只能出如今過程中。與語句只能出如今過程中。與Dim語句、語句、Static語句不同,語句不同,ReDim語句是一個可執(zhí)行語句,語句是一個可執(zhí)行語句,由于這一語句,運用程序在運轉(zhuǎn)時執(zhí)行一個操作。由于這一語句,運用程序在運轉(zhuǎn)時執(zhí)行一個操作。ReDim語句支持這樣的語法,它與固定數(shù)組中運語句支持這樣的語法,它與固定數(shù)組中運用的語法一樣。每個用的語法一樣。每個ReDim語句都能改動元素數(shù)語句都能改動元素數(shù)目以及上下界。目以及上下界。建立一個數(shù)組之后,可以對數(shù)組或數(shù)建立一個數(shù)組之后,可以對數(shù)組或數(shù)組元素進展操作。數(shù)組的根本操作包括輸組元素進展操作。數(shù)組的根本操作包括輸入、輸出及復(fù)制,這些操作

27、都是對數(shù)組進入、輸出及復(fù)制,這些操作都是對數(shù)組進展的。此外,在展的。此外,在Visual Basic 6.0中還提供中還提供了了For EachNext語句,可用于對數(shù)組的語句,可用于對數(shù)組的操作。操作。援用數(shù)組元素的格式是:數(shù)組名下援用數(shù)組元素的格式是:數(shù)組名下標。標。例如:例如:Number(1),A(2),Num(0),B(4)等。等。 1利用循環(huán)構(gòu)造給數(shù)組元素賦值,例如利用循環(huán)構(gòu)造給數(shù)組元素賦值,例如為數(shù)組元素賦初值為數(shù)組元素賦初值3:For i=1 to 5 A(i)=3Next i2利用利用Array()函數(shù)為數(shù)組元素賦值,即把一個數(shù)據(jù)集讀函數(shù)為數(shù)組元素賦值,即把一個數(shù)據(jù)集讀入某個

28、數(shù)組。其格式為:入某個數(shù)組。其格式為:數(shù)組變量名數(shù)組變量名Array數(shù)組元素值數(shù)組元素值例如:例如:Static Number Number=Array(1,2,3,4,5)闡明:闡明: Array()函數(shù)對各元素賦值,聲明的數(shù)組是動態(tài)數(shù)組或連函數(shù)對各元素賦值,聲明的數(shù)組是動態(tài)數(shù)組或連小括號都省略的數(shù)組,并且類型只能是小括號都省略的數(shù)組,并且類型只能是Varient。 數(shù)組下界默以為數(shù)組下界默以為0,可經(jīng)過,可經(jīng)過Option Base語句決議,上界語句決議,上界由由Array()函數(shù)括號內(nèi)的參數(shù)個數(shù)決議,也可經(jīng)過函數(shù)括號內(nèi)的參數(shù)個數(shù)決議,也可經(jīng)過UBound()函數(shù)獲得。函數(shù)獲得。 “數(shù)組元

29、素值是需求賦給數(shù)組各元素的值,各值之間數(shù)組元素值是需求賦給數(shù)組各元素的值,各值之間以逗號分開。以逗號分開。 Array()函數(shù)只適用于一維數(shù)組。函數(shù)只適用于一維數(shù)組。1單個數(shù)組元素可以像簡單變量一樣從單個數(shù)組元素可以像簡單變量一樣從一個數(shù)組復(fù)制到另一個數(shù)組。例如:一個數(shù)組復(fù)制到另一個數(shù)組。例如:Dim b(4),a(6)b(2)=a(3)2要復(fù)制整個數(shù)組,要運用要復(fù)制整個數(shù)組,要運用For循環(huán)語循環(huán)語句。句。3要復(fù)制整個數(shù)組,也可以運用一條簡單的賦值語句即要復(fù)制整個數(shù)組,也可以運用一條簡單的賦值語句即可。例如:可。例如:Dim a(4) as integer,b() as integerA(0

30、)=0:a(1)=5:a(2)=10:a(3)=13:a(4)=14B=a 運用這種方法賦值時,必需求留意:運用這種方法賦值時,必需求留意: 賦值號兩邊的數(shù)據(jù)類型必需一致;賦值號兩邊的數(shù)據(jù)類型必需一致; 假設(shè)賦值號左邊的是一個大小固定的數(shù)組,那么數(shù)組賦假設(shè)賦值號左邊的是一個大小固定的數(shù)組,那么數(shù)組賦值出錯;值出錯; 賦值號左邊的必需是一個動態(tài)數(shù)組,賦值時系統(tǒng)將自動賦值號左邊的必需是一個動態(tài)數(shù)組,賦值時系統(tǒng)將自動給動態(tài)數(shù)組分配內(nèi)存空間,使之與右邊數(shù)組大小一樣。給動態(tài)數(shù)組分配內(nèi)存空間,使之與右邊數(shù)組大小一樣。For EachNext循環(huán)與循環(huán)與ForNext循循環(huán)類似,與環(huán)類似,與ForNext語

31、句類似,兩者都是語句類似,兩者都是用來執(zhí)行指定反復(fù)次數(shù)的語句。但用來執(zhí)行指定反復(fù)次數(shù)的語句。但For EachNext語句是專門用于操作數(shù)組的,語句是專門用于操作數(shù)組的,它的格式如下:它的格式如下:For Each In Next 闡明:闡明: 格式中的格式中的“成員必需是一個變體變量,是為成員必需是一個變體變量,是為循環(huán)提供的,代表的是數(shù)組中的每個元素。循環(huán)提供的,代表的是數(shù)組中的每個元素。 數(shù)組名沒有括號和上下界。數(shù)組名沒有括號和上下界。 用用For EachNext語句可以對數(shù)組中的每個元語句可以對數(shù)組中的每個元素進展處置,它包括查詢、顯示和讀取。它所反素進展處置,它包括查詢、顯示和讀取

32、。它所反復(fù)的次數(shù)由數(shù)組中元素的個數(shù)決議,數(shù)組中有多復(fù)的次數(shù)由數(shù)組中元素的個數(shù)決議,數(shù)組中有多少個元素,就自動反復(fù)執(zhí)行多少次。少個元素,就自動反復(fù)執(zhí)行多少次。給數(shù)組賦初值,然后復(fù)制到另一數(shù)組中,給數(shù)組賦初值,然后復(fù)制到另一數(shù)組中,并打印輸出到窗體上。并打印輸出到窗體上。Private Sub Form_Click() Dim a(), b() 定義動態(tài)數(shù)定義動態(tài)數(shù) a = Array(1, 2, 3, 4, 5) 給數(shù)組賦初值給數(shù)組賦初值 ReDim b(UBound(a) 給動態(tài)數(shù)組分配內(nèi)存空間給動態(tài)數(shù)組分配內(nèi)存空間 For i = 0 To UBound(a) 數(shù)組復(fù)制數(shù)組復(fù)制 b(i) =

33、 a(i) Next i For i = 0 To UBound(a) 數(shù)組輸出數(shù)組輸出 Print b(i); Next iEnd Sub求數(shù)組求數(shù)組A中一切元素的和。中一切元素的和。Private Sub Form_Click() Dim sum As Integer Dim A(1 To 10) As Integer 數(shù)組定義數(shù)組定義 For i = 1 To 10 數(shù)組賦初值數(shù)組賦初值 A(i) = 1 Next i sum = 0 For Each x In A 運用運用For EachNext數(shù)組求和數(shù)組求和 sum = sum + x Next x Print sum 輸出數(shù)組和

34、輸出數(shù)組和End SubOption Base 1Private Sub Form_Click() Dim abc(10) As Integer 數(shù)組定義數(shù)組定義 For i = 1 To 10 數(shù)組賦初值為數(shù)組賦初值為0100內(nèi)的整數(shù)內(nèi)的整數(shù) abc(i) = Int(Rnd * 100) Next i Print 運用普通循環(huán)輸出:運用普通循環(huán)輸出: For i = 1 To 10 運用普通循環(huán)輸出數(shù)組運用普通循環(huán)輸出數(shù)組 Print abc(i); Next i Print Print 運用運用For EachNext輸出:輸出: For Each x In abc 運用運用For Ea

35、chNext輸出數(shù)組輸出數(shù)組 Print x; NextEnd Sub將公用的、能完成某一特定功能的程序設(shè)將公用的、能完成某一特定功能的程序設(shè)計成可供其他程序調(diào)用的、獨立的程序段,這種計成可供其他程序調(diào)用的、獨立的程序段,這種程序段就稱為子程序也稱為過程。調(diào)用子程程序段就稱為子程序也稱為過程。調(diào)用子程序的程序段稱為主程序。序的程序段稱為主程序。用過程編程有兩大益處。用過程編程有兩大益處。1過程可使程序劃分成離散的邏輯單元,這過程可使程序劃分成離散的邏輯單元,這樣程序的構(gòu)造明晰且便于調(diào)試。樣程序的構(gòu)造明晰且便于調(diào)試。2一個程序中的過程,往往不用修正或只需一個程序中的過程,往往不用修正或只需稍做改

36、動,便可成為另一個程序的構(gòu)件。稍做改動,便可成為另一個程序的構(gòu)件。在在Visual Basic中,有兩類子過程:事中,有兩類子過程:事件過程和通用過程。件過程和通用過程。在在Visual Basic 6.0中,通用過程分為中,通用過程分為兩類,即子程序過程兩類,即子程序過程Sub過程和函數(shù)過程和函數(shù)過程過程Function過程。過程。通用過程必需由其他過程調(diào)用,它并通用過程必需由其他過程調(diào)用,它并不與任何特定的事件直接相聯(lián)絡(luò),它完成不與任何特定的事件直接相聯(lián)絡(luò),它完成特定的義務(wù),通用過程由用戶創(chuàng)建。通用特定的義務(wù),通用過程由用戶創(chuàng)建。通用過程可以存儲在窗體或規(guī)范模塊中。過程可以存儲在窗體或規(guī)范

37、模塊中。當用戶對一個對象發(fā)出動作時,會產(chǎn)當用戶對一個對象發(fā)出動作時,會產(chǎn)生一個事件,然后自動地調(diào)用與該事件相生一個事件,然后自動地調(diào)用與該事件相關(guān)的事件過程。事件過程就是在呼應(yīng)事件關(guān)的事件過程。事件過程就是在呼應(yīng)事件時執(zhí)行的程序段。時執(zhí)行的程序段。 默許時,事件過程是私有的。事件過默許時,事件過程是私有的。事件過程是附加在窗體和控件上的。程是附加在窗體和控件上的。 一切的事件過程都運用一樣的語法。一切的事件過程都運用一樣的語法。控件事件的語法:控件事件的語法:Private Sub 控件名控件名_事件名事件名 (參數(shù)列表參數(shù)列表 ) 語句塊語句塊 End Sub窗體事件的語法:窗體事件的語法:

38、Private Sub Form_事件名事件名 (參數(shù)列表參數(shù)列表) 語句塊語句塊End Sub1定義子過程定義子過程子過程的語法是:子過程的語法是:Private | PublicStatic Sub Exit Sub End Sub2建立建立Sub子過程子過程運用運用Sub過程計算矩形的面積,輸入矩過程計算矩形的面積,輸入矩形的長和寬,輸出矩形的面積。形的長和寬,輸出矩形的面積。 在【通用】在【通用】/【聲明】中定義模塊級變量:【聲明】中定義模塊級變量:Dim area As Single在窗體模塊中建立在窗體模塊中建立Sub過程,并編寫過程,并編寫Sub過過程呼應(yīng)代碼:程呼應(yīng)代碼:Sub

39、 recarea(rlen, rwid) area = rlen * rwidEnd Sub“確定按鈕單擊事件中的代碼為確定按鈕單擊事件中的代碼為Private Sub Command1_Click() Dim a As Single, b As Single a = Val(Text1.Text) b = Val(Text2.Text) recarea a, b Call recarea(a, b) Text3.Text = areaEnd Sub“去除按鈕單擊事件中的代碼為去除按鈕單擊事件中的代碼為Private Sub Command2_Click() Text1.Text = Text

40、2.Text = Text3.Text = End Sub在同一窗體建立兩個過程,在同一窗體建立兩個過程,Triangle是通用是通用過程,過程,F(xiàn)orm_Click是窗體事件過程,執(zhí)行程序時,是窗體事件過程,執(zhí)行程序時,單擊窗體將在窗體顯示兩個等腰三角形,如下圖。單擊窗體將在窗體顯示兩個等腰三角形,如下圖。Private Sub triangle(Str As String, n As Integer) Dim i As Integer, j As Integer For i = l To n Print Tab(16 - i); For j = 1 To 2 * i - 1 Print S

41、tr; Next j Print Next iEnd SubPrivate Sub Form_Click() Dim char As String * 1, n As Integer char = * n = 5 Call triangle(char, n) char = + triangle char, 3End SubVisual Basic 6.0包含內(nèi)置的或內(nèi)部的函數(shù),包含內(nèi)置的或內(nèi)部的函數(shù),如如Sqr,Cos或或Chr。此外,還可用。此外,還可用Function語句語句編寫本人的編寫本人的Function函數(shù)過程。函數(shù)過程。與與Sub過程一樣,過程一樣,F(xiàn)unction過程也是一個獨

42、過程也是一個獨立的過程,可讀取參數(shù),執(zhí)行一系列語句并改動立的過程,可讀取參數(shù),執(zhí)行一系列語句并改動其參數(shù)的值。與子過程不同,其參數(shù)的值。與子過程不同,F(xiàn)unction過程可前過程可前往一個值到調(diào)用的過程。往一個值到調(diào)用的過程。函數(shù)過程的語法是:函數(shù)過程的語法是:Static Public | Private Function As 函數(shù)名函數(shù)名=前往值前往值Exit FunctionEnd Function 其中,其中, As類型:函數(shù)前往值的類型,假設(shè)類型闡明默許,那類型:函數(shù)前往值的類型,假設(shè)類型闡明默許,那么前往變體類型值。么前往變體類型值。 參數(shù)列表方式同參數(shù)列表方式同Sub過程。過程

43、。 在函數(shù)體內(nèi)至少對函數(shù)名賦值一次。在函數(shù)體內(nèi)至少對函數(shù)名賦值一次。前一節(jié)提到建立前一節(jié)提到建立Sub過程的兩種方法過程的兩種方法也可以建立也可以建立Function過程,只是當用第一過程,只是當用第一種方法建立時,在【添加過程】對話框的種方法建立時,在【添加過程】對話框的【類型】欄內(nèi)應(yīng)選擇【函數(shù)】單項選擇按【類型】欄內(nèi)應(yīng)選擇【函數(shù)】單項選擇按鈕;另外,兩種方法中的鈕;另外,兩種方法中的Sub應(yīng)換成應(yīng)換成Function。通常,調(diào)用自行編寫的函數(shù)過程的方法和調(diào)用通常,調(diào)用自行編寫的函數(shù)過程的方法和調(diào)用Visual Basic 6.0內(nèi)部函數(shù)過程例如內(nèi)部函數(shù)過程例如Cos的方法一樣,的方法一樣,

44、即在表達式中寫上它的名字。下面的語句都調(diào)用函數(shù)即在表達式中寫上它的名字。下面的語句都調(diào)用函數(shù)Txt。Print 10 * TxtX = TxtIf Txt = 10 Then Print Out of Range; X = ;10 * Txt像調(diào)用像調(diào)用Sub過程那樣,也能調(diào)用函數(shù)。下面的語句過程那樣,也能調(diào)用函數(shù)。下面的語句都調(diào)用同一個函數(shù):都調(diào)用同一個函數(shù):Call Sin(x)Sin x本案例運用本案例運用Function過程計算矩形面積。過程計算矩形面積。輸入矩形的長和寬,輸出矩形的面積。輸入矩形的長和寬,輸出矩形的面積。 在窗體模塊中建立在窗體模塊中建立Function過程,并編寫過

45、程呼應(yīng)代碼:過程,并編寫過程呼應(yīng)代碼:Function recarea(rlen, rwid) As Single recarea = rlen * rwidEnd Function“確定按鈕單擊事件中的代碼為確定按鈕單擊事件中的代碼為Private Sub Command1_Click() Dim a As Single, b As Single a = Val(Text1.Text) b = Val(Text2.Text) Text3.Text = Str(recarea(a, b)End Sub “清空按鈕單擊事件中的代碼為清空按鈕單擊事件中的代碼為Private Sub Command

46、2_Click() Text1.Text = Text2.Text = Text3.Text = End Sub參數(shù)傳送可以實現(xiàn)調(diào)用過程和被調(diào)過程之參數(shù)傳送可以實現(xiàn)調(diào)用過程和被調(diào)過程之間的信息交換,在過程的調(diào)用中,調(diào)用其他過程間的信息交換,在過程的調(diào)用中,調(diào)用其他過程的過程稱為主過程,被調(diào)用的過程稱為子過程。的過程稱為主過程,被調(diào)用的過程稱為子過程。當被調(diào)用的子過程要運用主過程中的數(shù)據(jù)時,就當被調(diào)用的子過程要運用主過程中的數(shù)據(jù)時,就必需運用參數(shù)傳送。參數(shù)分為方式參數(shù)和實踐參必需運用參數(shù)傳送。參數(shù)分為方式參數(shù)和實踐參數(shù)。數(shù)。方式參數(shù)簡稱形參:在子過程中的參數(shù),出方式參數(shù)簡稱形參:在子過程中的參數(shù)

47、,出如今如今Sub過程和過程和Function過程中。方式參數(shù)可以過程中。方式參數(shù)可以是變量名和數(shù)組名。是變量名和數(shù)組名。實踐參數(shù)簡稱實參:在主過程中的參數(shù),過實踐參數(shù)簡稱實參:在主過程中的參數(shù),過程調(diào)用時實參數(shù)據(jù)會傳送給形參。程調(diào)用時實參數(shù)據(jù)會傳送給形參。在在Visual Basic 6.0中,實參與形參的結(jié)合有兩種中,實參與形參的結(jié)合有兩種方法,即傳址方法,即傳址(ByRef)和傳值和傳值(ByVal),其中傳址,其中傳址又稱為援用,是默許的方法。又稱為援用,是默許的方法。 用用“ByVal關(guān)鍵字指出參數(shù)是按值來傳送的。按關(guān)鍵字指出參數(shù)是按值來傳送的。按值傳送參數(shù)時,傳送的只是變量的副本。

48、當調(diào)用一個過值傳送參數(shù)時,傳送的只是變量的副本。當調(diào)用一個過程時,系統(tǒng)將實參的值復(fù)制給形參,實參與形參斷開了程時,系統(tǒng)將實參的值復(fù)制給形參,實參與形參斷開了聯(lián)絡(luò)。被調(diào)過程中的操作是在形參本人的存儲單元中進聯(lián)絡(luò)。被調(diào)過程中的操作是在形參本人的存儲單元中進展的,當過程調(diào)用終了時,形參所占用的存儲單元也同展的,當過程調(diào)用終了時,形參所占用的存儲單元也同時被釋放。因此在過程體內(nèi)對形參的任何操作不會影響時被釋放。因此在過程體內(nèi)對形參的任何操作不會影響到實參。到實參。按地址傳送參數(shù)在按地址傳送參數(shù)在Visual Basic 6.0中是缺省的,即中是缺省的,即不用不用“ByVal關(guān)鍵字。按傳址方式時,那么是

49、把變量在關(guān)鍵字。按傳址方式時,那么是把變量在內(nèi)存中的地址傳送給形參。這時,形參將與原變量運用內(nèi)存中的地址傳送給形參。這時,形參將與原變量運用內(nèi)存中的同一地址。也就是說,假設(shè)在過程中改動了這內(nèi)存中的同一地址。也就是說,假設(shè)在過程中改動了這個形參的值,原變量也會隨之而改動。個形參的值,原變量也會隨之而改動。 形參是數(shù)組、自定義類型時只能用傳地址方式,形參是數(shù)組、自定義類型時只能用傳地址方式,假設(shè)要將過程中的結(jié)果前往給主調(diào)程序,那么形假設(shè)要將過程中的結(jié)果前往給主調(diào)程序,那么形參必需是傳址方式。這時實參必需是同類型的變參必需是傳址方式。這時實參必需是同類型的變量名,不能是常量或表達式。量名,不能是常量或表達式。 假設(shè)形參不是上述中的兩種情況,普通應(yīng)選用假設(shè)形參不是上述中的兩種情況,普通應(yīng)選用傳值方式。這樣可添加程序的可靠性和便于調(diào)試,傳值方式。這樣可添加程序的可靠性和便于調(diào)試,減少各過程間的關(guān)聯(lián)。由于在過程體內(nèi)對形參的減少各過程間的關(guān)聯(lián)。由于在過程體內(nèi)對形參的改動不會影響實參。改動不會影響實參。Private

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論