久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

計(jì)算機(jī)技術(shù)基礎(chǔ)(第九章 過(guò)程 )

 図糴帑簤屸璺 2019-07-11

計(jì)算機(jī)技術(shù)基礎(chǔ)(VB)






學(xué)習(xí)內(nèi)容
 
 
第一節(jié) Function過(guò)程
第一節(jié) Function過(guò)程
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
第二節(jié) Sub過(guò)程
第二節(jié) Sub過(guò)程
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
第三節(jié) 過(guò)程的嵌套
第三節(jié) 過(guò)程的嵌套
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
第四節(jié) 參數(shù)的傳遞
第四節(jié) 參數(shù)的傳遞
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
第五節(jié) 代碼模塊
第五節(jié) 代碼模塊
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
第六節(jié) 變量的作用域與生存期
第六節(jié) 變量的作用域與生存期
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
本章小結(jié)
本章小結(jié)
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
視頻講解1
視頻講解1
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
視頻講解2
視頻講解2
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
視頻講解3
視頻講解3
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入
視頻講解4
視頻講解4
必修
開(kāi)啟
通過(guò)
點(diǎn)擊進(jìn)入


第一節(jié) Function過(guò)程
一,、Function過(guò)程的定義

    1.Function過(guò)程的格式

    [Public|Private][Static]Function<函數(shù)過(guò)程名>
              ([<形參表>])[As<類型>]
       [ <語(yǔ)句組>]
       [ <函數(shù)過(guò)程名>=<表達(dá)式>]
       [Exit Function] 
       [ <語(yǔ)句組>]
       [ <函數(shù)過(guò)程名>=<表達(dá)式>]
   End Function

    2.說(shuō)明

    (1)Public:缺省值。使用Public時(shí)表示所有模塊的所有其他過(guò)程都可以調(diào)用該Function過(guò)程。

    (2)Private:使用Private時(shí)表示只有本模塊中的其他過(guò)程才可以調(diào)用該Function過(guò)程,。

    (3)Static:使用Static時(shí)表示將過(guò)程中的所有局部變量說(shuō)明為靜態(tài)變量,。

    (4)<函數(shù)過(guò)程名>:Function過(guò)程的名稱,遵循變量的命名規(guī)則,。

    (5)<形參表>:表示在調(diào)用時(shí)要傳遞給Function過(guò)程的參數(shù)變量列表,。多個(gè)變量之間用逗號(hào)隔開(kāi)。

       <形參表> <形參表>格式:

         [ByVal|ByRef]<變量名>[(?。[As<類型>]

         ByVal:表示該參數(shù)按值傳遞,。

         ByRef:缺省值。表示該參數(shù)按地址傳遞,。

    <變量名>     <變量名>:遵循變量命名規(guī)則的任何變量名或數(shù)組名,。

         ( ):當(dāng)參數(shù)為數(shù)組時(shí)使用,。

    (6)As<類型>:聲明函數(shù)值的類型,。

    (7)Exit Function語(yǔ)句:從Function過(guò)程中退出。

    (8)Function過(guò)程通過(guò)賦值語(yǔ)句:

       <函數(shù)過(guò)程名> <函數(shù)過(guò)程名>=<表達(dá)式>

      將函數(shù)的返回值賦給<函數(shù)過(guò)程名>,。

    (9)Function過(guò)程的定義不能嵌套,。

    Function過(guò)程的建立:

      直接在代碼窗口中輸入。

      在代碼窗口:工具→添加過(guò)程,。

    【例9-1】編寫一個(gè)計(jì)算n,!的Function過(guò)程。

    Function Fact(N As Integer) As Long
    Dim I As Integer,F As Long
    F=1     'F用于保存階乘值 
    For I=1 To N 
      F=F*I 
    Next I 
    Fact=F    '給函數(shù)過(guò)程名賦值 
   End Function

    【例9-2】編寫一個(gè)Function過(guò)程,,計(jì)算下面表達(dá)式的值,。

    

    Function F(X,Y,Z)

     F=Sqr(Abs(X^3+Y^3+Z^3))

    End Function

二,、Function過(guò)程的調(diào)用

    直接在表達(dá)式中調(diào)用。

    格式:<函數(shù)過(guò)程名>([<實(shí)參表>])

    <實(shí)參表> <實(shí)參表>:常量,、變量或表達(dá)式,,各參數(shù)之間用逗號(hào)分隔。如果是數(shù)組,,在數(shù)組名之后必須跟一對(duì)空括號(hào),。

    【例9-3】利用Function過(guò)程計(jì)算階乘,求組合數(shù),。設(shè)計(jì)界面如下圖,。

    

    '定義求階乘的函數(shù)Fact
   Function Fact(n As Integer) As Double
    Dim F As Double,i As Integer 
    F=1 
    For i=1 To n 
     F=F*i 
    Next i 
    Fact=F 
   End Function 
   Private Sub Command1_Click()'=按鈕的事件過(guò)程 
     Dim m As Integer,n As Integer,c As Double 
     m=Val(Text1.Text) 
     n=Val(Text2.Text) 
     c=Fact(m)/(Fact(n)*(Fact(m-n)))   '調(diào)用Fact 
     Text3.Text=Trim(Str(c)) 
   End Sub

    【例9-4】編寫Function過(guò)程求最大公約數(shù),并通過(guò)命令按鈕的單擊事件過(guò)程調(diào)用該函數(shù)過(guò)程,。

    

   Function hcf(m As Integer,n As Integer)As Integer
   Dim r As Integer
   r=m Mod n 
   Do While r <>0
    m=n 
    n=r 
    r=m Mod n 
   Loop 
   hcf=n 
  End Function 
  Private Sub Command1_Click() 
   Dim m As Integer,n As Integer 
   m=Val(Text1.Text): n=Val(Text2.Text) 
   Label3.Caption=Str(hcf(m,n)) 
  End Sub

    【例9-5】編寫一個(gè)Function過(guò)程,,返回指定個(gè)數(shù)的字符串,字符串以A開(kāi)始,,例如,,當(dāng)指定個(gè)數(shù)5時(shí),函數(shù)返回字符串"ABCDE",。運(yùn)行時(shí)單擊按鈕調(diào)用該函數(shù)過(guò)程,,實(shí)現(xiàn)在窗體上按指定的行數(shù)輸出如下圖所示的圖形。

    

   'CreateStr函數(shù)返回N個(gè)字符 
   Private Function CreateStr(N As Integer) 
    Dim TmpStr As String,I As Integer 
    TmpStr= ""
    'StrAsc用于保存字符的ASCII碼 
    StrAsc=Asc( "A")–1
    For I=1 To N 
     StrAsc=StrAsc+1 '生成下一個(gè)字符的ASCII碼 
     TmpStr=TmpStr  & Space(1) & Chr(StrAsc) 
    Next I 
    CreateStr=TmpStr 
   End Function 
   '“輸出圖形”按鈕的Click事件過(guò)程 
   Private Sub Command1_Click() 
    Dim N As Integer,I As Integer 
    '指定圖形的行數(shù) 
    N=Val(InputBox( "圖形的行數(shù)","請(qǐng)輸入","5")) 
    Cls 
    Print 
   For I=1 To N 
    Print Tab(2*I),;         '輸出左半部分 
    Print CreateStr(2*N-2*I+1),; 
    Print Spc(4);          '左右兩部分的間隔 
    Print CreateStr(2*I-1),;       '輸出右半部分 
   Print 
  Next I 
End Sub



第二節(jié) Sub過(guò)程
一,、Sub過(guò)程的定義

    1.Sub過(guò)程的格式

    [Private|Public][Static]Sub<過(guò)程名>[(<形參表>)]
     [<語(yǔ)句組>]
     [Exit Sub] 
     [ <語(yǔ)句組>]
   End Sub

    2.說(shuō)明

    (1)Exit Sub用于退出Sub過(guò)程。

    (2)<過(guò)程名> <過(guò)程名>不具有值的意義,,在Sub過(guò)程中不能給<過(guò)程名>賦值,,也不能給<過(guò)程名>定義類型。

    (3)Sub過(guò)程通過(guò)<形參表>中的參數(shù)返回值,。

    (4)Sub過(guò)程的建立方法與Function過(guò)程的建立方法相同。

    【例9-6】編寫計(jì)算n!的Sub過(guò)程,。

    分析:參數(shù)表中應(yīng)有一個(gè)參數(shù)n,,還應(yīng)有另一個(gè)參數(shù)F用來(lái)返回階乘值。 
    Sub Fact(N As Integer,F As Long) 
    Dim I As Integer 
      F=1 
    For I=1 To N 
      F=F*I 
    Next I 
   End Sub

    【例9-7】編寫Sub過(guò)程,,打印以下圖形,。

    分析:打印以上圖形,不需要返回值,,因此無(wú)需引入?yún)?shù),。

    Sub a() 
    For i=1 To 6
     Print Tab(7-i),; 
     For j=1 To 2* i-1 
      Print "*"; 
     Next j 
     Print 
    Next i 
  End Sub

    

    【例9-8】編寫Sub過(guò)程,,求三個(gè)數(shù)中的最大數(shù)和最小數(shù),。

    分析:首先要設(shè)置三個(gè)參數(shù),如x,、y,、z,用于接收三個(gè)原始數(shù)據(jù),,另外引入兩個(gè)參數(shù)max和min,,用于返回最大和最小數(shù)。

    Sub s(x,y,z,max,min) 
     max=x
     min=x 
     If y >max Then max=y
     If y <min Then min=y
     If z >max Then max=z
     If z <min Then min=z
   End Sub

