版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、工程8 程序設(shè)計初步 【工程描畫】 工程8包括五個實訓(xùn)義務(wù): 義務(wù)8.1程序編輯、編譯和運(yùn)轉(zhuǎn) 義務(wù)8.2順序語句與數(shù)組 義務(wù)8.3分支程序設(shè)計 義務(wù)8.4循環(huán)程序設(shè)計 義務(wù)8.5過程與自定義函數(shù)設(shè)計 【工程目的】 掌握創(chuàng)建和運(yùn)轉(zhuǎn)程序文件的方法和步驟。 重點: 掌握Visual FoxPro 6.0程序的流程。了解Visual FoxPro 6.0中的過程和函數(shù)。學(xué)會創(chuàng)建和運(yùn)轉(zhuǎn)程序文件。 難點: 運(yùn)用程序設(shè)計的方法處理詳細(xì)的問題。工程8 程序設(shè)計初步 【技藝建構(gòu)】 Visual FoxPro 6.0支持兩種程序設(shè)計與開發(fā)的類型。它既支持過程化程序設(shè)計Procedural Programming言
2、語,又支持面向?qū)ο驩bject oriented Programming的程序設(shè)計方法。在這里我們主要引見過程化程序設(shè)計,對面向?qū)ο蟮某绦蛟O(shè)計方法只作簡單闡明。 過程化程序設(shè)計是用構(gòu)造化編程語句來編寫程序。 這類方法容易把一個復(fù)雜的程序分成假設(shè)干個較小的過程,每個過程都可單獨進(jìn)展調(diào)試。這類設(shè)計方法開展的總的思緒是從程序員角度思索使程序設(shè)計更簡單,而較少從用戶角度思索。 面向?qū)ο蟮某绦蛟O(shè)計其思想是面向?qū)ο螅丛O(shè)計的主要義務(wù)在于描畫對象。程序是事件驅(qū)動的,因此在執(zhí)行過程中,程序等待的是一個發(fā)生在對象上的事件。而發(fā)生什么事件那么要看用戶的操作。 這類程序設(shè)計主要從如何方便與簡化用戶運(yùn)用入手,由用戶控
3、制程序流向,這在一定程序上添加了編程的難度。 普通而言,制造簡單短小的運(yùn)用程序,運(yùn)用過程化編程方式比較容易,因此本章作為程序設(shè)計初步,將主要進(jìn)展這方面的學(xué)習(xí),同時也為后面的繼續(xù)深化學(xué)習(xí)面向?qū)ο缶幊檀蛳乱粋€好的根底。工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 義務(wù)描畫 翻開工程文件:“vfpp學(xué)生管理.pjx,學(xué)習(xí)程序的簡單編寫和運(yùn)轉(zhuǎn)。 技藝目的 了解程序編寫的要求和目的; 會創(chuàng)建程序文件和運(yùn)轉(zhuǎn)程序文件; 學(xué)會調(diào)試程序并能正確運(yùn)轉(zhuǎn)出程序結(jié)果。 義務(wù)分析 學(xué)習(xí)Visual FoxPro 6.0的目的就是要運(yùn)用它的命令來組織和處置數(shù)據(jù)、完成一些詳細(xì)義務(wù)。許多義務(wù)單靠一條命令是無法完成的,而
4、是要執(zhí)行一組命令來完成。假設(shè)采用在命令窗口逐條輸入命令的方式進(jìn)展,不僅非常費事,而且容易出錯。特別是當(dāng)該義務(wù)需求反復(fù)執(zhí)行或者所包含的命令很多時,這種逐條輸入命令執(zhí)行的方式幾乎是不可行的。這時應(yīng)該采用程序的方式。工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 技藝建構(gòu) 8.1.1創(chuàng)建程序文件 Visual FoxPro 6.0 中創(chuàng)建程序文件的方法有以下三種: 1.運(yùn)用菜單創(chuàng)建程序文件 選擇系統(tǒng)菜單“文件下拉菜單中的“新建選項,或者單擊常用工具欄上的“新建按鈕,翻開“新建對話框。 單擊“程序單項選擇按鈕,再單擊“新建文件按鈕,翻開程序文件的編寫窗口,此時就可以輸入程序代碼了。 2.運(yùn)用工程
5、管理器創(chuàng)建程序文件 翻開或新建一個工程管理器。 單擊“代碼選項卡。 選擇“程序選項,再單擊“新建按鈕,即可翻開程序文件的編寫窗口。 3. 運(yùn)用命令創(chuàng)建程序文件 在命令窗口輸入如下命令: 命令格式:MODIFY COMMAND 程序文件名 命令功能:創(chuàng)建程序文件 按回車鍵后,Visual FoxPro 6.0將翻開程序文件的編寫窗口。 工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 8.1.2存儲程序文件 程序輸入完成后必需進(jìn)展存儲,存儲方法有以下兩種: 1從“文件下接菜單中選擇“保管選項,或者單擊常用工具欄上的“保管按鈕,翻開“另存為
6、對話框。 2首先確定保管文件的文件夾,然后在“保管文檔為文本檔中輸入程序文件名,再單擊“保管按鈕,將新建的程序文件存入指定位置中。 程序一旦保管好了,就可以根據(jù)需求方便地修正和執(zhí)行這些程序文件了。工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 8.1.3修正程序文件 假設(shè)要修正程序文件,只需將該程序文件翻開就可以進(jìn)展修正了。修正程序文件的方法有以三種: 1、運(yùn)用菜單翻開程序文件 1、從“文件下拉菜單中的“翻開選項,或者單擊常用工具欄上的“翻開按鈕,翻開“翻開對話框。 2、單擊“文件類型列表框中選擇“程序*.prg;*.spr;*.mpr;*.qpr類型,然后確定要翻開的程序文件所在的文件
7、夾,從文件名列表中選擇要修正的程序文件,再單擊“確定按鈕,即可翻開該程序的編寫窗口。此時就可以修正程序代碼了。 2、運(yùn)用工程管理器翻開程序文件 假設(shè)程序包含在工程中,那么可以在工程管理器中翻開程序文件。1翻開程序所在的工程管理器;2單擊“代碼選項卡;3選擇要修正的程序文件,然后單擊“修正命令按鈕。 與程序的輸入一樣,完成程序的修正后也必需將文件存入指定位置中。 3、運(yùn)用命令翻開程序文件 翻開程序文件命令的普通格式: 命令格式:MODIFY COMMAND 程序文件名 命令功能:翻開程序文件工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 8.1.4運(yùn)轉(zhuǎn)程序文件 程序創(chuàng)建好了以后,就可以運(yùn)轉(zhuǎn)
8、了。要運(yùn)轉(zhuǎn)一個程序,主要有三種方法: 1、運(yùn)用菜單運(yùn)轉(zhuǎn)程序文件 1從“程序下拉菜單中選擇“運(yùn)轉(zhuǎn)選項,翻開“運(yùn)轉(zhuǎn)對話框。 2首先確定要運(yùn)轉(zhuǎn)的程序文件所在的文件夾,從文件列表中選擇要運(yùn)轉(zhuǎn)的程序文件,再單擊“確定按鈕,即可運(yùn)轉(zhuǎn)程序。 2、運(yùn)用工程管理器運(yùn)轉(zhuǎn)程序文件 假設(shè)程序包含在工程中,那么可以在工程管理器中運(yùn)轉(zhuǎn)程序。 翻開程序文件所在的工程管理器。 單擊“代碼選項卡。 選擇要運(yùn)轉(zhuǎn)的程序文件,然后單擊“運(yùn)轉(zhuǎn)命令按鈕。 3、運(yùn)用命令運(yùn)轉(zhuǎn)程序文件 運(yùn)轉(zhuǎn)程序文件命令的普通格式: 命令格式:do 程序文件名 命令功能:運(yùn)轉(zhuǎn)程序文件工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 例1:求圓的面積:Set
9、 talk off Input “請輸入圓的半徑: to r S=3.14*r*r? “圓的面積:,S工程8 程序設(shè)計初步義務(wù)8.1程序的編寫、編譯和運(yùn)轉(zhuǎn) 義務(wù)小結(jié) 程序是可以完成一定義務(wù)的命令的有序集合。這組命令被存放在稱為程序文件或者命令文件的文本文件中。當(dāng)運(yùn)轉(zhuǎn)程序時,系統(tǒng)會按照一定的次序自動執(zhí)行包含在程序文件中的命令。與在命令窗口逐條輸入命令相比,采用程序方式有如下益處: 1.可以利用編輯器,方便地輸入、修正和保管程序。 2.可以用多種方式、多次運(yùn)轉(zhuǎn)程序。 3.可以在一個程序中調(diào)用另一個程序。 工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 義務(wù)描畫 一個程序普通都包含數(shù)據(jù)輸入、數(shù)據(jù)處置
10、、和數(shù)據(jù)輸出三個部分。數(shù)據(jù)輸入和數(shù)據(jù)輸出是編寫許多程序都要面臨的任務(wù)。本次義務(wù)引見幾種常見的輸入和輸出等賦值語句以及數(shù)組等,這在程序編寫過程中是非常有用的。 技藝目的 1掌握各種輸入語句的格式和功能; 2在程序設(shè)計中選用適當(dāng)?shù)妮斎胝Z句; 3學(xué)會運(yùn)用數(shù)組賦值語句; 義務(wù)分析 實踐運(yùn)用中,有些數(shù)據(jù)是是預(yù)先知道的,這可以直接運(yùn)用賦值語句:變量名=表達(dá)式 來完成,而有些數(shù)據(jù)是用戶根據(jù)實踐需求暫時輸入的,Visual FoxPro 6.0提供了交互式語句。工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 技藝建構(gòu)Visual FoxPro 6.0 中經(jīng)常運(yùn)用的輸入、輸出語句有以下幾種:8.2.1直接賦值語
11、句命令格式: STORE 表達(dá)式 TO 內(nèi)存變量表命令功能:將表達(dá)式的值賦給一個或者多個內(nèi)存變量功能注釋:內(nèi)存變量表是由逗號隔開的。例如:STORE 0 TO X,Y,Z 工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 8.2.2鍵盤輸入語句 命令格式: INPUT 提示信息 TO 內(nèi)存變量 命令功能:該命令等待用戶從鍵盤輸入數(shù)據(jù),用戶可以輸入恣意合法的表達(dá)式。當(dāng) 用戶以回車鍵終了輸入時,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量,程序繼續(xù)運(yùn)轉(zhuǎn)。功能注釋: 輸入的數(shù)據(jù)可以是常量、變量,也可以是普通表達(dá)式。但不能不輸入任何內(nèi)容直接回車按回車鍵。 輸入字符串時必需加定界符,輸入邏輯型常量時要用圓點定界如.
12、T.,輸入日期時間型常量時要用大括號如2021-03-05。 例如: SET TALK OFF INPUT “請輸入X的值:TO X INPUT “請輸入Y的值:TO Y ?“X+Y=,X+Y工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 8.2.3接受數(shù)據(jù)語句 命令格式: ACCEPT 提示信息 TO 內(nèi)存變量 命令功能:該命令在程序執(zhí)行中用于暫停,并提示用戶輸入數(shù)據(jù)到內(nèi)存變量,按回車鍵終了。 功能注釋: 輸入的數(shù)據(jù)只能是字符型,不需求運(yùn)用任何定界符將字符括起來。輸入的字符型數(shù)據(jù)最多允許254個字符。 假設(shè)不輸入任何內(nèi)容,僅以回車鍵呼應(yīng),那么內(nèi)存變量的內(nèi)容為一空串。 例如: ACCEPT “
13、請輸入姓名: TO NAME工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 8.2.4立刻輸入語句 命令格式: WAIT 提示信息 TO 內(nèi)存變量WINDOWAT行,列NOWAITCLEARNOCLEARTIMEOUT 表達(dá)式 命令功能:該命令顯示提示信息,暫停程序的執(zhí)行,直到用戶按恣意鍵或 單擊鼠標(biāo)時繼續(xù)程序執(zhí)行。 例如: WAIT “請輸入您的選擇1-9:TO XUANZE工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 8.2.5數(shù)組賦值語句 命令格式:DIMENSION 數(shù)組名1行,列數(shù)組名2行,列 命令功能:定義一維數(shù)組或者二維數(shù)組. 功能注釋:1、多個數(shù)組的稱號之間用逗號分開。 2、
14、數(shù)組沒有賦初值時其默許值為.F.,默許的類型為邏輯型 例如: DIMENSION SUZU(6),SHU(2,6) 例3:運(yùn)轉(zhuǎn)下面程序段,查看數(shù)組變量的值: DIME A(2,3) A=9 DIME A1(3) A1=2021-03-05 DISP MEMO工程8 程序設(shè)計初步義務(wù)8.2 順序語句與數(shù)組 義務(wù)小結(jié) 順序構(gòu)造:依次執(zhí)行程序中的語句的程序構(gòu)造稱為順序構(gòu)造,這是最簡單的程序構(gòu)造。 數(shù)組array是存儲在一個變量中由單個變量名援用的有序數(shù)據(jù)集合。在vfp中,一個數(shù)組中的數(shù)據(jù)不用是同一種數(shù)據(jù)類型。常用的有一維數(shù)組,二維數(shù)組。 數(shù)組元素經(jīng)過一個數(shù)值下標(biāo)來援用,如 aa2,aa2,3工程8
15、程序設(shè)計初步義務(wù)8.3 分支程序設(shè)計 義務(wù)描畫 順序構(gòu)造是最簡單的程序構(gòu)造,它按命令在程序中出現(xiàn)的先后次序依次進(jìn)展,但大多數(shù)的程序僅用順序構(gòu)造是無法處理的。本義務(wù)學(xué)慣用于分支選擇控制構(gòu)造的程序設(shè)計。 技藝目的 1掌握條件語句格式和功能; 2掌握多重分支語句格式和功能; 3學(xué)會運(yùn)用分支構(gòu)造程序設(shè)計思想處理問題; 義務(wù)分析 選擇構(gòu)造是根據(jù)條件的測試結(jié)果執(zhí)行不同的操作。常用的選擇構(gòu)造設(shè)計命令有條件語句和多重分支語句工程8 程序設(shè)計初步義務(wù)8.3 分支程序設(shè)計 技藝建構(gòu) 8.3.1條件語句 命令格式: IF ELSE ENDIF 命令功能:當(dāng)條件為真是,執(zhí)行語句序列1,執(zhí)行完后跳出ENDIF.否那么假
16、設(shè)有ELSE選項,那么執(zhí)行語句序列2,執(zhí)行過錯后跳出ENDIF;假設(shè)沒有ELSE選項,就不執(zhí)行任何操作而跳出ENDIF。工程8 程序設(shè)計初步義務(wù)8.3 分支程序設(shè)計 例4:輸入一個學(xué)生的成果,假設(shè)成果大于60包含60,那么輸出“及格,否那么輸出不及格。 SET TALK OFF INPUT “請輸入學(xué)生成果:TO CJ IF CJ=60 ?該學(xué)生成果及格 ELSE ? “該學(xué)生成果不及格 ENDIF RETURN工程8 程序設(shè)計初步義務(wù)8.3 分支程序設(shè)計 8.3.2多分支條件語句 命令格式: DO CASECASE CASE CASE OTHERWISE ENDCASE工程8 程序設(shè)計初步義
17、務(wù)8.3 分支程序設(shè)計 例5:輸入一個學(xué)生的成果,假設(shè)成果大于95,那么輸出“非常優(yōu)秀,成果到達(dá)85,那么輸出“優(yōu)秀,成果到達(dá)75,那么輸出“良好,成果到達(dá)60,那么輸出“及格,否那么輸出“不及格。SET TALK OFFINPUT “請輸入學(xué)生成果:TO CJDO CASE CJ95 ?該學(xué)生成果非常優(yōu)秀 CASE CJ=85? “該學(xué)生成果優(yōu)秀 CASE CJ=75? “該學(xué)生成果良好 CASE CJ=60? “該學(xué)生成果合格OTHERWISE? “該學(xué)生成果不及格ENDCASE工程8 程序設(shè)計初步義務(wù)8.3 分支程序設(shè)計 義務(wù)小結(jié) 在IF條件語句中假設(shè)條件為真,那么執(zhí)行命令語句組中的各語
18、句,否那么跳過這些命令語句不執(zhí)行,而執(zhí)行ENDIF后的語句。 多分支條件語句 DO CASE在執(zhí)行時依次判別CASE后面的條件能否成立,當(dāng)發(fā)現(xiàn)某個CASE 后面的條件成立時,就執(zhí)行該CASE和下一個CASE之間的命令序列,然后執(zhí)行ENDCASE后面的命令。假設(shè)一切的條件都不成立,那么執(zhí)行OTHERWISE與ENDCASE之間的命令序列,然后轉(zhuǎn)向ENDCASE后面的語句。工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 義務(wù)描畫 當(dāng)某一段程序要反復(fù)執(zhí)行多次時,為防止編寫反復(fù)的程序代碼,可以利用循環(huán)構(gòu)造來完成。Visual FoxPro 6.0支持三種循環(huán)語句:DO WHILE ENDDO、FOR E
19、NDFOR、 SCAN-ENDSCAN語句 技藝目的 1掌握循環(huán)語句格式和功能; 2掌握多重分支語句格式和功能; 3學(xué)會運(yùn)用循環(huán)構(gòu)造程序設(shè)計思想處理問題; 義務(wù)分析 Visual FoxPro 6.0支持三種循環(huán)語句:DO WHILE ENDDO、FOR ENDFOR、 SCAN-ENDSCAN語句工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 技藝建構(gòu) 8.4.1 DO WHILE ENDDO 語句 命令格式: DO WHILE LOOP EXIT ENDDO 命令功能:假設(shè)條件成立,那么執(zhí)行DO WHILE與 ENDDO之間的語句序列,當(dāng)執(zhí)行到ENDDO時,前往到DO WHILE,再次判別條
20、件能否為真,以確定能否再次執(zhí)行語句序列。假設(shè)條件為假,那么終了該循環(huán)語句,執(zhí)行ENDDO后面的語句。工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例6:計算S=1+2+3+100S=0I=1DO WHILE I=100S=S+II=I+1ENDDO?“S=,S工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例7:逐條輸出男同窗的記錄CLEAROPEN DATABASE XSQKSELECT 學(xué)生LOCATE FOR 性別=“男DO WHILE .NOT.EOF() DISPLAYWAIT CONTINUEENDDOCLOSE DATABASE工程8
21、程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 8.4.2 FOR-ENDFOR 語句 命令格式: FOR 循環(huán)變量=初值 TO 終值 STEP 步長 LOOP EXIT ENDFOR 命令功能:執(zhí)行語句時,首先將初值賦給循環(huán)變量,然后判別循變量沒有超越終值,那么執(zhí)行語句序列,然后循環(huán)變量遞增遞增值為步長,再判別循變量有沒有超越終值,沒有,繼續(xù)執(zhí)行語句序列,否那么終了循環(huán),執(zhí)行ENDFOR后面的語句。工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例8:求S=1+3+5+99的值CLEARS=0FOR N=1 TO 99 STEP 2 S=S+NENDFOR?S=,S工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程
22、序設(shè)計 8.4.3 SCAN-ENDSCAN 語句 命令格式: SCAN 范圍 FOR 條件 WHILE 條件 LOOP EXIT ENDSCAN工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 8.4.3 SCAN-ENDSCAN 語句 命令格式: SCAN 范圍 FOR 條件 WHILE 條件 LOOP EXIT ENDSCAN 命令功能:執(zhí)行語句時,記錄指針自動,依次地在當(dāng)前表的指定范圍內(nèi)滿足條件的記錄上挪動,對每一條記錄執(zhí)行循環(huán)體內(nèi)的語句。工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例9: 統(tǒng)計XSCJ.DBF中英語成果及格的男、女生人數(shù)。OPEN DATABASE XSQKSTORE
23、0 TO M,NSCAN FOR 英語=60 IF 性別=“男 M=M+1 ELSE N=N+1 ENDIFENDSCANCLEAR?“英語及格的男生人數(shù):,M?“英語及格的女生人數(shù):,NCLOSE DATABASERETURN工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例10:求S=1!+2!+3!+20!CLEARS=0FOR I=1 TO 20 M=1 FOR J=1 TO IM=M*JENDFORS=S+MENDFOR?“1!+2!+3!+20!=,S工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 例11:編寫程序輸出以以下圖形:CLEAR FOR N=1 TO 10 FOR M=1
24、TO n?* ENDFOR? ENDFOR工程8 程序設(shè)計初步義務(wù)8.4 循環(huán)程序設(shè)計 義務(wù)小結(jié) 在實踐運(yùn)用中,經(jīng)常需求多次反復(fù)執(zhí)行某些語句。這樣的需求適宜于用循環(huán)語句來處置。在vfp中提供了3種循環(huán)語句:do while循環(huán)、for循環(huán)及scan循環(huán)。工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 義務(wù)描畫 程序設(shè)計時,經(jīng)常有些運(yùn)算和處置程序是一樣的,只是每次以不同的參數(shù)參與運(yùn)轉(zhuǎn)。為了節(jié)省時間和存儲空間,使人們可以共享一些公共的程序段,往往將反復(fù)出現(xiàn)的或者可以單獨運(yùn)用的程序?qū)懗沙绦蚨?。它可以獨立存在,可以被其它程序調(diào)用。這就是子程序。 技藝目的 1掌握自定義函數(shù)和過程文件的定義
25、、調(diào)用; 2掌握子程序或函數(shù)時數(shù)據(jù)傳送; 3在構(gòu)造程序設(shè)計中靈敏運(yùn)用過程與自定義函數(shù); 義務(wù)分析 在Visual FoxPro 6.0中,子程序與主程序根本上一樣,用同樣的方法建立,以同樣的文件格式存放,具有一樣的擴(kuò)展名,獨一不同的是,在子程序的最后必需加一條前往語句。主程序的末尾放不放前往語句都沒有關(guān)系,執(zhí)行完最后一句都是前往到命令窗口,假設(shè)在主程序的末尾加上前往語句,它就可以作為一個子程序被其它程序調(diào)用了。 工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 例12:用子程序調(diào)用的方法計算m!/(n!(m-n)!)計算機(jī)階乘的義務(wù)由子程序來完成,程序如下:*l812.prgSTO
26、RE 1 TO l,FDO WHILE L=X F=F*L L=L+1ENDDOX=FRETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 主程序需求調(diào)用三次子程序才干完成,程序如下*l8-12.prgCLEARINPUT 請入M的值: TO M INPUT 請入N的值: TO N X=MDO l812C=XX=NDO l812D=XX=M-NDO l812?m!/(n!(m-n)!)的值為,C/(D*X)工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 8.5.2過程文件的建立與運(yùn)用 一個運(yùn)用程序往往由假設(shè)干個子程序組成,這些子程序和其他程序一樣以文件的方式存
27、儲,每次運(yùn)轉(zhuǎn)程序時,都要逐個調(diào)用。當(dāng)程序開展較大時,不便于管理和運(yùn)用,為了抑制這個缺陷,可以把多個子程序合并成一個文件,而各個子程序相對獨立,這個文件稱為過程文件。 過程文件與其他命令文件的建立一樣,運(yùn)用MODIFY COMMAND 過程文件名過程文件普通格式:PROCEDURE 過程名1 語句序列1RETURNPROCEDURE 過程名N 語句序列NRETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 過程文件的翻開調(diào)用過程文件前,應(yīng)該先翻開相應(yīng)的過程文件。命令格式:SET PROCEDURE TO 過程文件名命令功能:翻開指定的過程文件名。過程文件的調(diào)用命令格式:DO
28、過程文件名命令功能:調(diào)用指定的過程文件名,一旦過程文件名翻開,過程文件中的一切子過程也被翻開,可以隨時被調(diào)用。封鎖過程文件命令格式:CLOSE PROCEDURE命令功能:封鎖已翻開的過程文件。工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 例13:用過程文件分別計算圓的面積和球的體積。主程序:*l8-13.prgSET PROCEDURE TO l813CLEARDO MIANJIDO TIJISET PROCEDURE TO工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 過程文件:*l813.prgPROCEDURE MIANJIINPUT 圓的半徑: TO R
29、S=3.14159*R*R?圓的半徑:,R, 圓的面積:,SRETURNPROCEDURE TIJIINPUT 球的半徑: TO kV=3.14159*k*k*k?球的半徑:,k, 球的體積:,VRETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 8.5.3自定義函數(shù)建立與運(yùn)用 Visual FoxPro 6.0提供了幾百個函數(shù),這些函數(shù)能完成假設(shè)干復(fù)雜的功能。但在實踐運(yùn)用中經(jīng)常需求一些特殊功能的函數(shù),所以提供了用戶自義函數(shù)的手段。 自定義函數(shù)命令格式: FUNCTION 函數(shù)名變量名 語句序列 ENDFUNC自定義函數(shù)命令功能:用戶本人定義一個函數(shù) 例14:利用自定義函
30、數(shù)計算X=A*A+B*BSET TALK OFF?MYF4,6FUNCTION MYF(M,N) K=M*M+N*NRETURN KENDFUNC工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 例15:利用自定義函數(shù)計算1+2+3+100的和?add(100) function add(x) s=0 for i=1 to x s=s+i endfor return s endfunc工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 8.5.4參數(shù)傳送 調(diào)用子程序和函數(shù)時,經(jīng)常需求進(jìn)展數(shù)據(jù)傳送。調(diào)用程序所傳出的參數(shù)稱為實踐參數(shù),被調(diào)用程序所接納的參數(shù)稱為方式參數(shù)。 接受
31、參數(shù)語句格式: PARAMETERS 參數(shù)表 接受參數(shù)語句功能:接納調(diào)用命令中相應(yīng)的參數(shù)值。工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 例16:利用參數(shù)傳送,計算圓的面積。主程序:*18-16.prgCLEARINPUT 請輸入圓的半徑: TO r s=0DO z816 WITH r,s?圓的面積是:,sRETURNCLOSE PROCEDURE子程序:*z816.prgparameters x,yy=3.14159*x*x?yRETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 8.5.4參數(shù)傳送 調(diào)用子程序和函數(shù)時,經(jīng)常需求進(jìn)展數(shù)據(jù)傳送。調(diào)用程序所傳出
32、的參數(shù)稱為實踐參數(shù),被調(diào)用程序所接納的參數(shù)稱為方式參數(shù)。 接受參數(shù)語句格式: PARAMETERS 參數(shù)表 接受參數(shù)語句功能:接納調(diào)用命令中相應(yīng)的參數(shù)值。工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 過程文件*l817.prgproc proc1?子程序1RETURNproc proc2(para1,para2)?子程序2?para1+para2RETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 過程文件*l817.prgproc proc1?子程序1RETURNproc proc2(para1,para2)?子程序2?para1+para2RETURN工
33、程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 8.4.5變量的作用域 程序設(shè)計離不開變量。一個變量除了類型和取值之外,還有一個重要的屬性就是它的作用域。變量的作用域指的是變量在什么范圍內(nèi)是有效或可以被訪問的。在Visual FoxPro 6.0中,假設(shè)以變量的作用域來分,內(nèi)存變量可分為公共變量、私有變量和部分變量三類。 1.公共變量公共變量建立命令格式:PUBLIC 內(nèi)存變量表命令功能:建立公共的內(nèi)存變量,并賦初值為.F.。例如:PUBLIC X,Y,C10工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 2.私有變量 在程序中直接運(yùn)用沒有用PUBLIC 和LOCAL
34、事先聲明而由系統(tǒng)自動隱含建立的變量都是私有變量。私有變量的作用域是建立它的模塊及其下屬的各層模塊。一旦建立它模塊程序運(yùn)轉(zhuǎn)終了,這些私有變量將自動去除。 3.部分變量 部分變量只能在建立它的模塊中運(yùn)用,不能在上層或下層模塊中運(yùn)用。當(dāng)建立它的模塊程序運(yùn)轉(zhuǎn)終了時,部分變量自動釋放。 部分變量建立命令格式:LOCAL 內(nèi)存變量表命令功能:建立部分的內(nèi)存變量,并賦初值為.F.。工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 例18:公共變量、私有變量、部分變量及其作用域*l8-18.prgSET PROCEDURE TO l818PUBLIC X1LOCAL X2STORE 4 TO X3?主程序中?X1=,X1?X2=,X2?X3=,X3DO l817RETURN 工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 過程文件:*l818.PRGPROCEDURE l818?子程序中?X1=,X1?X3=,X3RETURN工程8 程序設(shè)計初步義務(wù)8.5 子程序、過程與自定義函數(shù)設(shè)計 隱藏變量PRIVATE 開發(fā)程序時,主程序與子程序不一定是同一人來設(shè)計,編寫子程序的人不能夠?qū)χ鞒绦蛑杏玫降淖兞苛私獾梅浅G宄?。這樣就能夠出現(xiàn)子程序中用到的變量在主程序中曾經(jīng)建立了,出現(xiàn)了變量值的混亂。為了防止這個
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合并同類項解元次方程說課稿
- 電商項目規(guī)劃
- 美術(shù)館黃金屋租賃合同
- 休閑娛樂場所消火栓施工合同
- 會計師事務(wù)所出納人員聘用協(xié)議
- 老年大學(xué)教師勞動合同范本
- 羽絨制品維修工聘用合同模板
- 農(nóng)藥采購合同管理
- 電梯工程師招聘協(xié)議
- 房地產(chǎn)開發(fā)招標(biāo)廉政責(zé)任
- 人教版四年級下冊語文第三單元測試卷及答案(2)
- 田麥久《運(yùn)動訓(xùn)練學(xué)》(第2版)配套題庫(含考研真題)
- 2016出資證明書(貨幣出資)(共1頁)
- 小學(xué)廣播體操比賽評分細(xì)則、評分表
- 商務(wù)英語教學(xué)課件:unit5 Travel and Visits
- 民航概論課程標(biāo)準(zhǔn)
- MACD二次綠柱縮短的選股公式.doc
- 尾礦庫閉庫工程施工組織設(shè)計方案范本
- 化工企業(yè)事故案例分析(中毒事故)
- 兒童日常習(xí)慣培養(yǎng)積分表
- 2021年勞資科三年工作總結(jié)
評論
0/150
提交評論