电竞比分网-中国电竞赛事及体育赛事平台

分享

VB程序設(shè)計(jì)過(guò)程(一)

 你喜歡那個(gè) 2012-05-13

8.1  Sub過(guò)程

8.1.1  Sub過(guò)程的建立

1.定義Sub過(guò)程

過(guò)程定義的語(yǔ)法格式為:

[Static][Private][Public]Sub過(guò)程名 ([形參表])

語(yǔ)句塊1

[Exit Sub]

[語(yǔ)句塊2]

End Sub

說(shuō)明:

(1) Static:指定過(guò)程中的局部變量在內(nèi)存中的存儲(chǔ)方式。

(2) Private:表示Sub過(guò)程是私有的,只能被本模塊中的其他過(guò)程訪(fǎng)問(wèn),不能被其他模塊中的過(guò)程訪(fǎng)問(wèn)。

(3) Public:表示Sub過(guò)程是公有過(guò)程,可以在程序的任何地方調(diào)用它。若省略,則默認(rèn)為Public過(guò)程。

(4) 過(guò)程名:命名規(guī)則與變量命名規(guī)則相同。無(wú)參數(shù)時(shí),過(guò)程名后的括號(hào)不能省略。

(5) 形參表:含有在調(diào)用時(shí)傳送給該過(guò)程的簡(jiǎn)單變量名或數(shù)組名,各參數(shù)名之間用逗號(hào)隔開(kāi)。

(6)  Exit Sub語(yǔ)句表示立即退出過(guò)程,一般出現(xiàn)在選擇結(jié)構(gòu)中。

(7) End Sub標(biāo)志著Sub過(guò)程的結(jié)束。

(8) Sub過(guò)程不能嵌套定義。

【例8.1】計(jì)算n!。

.建立Sub過(guò)程

通用過(guò)程可以在標(biāo)準(zhǔn)模塊過(guò)程中建立,也可以在窗體模塊中建立。舉例說(shuō)明在標(biāo)準(zhǔn)模塊中建立通用過(guò)程,的兩種方法。

8.1.2  調(diào)用Sub過(guò)程

Sub過(guò)程的調(diào)用有兩種方法:使用Call語(yǔ)句;直接使用過(guò)程名。

1.Call語(yǔ)句調(diào)用Sub過(guò)程

格式:Call  過(guò)程名[(實(shí)際參數(shù))]

2.過(guò)程名作為一個(gè)語(yǔ)句來(lái)使用

與第一種方式相比,它有兩點(diǎn)不同:

(1) 去掉關(guān)鍵字Call

(2) 去掉“實(shí)際參數(shù)”的括號(hào)。

【例8.2】編寫(xiě)一個(gè)計(jì)算矩形面積的Sub過(guò)程,然后調(diào)用該過(guò)程計(jì)算矩形面積。

8.1.3  調(diào)用過(guò)程與事件過(guò)程

舉例說(shuō)明過(guò)程調(diào)用。

1.在事件過(guò)程中調(diào)用另一個(gè)事件過(guò)程

Public Sub Command1_Click()  'Form2中的Command1Click事件過(guò)程

Form1.Command1_Click  '調(diào)用Form1中的Command1Click事件過(guò)程

End Sub

2.在同一事件過(guò)程中調(diào)用兩個(gè)標(biāo)準(zhǔn)模塊中具有相同名字的通用過(guò)程

Public Sub Command1_Click()  'Form1中的Command1Click事件過(guò)程

Module1.Proce  '調(diào)用標(biāo)準(zhǔn)模塊Module1中的名為Proce的通用過(guò)程

Module2.Proce  '調(diào)用標(biāo)準(zhǔn)模塊Module2中的名為Proce的通用過(guò)程

End Sub

一般來(lái)說(shuō),通用過(guò)程(包括Sub過(guò)程、Function過(guò)程)之間、事件過(guò)程之間、通用過(guò)程與事件過(guò)程之間,都可以相互調(diào)用。當(dāng)在一個(gè)模塊中調(diào)用其他模塊中的過(guò)程時(shí),被調(diào)用的過(guò)程必須是“公用的”(Public)。

8.2        Function過(guò)程

8.2.1  Function過(guò)程的定義

Function過(guò)程定義的格式為