二,、Sub過(guò)程的調(diào)用

      格式一:Call<過(guò)程名>[(<實(shí)參表>)]

      格式二:<過(guò)程名>[<實(shí)參表>]

    說(shuō)明:

    (1)<過(guò)程名>:要調(diào)用的Sub過(guò)程名,;

    (2)<實(shí)參表>:可以是常量、變量或表達(dá)式,,各參數(shù)之間用逗號(hào)分隔,。如果是數(shù)組參數(shù),則要在數(shù)組名之后跟一對(duì)空括號(hào),。

    (3)用Call語(yǔ)句調(diào)用一個(gè)Sub過(guò)程時(shí),,如果過(guò)程本身沒(méi)有參數(shù),則省略<實(shí)參表>和括號(hào),。

    (4)格式二省略了Call關(guān)鍵字,,同時(shí)<實(shí)參表>兩邊也不能帶括號(hào)。

    【例9-9】將求組合數(shù)一題改成用Sub過(guò)程實(shí)現(xiàn)

   Sub Fact(N As Integer,F As Long) 
    Dim I As Integer
    F=1 
    For I=1 To N 
     F=F*I 
    Next I 
   End Sub 
   Private Sub Command1_Click() 
    Dim M As Integer,N As Integer 
    Dim f1 As Long,f2 As Long,f3 As Long 
    M=Val(Text1.Text):N=Val(Text2.Text) 
    Call Fact(M,f1):Call Fact(N,f2):Call Fact(M-N,f3) 
    Text3.Text=Trim(Str(f1/(f2*f3))) 
   End Sub

    【例9-10】編寫一個(gè)Sub過(guò)程,,計(jì)算K個(gè)數(shù)的和,,即1+2+…+K,并通過(guò)命令按鈕的單擊事件調(diào)用該過(guò)程計(jì)算S=1+(1+2)+(1+2+3)+…+(1+2+…+N),。

    分析:編寫一個(gè)Sub過(guò)程計(jì)算1+2+…+K,,

    設(shè)參數(shù)K、S,,參數(shù)S用于返回該和值,。

   Sub A1(K As Integer,S As Integer) 
   S=0
   For J=1 To K 
    S=S+J 
   Next J 
  End Sub 
   Private Sub Command1_Click() 
     Dim N As Integer,S1 As Integer,I As Integer 
     N=Val(Text1.Text) 
     For I=1 To N 
      '調(diào)用過(guò)程A1求1+2+…+I,和值返回到S1中 
     Call A1(I,S1) 
     Sum=Sum+S1 
    Next I 
    Text2.Text=Sum 
   End Sub



