




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章程序設(shè)計基礎(chǔ)過程過程 將需要重復(fù)調(diào)用的語句序列定義為過程。需要執(zhí)行時只要調(diào)用它即可。根據(jù)過程相對于當(dāng)前程序的存儲的方式,把過程分為外部過程和內(nèi)部過程兩大類。外部過程是存放在外存儲器中的一個獨立的程序文件,整個程序文件就是一個過程。外部過程文件通常稱為子程序,調(diào)用外部過程通常稱為調(diào)用子程序。調(diào)用外部過程時,先把外部過程文件讀入內(nèi)存,然后運行之,所以調(diào)用外部過程的速度相對較慢。內(nèi)部過程是包含在程序中,或者集中存放在一個過程文件中。當(dāng)打開程序文件和過程文件時,過程就讀入了內(nèi)存。調(diào)用內(nèi)部過程不必讀盤,所以調(diào)用內(nèi)部過程的速度相對較快。過程的分類過程的分類1定義外部過程命令格式: PARAMETER
2、S RETURN TO MASTER 功能:將一個程序文件定義為一個過程,程序文件名就是過程名。說明:1)若選用PARAMETERS ,則為有參過程;否則為無參過程。2)程序的結(jié)束不一定需要返回語句RETURN,但過程調(diào)用的結(jié)束一定要有返回語句RETURN,否則過程調(diào)用后無法返回調(diào)點。過程的定義過程的定義3)選用RETURN與RETURN TO MASTER 的區(qū)別見圖728所示。 圖圖728 RETURN與與RETURN TO MASTER的區(qū)別的區(qū)別 2定義內(nèi)部過程命令格式:PROCEDURE PARAMETERS RETURN TO MASTERENDPROC功能:將一個語句系列定義為以
3、為名稱的過程。說明:由于一個過程文件中可能包含多個過程,所以要用過程起始句PROCEDURE 3過程文件(1)過程文件也是.prg文件,其中包含若干個過程。(注意:過程文件過程)(2)過程文件的建立與修改的方法和程序文件相同。(3)若要使用過程文件中的過程,則要先打開過程文件。4外部過程和內(nèi)部過程的比較 程序.PRG(外部過程) 程序.PRG中的過程(內(nèi)部過程) 過程文件.PRG中的過程(內(nèi)部過程) 【例例723】建立一個建立一個求三角形、矩形和圓求三角形、矩形和圓的面積的過程文件。的面積的過程文件。程序內(nèi)容如下:* 過程Triangle(求三角形面積)PROC Triangle INPUT
4、請輸入三角形的高度: TO SH INPUT 請輸入三角形的底長: TO SD S=SD*SH/2 ? 三角形的面積為:,SRETURNENDPROC* 過程Rectangle(求矩形面積)PROC Rectangle INPUT 請輸入矩形的長: TO JX INPUT 請輸入矩形的寬: TO JY S=JX*JY ? 矩形的面積為:,SRETURNENDPROC * * 過程過程Round(Round(求圓的面積求圓的面積) ) PROC Round INPUT 請輸圓的半徑請輸圓的半徑: ; TO R S=3.14*R*R ? 圓的面積為:圓的面積為:,S RETURN ENDPROC1
5、調(diào)用外部過程外部過程以獨立的程序文件存儲在外存儲器中,調(diào)用外部過程就是平常所說的調(diào)用子程序文件,需要讀盤。命令格式:DO 功能:調(diào)用過程。說明:若缺省擴(kuò)展名,則默認(rèn).prg;DO命令還可以運行其他文件,如查詢文件(.qpr),菜單文件(.mpr)應(yīng)用程序(.app) 。過程的調(diào)用過程的調(diào)用【例例724】編寫一個菜單程序,有兩個菜單項:編寫一個菜單程序,有兩個菜單項:“1.逐條顯示逐條顯示職工的記錄職工的記錄”和和“2.統(tǒng)計男女職工的人數(shù)統(tǒng)計男女職工的人數(shù)”,通過調(diào)用程序文,通過調(diào)用程序文件實現(xiàn)以上兩個菜單項的功能。件實現(xiàn)以上兩個菜單項的功能。程序內(nèi)容如下:* 主程序CLEAR? 主菜單? =?
6、 1.逐條顯示職工的記錄? 2.統(tǒng)計男女職工的人數(shù)? =INPUT 請輸入選擇序號: TO NUMIF NUM=1 DO L7-13&調(diào)用程序文件ELSE DO L7-18&調(diào)用程序文件ENDIF2調(diào)用程序中的內(nèi)部過程 【例725】將例724中2個獨立的程序文件合并成一個程序文件,使被調(diào)用的過程成為程序文件中的內(nèi)部過程,然后在程序中調(diào)用內(nèi)部過程。* 主程序CLEAR? 主菜單? =? 1.逐條顯示職工的記錄? 2.統(tǒng)計男女職工的人數(shù)? =INPUT 請輸入選擇序號: TO NUMIF NUM=1 DO P1&調(diào)用程序文件中的過程ELSE DO P2&調(diào)用程序文件中的過程ENDIFRETURN&
7、主程序結(jié)束處要用RETURN語句,使主程序與內(nèi)部過程隔斷* 內(nèi)部過程P1(逐條顯示職工的記錄)PROCEDURE P1 USE Zgjk DO WHILE !EOF() DISPLAY WAIT 按任意鍵顯示下一條記錄 SKIP ENDDO RETURNENDPROC* 內(nèi)部過程P2(統(tǒng)計男女職工的人數(shù))PROCEDURE P2 USE Zgjk M=0 W=0 SCAN IF 性別=男 M=M+1 ELSE W=W+1 ENDIF ENDSCAN CLEAR ? 男職工人數(shù)為:,M ? 女職工人數(shù)為:,W RETURNENDPROC 3調(diào)用過程文件中的過程 要調(diào)用過程文件中的過程,首先要打開
8、過程文件。 (1)打開過程文件 命令格式:SET PROCEDURE TO 功能:打開過程文件。 (2)關(guān)閉過程文件 過程文件使用完畢要及時關(guān)閉,以節(jié)省內(nèi)存空間。 命令格式1:CLOSE PROCEDURE 命令格式2:SET PROCEDURE TO 功能:關(guān)閉過程文件。 (3)調(diào)用過程文件中的過程 命令格式:DO 功能:調(diào)用程序文件或過程文件中的過程。【例726】編寫一個菜單程序,有4個菜單項:“0.退出”、“1.計算三角形的面積”、“2.計算矩形的面積”和“3.計算圓的面積”,通過調(diào)用過程文件中的過程實現(xiàn)以上菜單項的功能。* 計算各種面積SET PROCEDURE TO L7-23&打開
9、過程文件DO WHILE .T. CLEAR ? 計算面積 ? = ? 0.退出 ? 1.計算三角形的面積 ? 2.計算矩形的面積 ? 3.計算圓的面積 ? = INPUT 請輸入選擇序號: TO NUM DO CASE CASE NUM=0 EXIT CASE NUM=1 DO Triangle &調(diào)用過程文件中的過程,計算三角形的面積 CASE NUM=2 DO Rectangle &調(diào)用過程文件中的過程,計算矩形的面積 CASE NUM=3 DO Round &調(diào)用過程文件中的過程,計算圓的面積 ENDCASE WAIT 按任意鍵繼續(xù)選擇菜單ENDDOCLOSE PROCEDURE&關(guān)閉
10、過程文件程序運行結(jié)果如圖730所示。 圖圖730 例例726的程序運行結(jié)果的程序運行結(jié)果參數(shù)傳遞與變量作用域 參數(shù)傳遞是關(guān)于調(diào)用過程與被調(diào)用過程之間的數(shù)據(jù)交換問題。在調(diào)用過程時,有時需要將數(shù)據(jù)帶入被調(diào)用的過程,當(dāng)過程執(zhí)行結(jié)束時,有時又需要將過程執(zhí)行的結(jié)果數(shù)據(jù)帶回到調(diào)用程序中。實現(xiàn)調(diào)用程序與被調(diào)用過程之間的數(shù)據(jù)交換途徑有兩種:A)使用參數(shù)傳遞B)利用內(nèi)存變量的作用域參數(shù)傳遞參數(shù)傳遞1參數(shù)傳遞語句參數(shù)傳遞語句命令格式:命令格式:DO WITH 功能:調(diào)用過程,并將實參傳遞給過程中的形參。功能:調(diào)用過程,并將實參傳遞給過程中的形參。說明:參數(shù)傳遞語句可以寫在調(diào)用程序中的任意位置。說明:參數(shù)傳遞語句可
11、以寫在調(diào)用程序中的任意位置。 2參數(shù)接收語句命令格式:PARAMETER 功能:在子程序或過程中定義私有的形參變量。說明:(1)參數(shù)接收語句必須是被調(diào)用過程的第一條可執(zhí)行語句。(2)形參的數(shù)目不能少于實參的數(shù)目,否則將出錯。如果形參的數(shù)目多于實參的數(shù)目,那么多余的形參初值取.F.。(3)實參與形參的排列順序及數(shù)據(jù)類型要一致。(4)如果實參是常量或表達(dá)式,則將實參的值賦給形參,稱作按值傳遞。這過程僅將實參的值傳遞給形參,形參值的改變不會影響實參。(5)如果實參是變量,則將實參的地址傳給形參,這樣實參和形參實際上是同一個變量,對形參值的修改將帶回實參,稱作按地址傳遞。【例例727】參數(shù)傳遞實例。設(shè)
12、已建立了參數(shù)傳遞實例。設(shè)已建立了3個程序文件,其內(nèi)容個程序文件,其內(nèi)容如下如下:* 外部過程PARA G&形參的名稱不一定與實參相同? GG=Good afternoon.RETURN* 主程序文件CLEARGG=Good Morning.DO L7-27A WITH GG& GG實參變量,按地址傳遞? GGRETURN* 主程序文件CLEARGG=Good Morning.DO L7-27A WITH (GG) &變量GG經(jīng)括號優(yōu)先算符運算后成為了表達(dá)式,按值傳遞? GGRETURN 運行主程序文件,結(jié)果如圖729所示。 圖圖729 主程序文件主程序文件L7-27B.prg 的運行結(jié)果的運行
13、結(jié)果運行主程序文件,結(jié)果如圖運行主程序文件,結(jié)果如圖730所示。所示。圖圖730 主程序文件主程序文件L7-27C.prg 的運行結(jié)果的運行結(jié)果變量作用域是指變量作用的有效范圍。1變量作用域的含義(1)內(nèi)存變量按作用域分類:全局變量、私有變量和局部變量。(2)全局變量、局部變量和私有變量的作用域示意如圖733所示。 圖圖733 全局變量、局部變量和私有變量的作用域示意圖全局變量、局部變量和私有變量的作用域示意圖變量的作用域變量的作用域2作用域變量的定義(1)全局變量格式:PUBLIC 功能:定義全局內(nèi)存變量(含數(shù)組)并賦予初值.F.。說明:1)全局變量要先定義后使用。2)在命令窗口中創(chuàng)建的內(nèi)存
14、變量(含數(shù)組)為全局變量。3)全局變量一旦建立就一直有效,即使程序運行結(jié)束也不會消失。只有執(zhí)行CLEAR MEMORY,RELEASE,QUIT等命令后全局變量才被釋放。(2)私有變量 在程序或過程中不經(jīng)PUBLIC和LOCAL說明而直接創(chuàng)建的變量為私有變量。私有變量也可以用PRIVATE語句定義。格式1:PRIVATE 格式2:PRIVATE ALL LIKE |EXCEPT 功能:在本模塊中定義私有變量,屏蔽上層的同名變量。說明:目的是使得本模塊中私有變量值的修改不會影響上層同名變量的值。 (3)局部變量 局部變量說明語句:LOCAL 說明: 1)局部變量要先定義后使用。 2)局部變量的作
15、用域僅限于建立它的本模塊。 3)由于還有一個條件查找命令LOCATE,命令動詞LOCAL不能縮寫為前4個字符。 4)在本模塊中屏蔽上層的同名變量。【例729】屏蔽內(nèi)存變量的實例。 程序內(nèi)容如下:* 主程序CLEARX=222&定義私有變量,作用域包括本模塊及下屬模塊Y=999&定義私有變量,作用域包括本模塊及下屬模塊DO P29&調(diào)用過程? 在主程序中:? X=,X&變量X的值沒有被下層模塊(過程29)修改,仍為222? Y=,Y&變量Y的值被下層模塊(過程29)修改,輸出Y=BBBRETURN &隔斷主程序與過程* 過程PROCEDURE P29 &過程說明語句PRIVATE X &屏蔽上層
16、模塊的私有變量X,使之在當(dāng)前模塊無效X=AAAY=BBB? 在子程序中:? X=,X&輸出本模塊中X的值,X=AAA? Y=,Y&輸出本模塊中Y的值,Y=BBBRETURN &子程序返回語句ENDPROC&過程結(jié)束語句程序運行結(jié)果如圖735所示。 圖圖735 例例729的程序運行結(jié)果的程序運行結(jié)果自定義函數(shù) 1VFP函數(shù)的分類 標(biāo)準(zhǔn)函數(shù)(VFP系統(tǒng)內(nèi)置的函數(shù))函數(shù) 外部自定義函數(shù)(獨立程序文件) 自定義函數(shù) 內(nèi)部自定義函數(shù) (在程序文件或過程文件中的函數(shù))自定義函數(shù)與過程相似,也分為外部自定義函數(shù)和內(nèi)部自定義函數(shù)。外部自定義函數(shù)是整個程序文件只包含一個自定義函數(shù)的定義語句;內(nèi)部自定義函數(shù)是將自
17、定義函數(shù)的定義語句寫在程序文件或過程文件中。2自定義函數(shù)的特點自定義函數(shù)的本質(zhì)是一段過程代碼,所以自定義函數(shù)與過程極相似,主要區(qū)別在于自定義函數(shù)用RETURN 語句,作為函數(shù)的返回值。 1外部自定義函數(shù)的定義命令格式: PARAMETERS RETURN 功能:定義一個函數(shù),以程序文件名作為函數(shù)名,以作為函數(shù)自變量,以作為函數(shù)返回值。外部自定義函數(shù)的形式如圖737所示。 圖圖737外部自定義函數(shù)外部自定義函數(shù)自定義函數(shù)的定義自定義函數(shù)的定義2內(nèi)部自定義函數(shù)的定義命令格式:FUNCTION PARAMETERS RETURN ENDFUNC功能:在程序文件或過程文件中定義一個自定義函數(shù),以作為函數(shù)名,以作為函數(shù)自變量,以作為函數(shù)返回值。說明:(1)若選用PARAMETERS ,則為有參函數(shù);否則為無參函數(shù)。(2)由于一個程序文件或過程文件中可能包含其他語句或多個自定義函數(shù),所以要用自定義函數(shù)起始句FUNCTION 指明自定義函數(shù)的名稱,用自定義函數(shù)終端句ENDFUNC界定自定義函數(shù)的結(jié)束。 程序文件或過程文件中的內(nèi)部自定義函數(shù)的形式如圖738所示。 圖圖738內(nèi)部自定義函數(shù)內(nèi)部自定義函數(shù) 自定義函數(shù)與系統(tǒng)函數(shù)的調(diào)用方法相同,即按以下格式調(diào)用。命令格式:()說明:(1)雖然自定義函數(shù)是一段程序,但它是函數(shù),不能用DO命令調(diào)用自定義函數(shù)。(2)調(diào)用無參數(shù)自定義函
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省攀枝花市西區(qū)2024-2025學(xué)年三年級數(shù)學(xué)第二學(xué)期期末監(jiān)測試題含解析
- 浙江紹興一中2024-2025學(xué)年高三下學(xué)期語文試題3月月考試題含解析
- 2025年度企業(yè)餐飲管理合同
- 產(chǎn)品品牌授權(quán)合同書
- 高項第合同爭議解決的國際視角
- 商業(yè)合作合同保密協(xié)議書范本
- 幼兒音樂游戲律動創(chuàng)編示例
- 建筑裝飾施工組織與管理2流水施工原理
- TPM設(shè)備管理理論
- 三年級英語下冊 Unit 3 What colour is this balloon第3課時教學(xué)設(shè)計 湘少版
- 2025年高考作文備考之十大熱點主題及寫作導(dǎo)引
- 2025年重慶中考押題道德與法治試卷(一)(含答案)
- 長城汽車2025人才測評答案
- 腫瘤的內(nèi)分泌治療護(hù)理
- 東北三省三校2025屆高三下學(xué)期第二次聯(lián)合模擬考試數(shù)學(xué)試題及答案
- 污水管道封堵施工方案
- 2025屆上海市浦東新區(qū)高三二模英語試卷(含答案)
- 【MOOC】航空燃?xì)鉁u輪發(fā)動機結(jié)構(gòu)設(shè)計-北京航空航天大學(xué) 中國大學(xué)慕課MOOC答案
- 職業(yè)衛(wèi)生評價考試計算題匯總
- JJF 1318-2011 影像測量儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- TCWAN 0027-2022 TCEEIA 584-2022 新能源汽車鋁合金電池托盤焊接制造規(guī)范
評論
0/150
提交評論