[Static][Private][Public]Function函數(shù)名([形參表] [As類(lèi)型]

        [語(yǔ)句塊]

     [函數(shù)名=表達(dá)式]

     [Exit Function]

         [語(yǔ)句塊]

End Function

說(shuō)明:

(1) Function過(guò)程以Function開(kāi)頭,以End Function結(jié)束,在兩者之間是描述過(guò)程操作的語(yǔ)句塊,即“過(guò)程體”或“函數(shù)體”。

(2) 函數(shù)名即函數(shù)過(guò)程的名稱(chēng),命名規(guī)則與變量相同。

(3) 表達(dá)式的值是函數(shù)返回的結(jié)果,通過(guò)賦值語(yǔ)句將其賦給函數(shù)名。

(4)不能在事件過(guò)程中定義通用過(guò)程(包括Sub過(guò)程和Function過(guò)程),只能在事件過(guò)程內(nèi)調(diào)用通用過(guò)程。

【例8.3】編寫(xiě)一個(gè)求最大公約數(shù)的函數(shù)過(guò)程。

8.2.2  調(diào)用Function過(guò)程

以調(diào)用求最大公約數(shù)的函數(shù)為例說(shuō)明可以像使用Visual Basic內(nèi)部函數(shù)一樣來(lái)調(diào)用Function過(guò)程。

8.3 參數(shù)傳送

8.3.1  參數(shù)傳送方式

舉例說(shuō)明參數(shù)傳送方式。

1.傳值

【例8.4】編寫(xiě)程序,試驗(yàn)按值傳遞

Sub tryout(ByVal x As Integer,ByVal y As Integer)

     x=x+100

     y=y*6

     Print"x=";x."y=";y

End Sub

Sub Form_Click()

Dim a As Integer, b As Integer

   a=10:b=20

   tryout a,b

   Print "a=";a, "b=";b

End Sub

程序運(yùn)行后,輸出結(jié)果如下:

x=110       y=120

a=10        b=20

2.傳地址

【例8.5】編寫(xiě)程序,試驗(yàn)引用方式傳送參數(shù)。

Sub tryout(x As Integer ,y As Integer)

    x=x+100

    y=y*6

    Print "x=";x, "y=";y

End Sub

Sub Form_Click()

     Dim a As Integer, b As Integer

     a=10:b=20

     tryout a,b

      Print "a=";a, "b=";b

End Sub

小結(jié):

Visual Basic中,常用的過(guò)程主要有兩類(lèi):一類(lèi)由系統(tǒng)提供,包括事件過(guò)程和內(nèi)部函數(shù)過(guò)程;另一類(lèi)是自定義過(guò)程,由程序設(shè)計(jì)者根據(jù)需要自行編制,主要包括通用過(guò)程和自定義函數(shù)過(guò)程。事件過(guò)程和通用過(guò)程合稱(chēng)為子過(guò)程(Sub過(guò)程),自定義函數(shù)過(guò)程簡(jiǎn)稱(chēng)為函數(shù)過(guò)程(Function過(guò)程)。

當(dāng)在程序中需要多次用到某一公式或處理某一函數(shù)關(guān)系,而又沒(méi)有現(xiàn)成的內(nèi)部函數(shù)能夠使用時(shí),可以用Function語(yǔ)句編寫(xiě)自定義函數(shù)過(guò)程實(shí)現(xiàn)相應(yīng)的功能。一旦編寫(xiě)完成后,在程序中就可以像使用內(nèi)部函數(shù)一樣使用Function過(guò)程。Function過(guò)程也是一個(gè)獨(dú)立的過(guò)程,但與Sub過(guò)程不同,Sub過(guò)程沒(méi)有返回值,只能作為獨(dú)立的基本語(yǔ)句被調(diào)用,不能出現(xiàn)在表達(dá)式中;而Function過(guò)程有返回值,既可出現(xiàn)在表達(dá)式中,也可以作為獨(dú)立的語(yǔ)句被調(diào)用。

參數(shù)是主調(diào)過(guò)程和被調(diào)過(guò)程之間傳送數(shù)據(jù)的重要手段。在調(diào)用一個(gè)過(guò)程時(shí),必須把實(shí)際參數(shù)傳送給過(guò)程,完成形式參數(shù)與實(shí)際參數(shù)的結(jié)合,然后用實(shí)際參數(shù)執(zhí)行調(diào)用的過(guò)程。

本講重點(diǎn)介紹Sub過(guò)程和Function過(guò)程的結(jié)構(gòu)框架如何定義,以及如何調(diào)用一個(gè)已寫(xiě)好的自定義過(guò)程,進(jìn)而介紹過(guò)程調(diào)用的參數(shù)傳遞機(jī)制。

作業(yè):

1Sub過(guò)程和Function過(guò)程有何區(qū)別?

2.怎樣創(chuàng)建Sub過(guò)程和Function過(guò)程?

3.怎樣調(diào)用Sub過(guò)程和Function過(guò)程?

4.什么是形參?什么是實(shí)參?它們之間有何區(qū)別?

5.什么是值傳遞?什么是地址傳遞?它們之間有何區(qū)別?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多