<style id="uedzd"></style>
  • <style id="uedzd"></style>
  • <dfn id="uedzd"></dfn>
  • <dfn id="uedzd"></dfn>
    1. <ruby id="uedzd"></ruby>
      <ruby id="uedzd"></ruby>
    2. 教學設(shè)計
      您當前的位置: 首頁>教學設(shè)計

      14.1子程序、過程及應用

      發(fā)布時間: 2019-01-27      信息來源:       閱讀次數(shù):

      14.1子程序、過程及應用

      目的與要求:

      通過本次課的學習,掌握VFP的子程序、過程與自定義函數(shù)。

      教學內(nèi)容與時間安排、教學方法:

      教學安排:

      自定義函數(shù)和過程設(shè)計                        40分鐘

      子程序的調(diào)用、變量和作用域                  40分鐘

      教學方法:

      CAI、圖形、表格

      教學重點及如何突出重點、難點及如何突破難點:

      教學重點:

      自定義函數(shù)和過程設(shè)計、子程序的調(diào)用、變量和作用域

      教學難點:

      子程序的調(diào)用、變量和作用域

      基本內(nèi)容

      教學
      手段

      課堂設(shè)計
      和時間安排

      8.6 過程和函數(shù)程序設(shè)計

      在程序設(shè)計過程中,經(jīng)常把能夠完成一個特定功能的程序編寫成一個過程,作為一個模塊。以便在其它程序中使用該功能時調(diào)用該程序。這種可以完成一個特定功能的程序稱為自定義函數(shù)或過程

      1.自定義函數(shù)

        對一些常用算法,可以編寫成通用程序,例如為了將一個小寫字符串轉(zhuǎn)換成大寫的字符串,系統(tǒng)提供了 UPPER() 函數(shù)。系統(tǒng)將一些通用的算法編寫成一個個程序提供給用戶使用,這就是所謂的系統(tǒng)函數(shù)。而用戶自定義函數(shù)是用戶根據(jù)需要自己編寫的函數(shù)。

      一、自定義函數(shù)的建立

      自定義函數(shù)的格式如下。

      【格式】FUNCTION  <函數(shù)名>

              PARAMETERS <參數(shù)表>

                <語句序列>

              RETURN <表達式>

      【功能】定義一個用戶自定義函數(shù)。

      【說明】若使用FUNCTION語句來指出函數(shù)名,表示該函數(shù)包含在調(diào)用程序中。若缺省該語句,表示此函數(shù)是一個獨立文件,函數(shù)名將在建立文件時確定,其擴展名默認為.PRG,并可使用命令MODIFY COMMAND <函數(shù)名>來建立或編輯該自定義函數(shù)。還需注意,自定義函數(shù)的函數(shù)名不能和Visual  FoxPro系統(tǒng)函數(shù)同名,也不能和內(nèi)存變量同名。

      <語句序列>組成函數(shù)體,用于進行各種處理,簡單函數(shù)的函數(shù)體可以為空。

      RETURN 語句用于返回函數(shù)值,其中的<表達式>值就是函數(shù)值。若缺省該語句,則返回的函數(shù)值為.T.。

      自定義函數(shù)與系統(tǒng)函數(shù)調(diào)用方法相同,通過函數(shù)名調(diào)用,形式為:函數(shù)名(<參數(shù)表>)。

      2過程設(shè)計

         過程是子程序的另一種形式,它和函數(shù)的不同之處是:在程序結(jié)束之后,不必返回值。如果希望返回參數(shù),可以通過PARAMETERS語句返回,而不是通過 RETURN 詞句。當調(diào)用過程時,將參數(shù)傳遞給被調(diào)用的過程,過程執(zhí)行完后,將參數(shù)通過 PAMETERS 再傳遞給主程序。所以,在過程中 RETURN 語句并不是必須的,有 RETURN 語句只不過是形式上更完整而已。

      【格式】PROCEDURE  <過程名>

               [PARAMETERS <參數(shù)表>]

               <命令序列>

               [RETURN]

      【功能】定義一個過程。

      【說明】過程作為程序的一部分時往往列在程序的最后。

      ⑴ 過程的格式是通過PROCEDURE  過程名…ENDPROC括起來的;

      ⑵  PARAMETERS語句即可傳入?yún)?shù),也可以輸出參數(shù);

      ⑶ 過程調(diào)用可以使用命令:DO過程名 WITH 參數(shù)|參數(shù)變量,如果沒有參數(shù)可以省略WITH關(guān)鍵字;

      ⑷ 在參數(shù)傳遞過程中,一次可以傳遞若干個變量。每次傳遞多少個變量,反映在調(diào)用命令中寫多少個變量,接收命令中也要寫多少個變量,傳遞變量之間存在一一對應關(guān)系。這實際是一種按地址傳遞變量的方式。在函數(shù)的PARAMETER參數(shù)傳遞過程中還提供了一種按值傳送方式,需要使用SET UDFPARMS  TO VALUE|REFERENCE命令進行設(shè)置。

      -----------本節(jié)課結(jié)束-----------

      3.主程序和子程序

      一、帶參數(shù)子程序的調(diào)用

      【格式】DO <程序名1> [WITH <參數(shù)表>][IN <程序名2>]

      【功能】主程序<程序名2>調(diào)用子程序<程序名1>。

      【說明】<參數(shù)表>中的參數(shù)可以是表達式,但若為內(nèi)存變量必須具有初值;

       調(diào)用子程序時參數(shù)表中的參數(shù)要傳送給子程序,子程序中也必須設(shè)置相應的參數(shù)接收語句。PARAMETERS 可以完成此項功能,但必須是子程序的第一條語句。

      二、子程序的返回

         主程序與子程序的概念是相對的,子程序還可調(diào)用它自己的子程序,即子程序可以嵌套調(diào)用。Visual FoxPro的返回命令包含了因嵌套而引出的多種返回方式。

      【格式】RETURN  [TO MASTER|TO <程序文件名>]

      【功能】TO  MASTER 使返回時直接返回到最外層主程序,TO <程序文件名>強制返回到指定的程序文件。

      【例】計算S=1!+2!+3!+4!+5!,要求在子程序中計算n!,并

      定義為函數(shù)。運行

      * 主程序:  E7_20.PRG

      CLEAR

      S=0   && 累加器初值為0

      FOR i=1 TO 5

       ?STR(i)+"的階乘=",STR(mul(i),3)  && 輸出每個數(shù)的階乘

       S=S+mul(i)    && 通過子程序名調(diào)用子程序函數(shù),累加階乘

      NEXT

      ?"1+2!+3!+4!+5!=",STR(S,5)

      *     子程序函數(shù):mul.PRG

      PARAMETERS n      && 定義參數(shù)

      mul=1             && 累乘器初值為1

      FOR j=1 TO n

         mul=mul*j         && 累乘

      NEXT

      RETURN mul        && 返回累乘結(jié)果

      .3.4變量作用域

         當程序使用函數(shù)或過程作為子程序來設(shè)計時,弄清楚變量的作用域尤其重要。變量的作用域指的是變量在什么范圍內(nèi)是有效或能被訪問的。在Visual FoxPro中關(guān)于變量聲明分為如下幾種情況。

      一、全程變量

         在任何模塊中都可使用的變量稱為全程變量,全程變量必須先定義后使用。全程變量可以通過關(guān)鍵字 PUBLIC 命令來定義。

      【格式】PUBLIC  <內(nèi)存變量表>

      【功能】將<內(nèi)存變量表>指定的變量設(shè)置為公共變量,并將這些變量的初值賦以.F.。

      【說明】若下層模塊中建立的內(nèi)存變量要供上層模塊使用,或某模塊中建立的內(nèi)存變量要供并列模塊使用,必須將這種變量說明成公共變量。

      二、局部變量

         局部變量使用 LOCAL 關(guān)鍵字來說明,局部變量只在當前定義的程序中有效,一旦該程序執(zhí)行完成將自動釋放局部變量。

      注意:LOCAL 與 LOCATE 前4個字符字母相同,故不可使用縮寫。

      三、私有變量

         在程序中使用,沒有通過PUBLIC和LOCAL聲明而由系統(tǒng)自動創(chuàng)建的內(nèi)存變量是私有變量。這種變量不同于局部變量和全局變

      量,它的作用范圍在本(子)程序及下屬的子程序內(nèi)有效,而在定義它的模塊程序運行結(jié)束時自動清除。

         私有變量允許與上層模塊程序的變量同名,但此時為了分清楚兩者是不同的變量,系統(tǒng)會采用暫時屏蔽上級模塊變量。這種隱蔽說明只是對上級程序的變量進行屏蔽,而不創(chuàng)建變量。隱蔽的目的是為了當前程序使用同名變量時不至于沖突。私有變量也可以使用PRIVATE關(guān)鍵字來說明。

      【格式】PRIVATE  [<內(nèi)存變量表>][ALL[LIKE|EXCEPT <通配符>]]

      【功能】聲明私有變量并隱藏上級程序的同名變量,直到聲明它的程序、過程或自定義函數(shù)執(zhí)行結(jié)束后,才恢復使用先前隱藏的變量。

      【說明】“聲明”與“建立”不一樣,前者僅指變量的類型,后者包括類型與值。PUBLIC命令除聲明變量的類型外還賦了初值,故稱為建立;而PRIVATE并不自動對變量賦值,僅是聲明而已。

      在程序模塊調(diào)用時,參數(shù)接收命令PARAMETERS聲明的參變量也是私有變量,與PRIVATE命令相同。

      講述

      自定義函數(shù)介紹5分鐘

      自定義函數(shù)的建立15分鐘

      過程設(shè)計15分鐘

      帶參數(shù)子程序的調(diào)用8分鐘

      子程序的返回10分鐘

      全程變量8分鐘

      局部變量8分鐘

      私有變量8分鐘


      日韩无码第一页,一区_97资源人妻碰碰碰_有码无码人妻Av_午夜亚洲国产理论片2020网站 亚洲无码片AV一级 岛国av无码专区免费看
      <style id="uedzd"></style>
    3. <style id="uedzd"></style>
    4. <dfn id="uedzd"></dfn>
    5. <dfn id="uedzd"></dfn>
      1. <ruby id="uedzd"></ruby>
        <ruby id="uedzd"></ruby>