乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      第六章 VB的過程設(shè)計

       nxhujiee 2010-09-08

      第六章 VB的過程設(shè)計

      1.什么是過程

          在程序設(shè)計中,為各個相對獨立的功能模塊所編寫的一段程序稱之為過程。

      2VB中的自定義過程分類

      (1)以“Sub”保留字開始的子程序過程 (包括事件過程和通用過程),不返回值;

      (2)
      以“Function 保留字開始的函數(shù)過程,返回一個值;

      (3)
      以“Property 保留字開始的屬性過程,可以返回和設(shè)置窗體、標準模塊以及類模塊的屬性值,也可以設(shè)置對象的值。

      6.1 子過程(Sub)的定義與調(diào)用

      1. 事件過程

      (1)窗體事件過程

      語法Private  Sub Form_事件名[參數(shù)列表]

      [
      局部變量和常數(shù)聲明]

      語句塊

      End Sub

      注意

      1窗體事件過程名由Form_事件名組成,多文檔窗體用MDIForm_事件名;

      2)每個窗體事件過程名前都有一個Private的前綴,表示該事件過程不能在它自己的窗體模塊之外被調(diào)用;

      3)事件過程有無參數(shù),完全由VB提供的具體事件本身決定,用戶不可以隨意添加。

      (2)控件事件過程

         語法Private  Sub 控件名_事件名[參數(shù)列表]

      [
      局部變量和常數(shù)聲明]

      語句塊

      End Sub 

      注意
      :其中的控件名必須與窗體中某控件相匹配,否則VB將認為它是一個通用過程。

      (3)建立事件過程的方法

        1)打開代碼編輯器窗口(兩種方法:雙擊對象或從工程管理器中單擊“查看代碼”按鈕)

      2)在代碼編輯器窗口中,選擇所需要的“對象”和“事件過程”

      3)Private Sub …… End Sub之間鍵入代碼

      4)保存工程和窗體

      4)事件過程的調(diào)用

        事件過程由一個發(fā)生在VB中的事件來自動調(diào)用或者由同一模塊中的其他過程顯示調(diào)用。

      2.通用過程

        通用過程是一個必須從另一個過程顯示調(diào)用的程序段,通用過程有助于將復(fù)雜的應(yīng)用程序分解成多個易于管理的邏輯單元,使應(yīng)用程序更簡潔、更易于維護。

        通用過程分為公有(Public)過程私有( Private)過程兩種,公有過程可以被應(yīng)用程序中的任一過程調(diào)用,而私有過程只能被同一模塊中的過程調(diào)用。

        1定義方法:

           [ Private | Public ]  [ StaticSub 過程名[參數(shù)列表]

      [
      局部變量和常數(shù)聲明]     ‘用Dim Static聲明

      語句塊

      [Exit Sub]

      語句塊

      End Sub

          注意:

      1)缺省[ Private | Public ]時,系統(tǒng)默認為 Public ;

      2Static 表示過程中的局部變量為“靜態(tài)”變量;

      3)過程名的命名規(guī)則與變量命名規(guī)則相同,在同一個模塊中,同一符號名不得既用作Sub過程名,又用作Function過程名。

      4)參數(shù)列表中的參數(shù)稱為形式參數(shù),它可以是變量名或數(shù)組名,只能是簡單變量,不能是常量、數(shù)組元素、表達式;若有多個參數(shù)時,各參數(shù)之間用逗號分隔,形參沒有具體的值。VB的過程可以沒有參數(shù),但一對圓括號不可以省略。不含參數(shù)的過程稱為無參過程。

           形參格式為:

      [ ByVal ]
      變量名[()] [As  數(shù)據(jù)類型]

      式中:

      變量名[()]:變量名為合法的VB變量名或數(shù)組名,無括號表示變量,有括號表示數(shù)組。

      ByVal :表明其后的形參是按值傳遞參數(shù)(傳值參數(shù) Passed By Value),若缺省或用ByRef,則表明參數(shù)是按地址傳遞的(傳址參數(shù))或稱“引用”(Passed By Reference)。

      As:
        數(shù)據(jù)類型:缺省表明該形參是變體型變量,若形參變量的類型聲明為String,則只能是不定長的。而在調(diào)用該過程時,對應(yīng)的實在參數(shù)可以是定長的字符串或字符串數(shù)組,若形參是數(shù)組則無限制。

      5)Sub 過程不能嵌套定義,但可以嵌套調(diào)用。

      6)  End Sub 標志該過程的結(jié)束,系統(tǒng)返回并調(diào)用該過程語句的下一條語句。

      7) 過程中可以用Exit Sub提前結(jié)束過程,并返回到下調(diào)用該過程語句的下一條語句。

       2)建立Sub過程的方法

        方法一:

      1)打開代碼編輯器窗口

      2)選擇“工具”菜單中的“添加過程”

      3)從對話框中輸入過程名,并選擇類型和范圍

      4)在新創(chuàng)建的過程中輸入內(nèi)容

        方法二:

      1)在代碼編輯器窗口的對象中選擇“通用”,在文本編輯區(qū)輸入 Private Sub 過程名

      2)按回車鍵,即可創(chuàng)建一個Sub過程樣板

      3)在新創(chuàng)建的過程中輸入內(nèi)容

      3.Sub子過程的調(diào)用

       (1) Call語句調(diào)用Sub過程

            語法:Call 過程名實在參數(shù)表

      實在參數(shù)的個數(shù)、類型和順序,應(yīng)該與被調(diào)用過程的形式參數(shù)相匹配,有多個參數(shù)時,用逗號分隔。

      例:利用過程編寫求三角形面積的程序


       (2)把過程名作為一個語句來用

         語法:過程名 [實參1[,實參2……]]

         它與(1)的不同點是:去掉了關(guān)鍵字和實參列表的括號

      如上例中可以改成:area a,b,c,w

      6.2 函數(shù)過程(Function)的定義與調(diào)用

      1.函數(shù)過程的定義

        有兩種方法:

       (1) 在代碼窗口中,利用“工具”菜單下的“添加過程”命令,插入一個函數(shù)過程模板來定義

      (2)在代碼窗口中,把插入點放在所有現(xiàn)有過程之外,直接輸入函數(shù)來定義

      [ Private | Public ]  [ StaticFunction
      函數(shù)名[參數(shù)列表][As 數(shù)據(jù)類型]

      [
      局部變量和常數(shù)聲明]     ‘用Dim Static聲明

      [
      語句塊 ]

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

      [
      Exit Function]

      語句塊

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

      End Function

      2.注意事項

       (1)   函數(shù)名的命名規(guī)則與變量命名規(guī)則相同;函數(shù)過程必須由函數(shù)名返回一個值。

      (2) 如果函數(shù)體內(nèi)沒有給函數(shù)名賦值,則返回對應(yīng)類型的缺省值,數(shù)值型返回0,字符型返回空字符串。

      (3) 函數(shù)過程內(nèi)部不得再定義Sub過程或Function過程。
      例:編寫一個計算N!的函數(shù)過程

      3.Function過程的調(diào)用

        調(diào)用Function過程與調(diào)用VB內(nèi)部函數(shù)的方法一樣,即在表達式中寫出它的名稱和相應(yīng)的實在參數(shù)。

      語法:    過程名[實參列表]

      注意:(
      1)必須給參數(shù)加上括號,即使沒有參數(shù)也不可省略括號;

      2VB中也允許象調(diào)用Sub過程一樣來調(diào)用Function,但這樣就沒有返回值。

      4.調(diào)用其他模塊中的過程

       (1)調(diào)用窗體中的過程

       從窗體模塊的外部調(diào)用窗體中的公有過程,必須用窗體的名字作為調(diào)用前綴。如:

       
      Call  Form1.Examsub([實參表])

       (2)調(diào)用標準模塊中的過程

      如果在應(yīng)用程序中,過程名是唯一的,則調(diào)用時不必加模塊名。如果有同名的,則在同一模塊內(nèi)調(diào)用時可以不加模塊名,而在其他模塊中調(diào)用時必須加模塊名。

       (3)類模塊中的過程

      調(diào)用類模塊的公有過程時,要求用指向該類某一實例的變量修飾過程,即首先要聲明類的實例為對象變量,并以此變量作為過程名前綴修飾詞,不可直接用類名作為前綴修飾詞。

         如:在類模塊Class1中含有過程clssub,變量Democlass是類Class1的一個實例,則調(diào)用clssub的方法是:

      Dim  Democlass AS New Class1

      Call  Democlass.clasub

      例:函數(shù)過程子過程的異同,計算級數(shù)的部分和

        1 + x + x2/2! +……+ xn/n! +……, |xn/n!|<exp



      6.3 參數(shù)的傳遞

      1.形參與實參的概念

        形參:指出現(xiàn)在Sub Function過程形參表中的變量名、數(shù)組名,過程被調(diào)用前,沒有分配內(nèi)存,其作用是說明自變量的類型和形態(tài)以及在過程中的角色。形參可以是:

        1)除定長字符串變量之外的合法變量名;

      2)后面跟()括號的數(shù)組名。

        實參:是在調(diào)用Sub Function過程時,傳送給相應(yīng)過程的變量名、數(shù)組名、常數(shù)或表達式。在過程調(diào)用傳遞參數(shù)時,形參與實參是按位置結(jié)合的,形參表和實參表中對應(yīng)的變量名可以不必相同,但位置必須對應(yīng)起來。

           形參與實參的關(guān)系:形參如同公式中的符號,實參就是符號具體的值;調(diào)用過程:即實現(xiàn)形參與實參的結(jié)合,也就是把值代入公式進行計算。

      2. 按值傳遞參數(shù)(定義時加ByVal

        按值傳遞參數(shù)(Passed By Value)時,是將實參變量的值復(fù)制一個到臨時存儲單元中,如果在調(diào)用過程中改變了形參的值,不會影響實參變量本身,即實參變量保持調(diào)用前的值不變。

      3.按地址傳遞參數(shù)(定義時沒有修飾詞或帶關(guān)鍵字ByRef

        按地址傳遞參數(shù)時,把實參變量的地址傳送給被調(diào)用過程,形參和實參共用內(nèi)存的同一地址。在被調(diào)用過程中,形參的值一旦改變,相應(yīng)實參的值也跟著改變。如果實參是一個常數(shù)或表達式,VB會按“傳值”方式來處理。

      4.數(shù)組參數(shù)

         VB允許把數(shù)組作為形參出現(xiàn)在形參表中,語法: 形參數(shù)組名() [As 數(shù)據(jù)類型]

          形參數(shù)組只能按地址傳遞參數(shù),對應(yīng)的實參也必須是數(shù)組,且數(shù)據(jù)類型相同。調(diào)用過程時,把要傳遞的數(shù)組名放在實參表中,數(shù)組名后面不跟圓括號。在過程中不可以用Dim語句對形參數(shù)組進行聲明,否則會產(chǎn)生“重復(fù)聲明”的錯誤。但在使用動態(tài)數(shù)組時,可以用ReDim語句改變形參數(shù)組的維界,重新定義數(shù)組的大小。

      5. 對象參數(shù)

        VB中可以向過程傳遞對象,在形參表中,把形參變量的類型聲明為“Control”,可以向過程傳遞控件;若聲明為“Form”,則可向過程傳遞窗體。對象的傳遞只能按地址傳遞。

      6.4  變量、過程的作用域

      1. VB應(yīng)用程序的組成:

      2. 過程的作用域

      作用范圍

      模塊級

      全局級

      窗體

      標準模塊

      窗體

      標準模塊

      定義方式

      過程名前加Private

      例:Private Sub my1(形參表)

      過程名前加Pubilc 或默認

      例:[ Pubilc ] Sub my2(形參表)

      能否被本模塊其他過程調(diào)用

      能否被本應(yīng)用程序其他模塊調(diào)用

      不能

      不能

      能,但必須在過程名前加窗體名。例:

      Call 窗體名. My1(實參表)

      能,但過程名必須唯一,否則需要加標準模塊名。例:

      Call 標準模塊名.My2(實參表)

      3. 變量的作用域

      作用范圍

      局部變量

      窗體/模塊級變量

      全局變量

           

      窗體

      標準模塊

      聲明方式

      Dim、Static

      DimPrivate

      Public

      聲明位置

      在過程中

      窗體/模塊的“通用聲明”段

      窗體/模塊的“通用聲明”段

      能否被本模塊其他過程存取

      不能

      能否被其他模塊存取

      不能

      不能

      能,但在變量名前加窗體名

      4.靜態(tài)變量

        Static聲明的靜態(tài)變量,在每次調(diào)用過程時保持原來的值,不重新初始化。而用Dim聲明的變量,每次調(diào)用過程時,重新初始化

      例:顯示15個數(shù)。

      5.同名變量

        對不同范圍內(nèi)出現(xiàn)的同名變量,可以用模塊名加以區(qū)別。一般情況下,當變量名相同而作用域不同時,優(yōu)先訪問局限性大的變量。

      6.5   遞歸過程

      1.遞歸的概念

        通俗的講,用自身的結(jié)構(gòu)來描述自身就稱為“遞歸”。如對階乘運算的定義就是遞歸的:

      n!=n(n-1)!     (n-1)!=(n-1)(n-2)!

      2.遞歸子過程和遞歸函數(shù)

          VB 允許一個自定義子過程或函數(shù)過程在過程體的內(nèi)部調(diào)用自己,這樣的子過程或函數(shù)就叫遞歸子過程和遞歸函數(shù)。遞歸過程包含了遞推和回歸兩個過程。構(gòu)成遞歸的條件是:

       1)遞歸結(jié)束條件和結(jié)束時的值

      2)能用遞歸形式表示,并且遞歸向結(jié)束條件發(fā)展。

      例:編制程序求facn=n!的函數(shù)

      3.注意事項

       (1)遞歸算法設(shè)計簡單,但消耗的上機時間和占據(jù)的內(nèi)存空間比非遞歸大

      (2) 設(shè)計一個正確的遞歸過程或函數(shù)過程必須具備兩點:1)具備遞歸條件;2)具備遞歸結(jié)束條件

      (3) 一般而言,遞歸函數(shù)過程對于計算階乘、級數(shù)、指數(shù)運算有特殊效果。

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多