第三節(jié) 過(guò)程的嵌套

    在一個(gè)過(guò)程執(zhí)行期間又調(diào)用另一個(gè)過(guò)程,,稱為過(guò)程的嵌套調(diào)用,。

    




第四節(jié) 參數(shù)的傳遞

    調(diào)用過(guò)程與被調(diào)用過(guò)程之間的一種數(shù)據(jù)通訊方法。

    數(shù)據(jù)的傳遞可以是單向的,,也可以是雙向的,。

一、形參和實(shí)參

    形參:出現(xiàn)在Sub或Function語(yǔ)句中,。

    實(shí)參:出現(xiàn)在調(diào)用程序中,。

    例如,,定義如下一個(gè)過(guò)程:

      Sub SubTest(n As Integer,Sum As Single)

       …

      End Sub

    調(diào)用語(yǔ)句:

    

    說(shuō)明:

    在傳遞參數(shù)時(shí),形參表與實(shí)參表中對(duì)應(yīng)參數(shù)個(gè)數(shù),、類型,、位置順序必須一一對(duì)應(yīng)。

    形參表中的參數(shù)可以是:

    除固定長(zhǎng)度字符串之外的合法變量名,、數(shù)組名()

    實(shí)參表中的參數(shù)可以是:常量,、變量、表達(dá)式,、數(shù)組名()

    形參與實(shí)參的結(jié)合有兩種方式:

    按值傳遞和按地址傳遞,。

二、按值傳遞和按地址傳遞

    1.按值傳遞

      實(shí)參把其值傳遞給形參而不傳遞實(shí)參的地址,。

      數(shù)據(jù)的傳遞是單向的,。

    (1)當(dāng)實(shí)參為常量或表達(dá)式時(shí),數(shù)據(jù)傳遞總是單向的,。

      例如:Call SubTest(10,1+2)
         Sub SubTest(n As Integer,Sum As Single)

    (2)實(shí)參是變量時(shí),,要實(shí)現(xiàn)按值傳遞需要在形參之前通過(guò)關(guān)鍵字ByVal來(lái)實(shí)現(xiàn)。

      例如:Sub SS(ByVal X,ByVal Y,ByVal Z) 
           X=X+1:Y=Y+1:Z=Z+1
        End Sub 
        Private Sub Command1_Click() 
          A=1:B=2:C=3 
          Call SS(A,B,C) 
          Print A,B,C 
       End Sub

    運(yùn)行時(shí),,單擊命令按鈕在窗體上打?。?/p>

    1        2        3

    2.按地址傳遞

    指將實(shí)參的地址傳給形參,使形參和實(shí)參具有相同的地址,,即形參與實(shí)參共享同一存儲(chǔ)單元,。

    (1)當(dāng)實(shí)參為變量或數(shù)組時(shí),形參使用關(guān)鍵字ByRef定義(或省略)表示要按地址傳遞,。

    (2)當(dāng)參數(shù)是數(shù)組時(shí),,數(shù)組名之后必須使用一對(duì)空的圓括號(hào)。

    按地址傳遞可以實(shí)現(xiàn)調(diào)用過(guò)程與子過(guò)程之間數(shù)據(jù)的雙向傳遞,。

    例:Sub SS(ByRef X,ByRef Y,ByRef Z) 
      X=X+1: Y=Y+1: Z=Z+1
     End Sub 
     Private Sub Command1_Click() 
      A=1:B=2:C=3 
      Call SS(A,B,C) 
      PrintA,B,C 
    End Sub

    

    運(yùn)行時(shí),,單擊命令按鈕在窗體上打印:

    2      3     4

    【例9-11】編寫一個(gè)計(jì)算乘冪的Function過(guò)程,,用來(lái)計(jì)算x的y次冪,,其中y>0。單擊窗體時(shí)調(diào)用該過(guò)程打印51,、52,、53、54,、55的值。

    Function Power(x As Single,ByVal y As Integer) 
    Dim result As Single
    result=1 
    Do While y >0
      result=result*x 
      y=y-1 
    Loop 
    Power=result 
   End Function 
   Private Sub Form_Click() 
    Dim i As Integer 
    For i=1 To 5 
     Print Power(5,i) 
    Next i 
   End Sub

    思考:如果取消過(guò)程Power中參數(shù)y前的關(guān)鍵字ByVal,,則會(huì)出現(xiàn)什么情況,?



第五節(jié) 代碼模塊

    VB應(yīng)用程序由三種模塊組成:

      窗體模塊(Form)(文件擴(kuò)展名.frm)

      標(biāo)準(zhǔn)模塊(Module)(文件擴(kuò)展名.bas)

      類模塊(Class)(文件擴(kuò)展名.cls)

    

一,、窗體模塊

    包含: 事件過(guò)程

        通用過(guò)程

        通用聲明

二、標(biāo)準(zhǔn)模塊

    不對(duì)應(yīng)于某個(gè)窗體,、完全是純代碼,。

    包含: 全局常量、變量,、全局過(guò)程

        標(biāo)準(zhǔn)模塊級(jí)常量,、變量、通用過(guò)程

        注:不能包含事件過(guò)程

    添加:工程→添加模塊→選“新建”標(biāo)簽→打開(kāi)“添加模塊”對(duì)話框

三,、類模塊

    在類模塊中編寫代碼建立新對(duì)象,。

四、過(guò)程的作用域

      過(guò)程的建立位置不同,,允許被訪問(wèn)的范圍也不同,。

      作用域:模塊級(jí)、全局級(jí)

    1.模塊級(jí)過(guò)程:在過(guò)程前如果加Private關(guān)鍵字,,則這種過(guò)程只能被其所在的模塊中的其他過(guò)程所調(diào)用,。

    2.全局過(guò)程:在過(guò)程前如果加Public關(guān)鍵字(或省略),則這種過(guò)程可以被其他模塊中的過(guò)程所調(diào)用,。

    3.過(guò)程的作用域:見(jiàn)P156

    例:設(shè)窗體Form1中有按鈕:Command1,、Command2

    

    設(shè)窗體Form2中有按鈕:Command1、Command2

      Private Sub Command1_Click()

    





第六節(jié) 變量的作用域與生存期

    變量的作用域:指變量的有效范圍,。

    變量的生存期:指變量的作用時(shí)間,。

一、變量的作用域

    將變量分為:局部變量

          模塊級(jí)變量

          全局變量

    

    1.局部變量

      聲明

      不聲明

      Dim A As Integer  'A每次執(zhí)行過(guò)程時(shí)被初始化

      Static C As Single  'C在應(yīng)用程序執(zhí)行期間保持不變

      作用范圍

      僅在聲明的過(guò)程中起作用

      其他過(guò)程中即使有同名變量,,也不是指同一變量,。

    例:

    

    2.模塊級(jí)變量

      聲明

        在模塊的通用聲明段中用以下方法聲明的變量。

        Private   '在模塊運(yùn)行時(shí)被初始化

         Dim    '在模塊運(yùn)行時(shí)被初始化

      作用范圍

        在該模塊的所有過(guò)程中都起作用

        其他模塊不能訪問(wèn)這些變量

    3.全局變量

    聲明

      在模塊的通用聲明段中用以下方法聲明的變量

       Public  '應(yīng)用程序運(yùn)行時(shí)被初始化

       作用范圍:應(yīng)用程序的所有過(guò)程

    

    

二,、變量的生存期

    靜態(tài)變量:在應(yīng)用程序執(zhí)行期間保留不變

    動(dòng)態(tài)變量:在所在的模塊(過(guò)程)運(yùn)行時(shí)被初始化

    Static Sub SS1()  '局部變量I,S為靜態(tài)變量 
    For I=1 To 10
     S=S+I 
    Next I 
    Print S 
   End Sub 
   Private Sub Command1_Click() 
    Call SS1 
    Call SS1 
   End Sub

    

    例:

    





本章小結(jié)

    1.函數(shù)過(guò)程的定義和調(diào)用

    定義:

    [Public|Private][Static]Function <函數(shù)名>[(<形參表>)][As<類型>]
     ……
     [函數(shù)=表達(dá)式] 
     …… 
   End Function

    形參表:變量,、數(shù)組名()

    調(diào)用:函數(shù)名(<實(shí)參表>)

       出現(xiàn)在表達(dá)式可以出現(xiàn)的位置

    2.Sub過(guò)程的定義和調(diào)用

    定義:

    [Private|Public][Static]Sub<過(guò)程名>([<形參表>]) 
     ……
   End Sub

    調(diào)用:

    (1)Call<過(guò)程名>([<實(shí)參表>])

    (2)<過(guò)程名> <過(guò)程名>[<實(shí)參表>]

    注意:Sub過(guò)程調(diào)用與函數(shù)過(guò)程定義與調(diào)用的區(qū)別

    3.過(guò)程之間的參數(shù)傳遞

    按值傳送:實(shí)際參數(shù)為常數(shù)、表達(dá)式,、ByVal 變量

    按地址傳送:實(shí)際參數(shù)變量,、ByRef 變量、數(shù)組名()

    4.過(guò)程的作用域

      模塊級(jí)過(guò)程,;全局級(jí)過(guò)程

    5.變量的作用域

      局部變量,;模塊級(jí)變量;全局變量

    6.變量的生

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(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)遵守用戶 評(píng)論公約

    類似文章 更多