第5章 程序設(shè)計(jì)基礎(chǔ)_第1頁
第5章 程序設(shè)計(jì)基礎(chǔ)_第2頁
第5章 程序設(shè)計(jì)基礎(chǔ)_第3頁
第5章 程序設(shè)計(jì)基礎(chǔ)_第4頁
第5章 程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Page 1,第5章 程序設(shè)計(jì)基礎(chǔ),5.1 程序設(shè)計(jì) 5.2 程序的基本結(jié)構(gòu) 5.3 過程與自定義函數(shù),Page 2,5.1 程序設(shè)計(jì),5.1.1 程序與程序設(shè)計(jì)的概念 5.1.2 面向過程程序的建立與運(yùn)行 5.1.3 面向過程程序常用的語句與函數(shù),Page 3,5.1.1 程序與程序設(shè)計(jì)的概念,程序是能夠完成一定任務(wù)的命令(語句)的有序集合。 程序設(shè)計(jì)就是將一系列命令按照一定的控制結(jié)構(gòu)組織成程序的過程,也稱為編程。,Page 4,VFP程序舉例(例5.1): *功能說明:統(tǒng)計(jì)平均入學(xué)總分。 CLEAR WHERE 學(xué)號 LIKE 01% INTO ARRAY TJ2 ?所有學(xué)生的平均入學(xué)總分

2、:,TJ1(1) ?01學(xué)院學(xué)生的平均入學(xué)總分:,TJ2(1) RETURN,程序控制返回部分,5.1.1 程序與程序設(shè)計(jì)的概念,Page 5,5.1.2 面向過程程序的建立與運(yùn)行,兩種程序設(shè)計(jì)方法 面向過程方法:一種過程驅(qū)動(dòng)的編程方法,程序描述了完成整個(gè)任務(wù)的操作過程,程序流程完全由程序控制。 面向?qū)ο蠓椒ǎ阂环N基于對象、事件驅(qū)動(dòng)的編程方法。 面向過程的程序以“程序文件”類型存儲,文件擴(kuò)展名為PRG。,Page 6,5.1.2 面向過程程序的建立與運(yùn)行,1程序文件的建立 打開程序編輯窗口的常用方法: 使用項(xiàng)目管理器:打開項(xiàng)目管理器,在“代碼”選項(xiàng)卡中選定“程序”后單擊“新建” 從“文件”菜單

3、或常用工具欄選擇“新建” 使用命令: MODIFY COMMAND 保存程序文件的常用方法: 從“文件”菜單或常用工具欄選擇“保存”,Page 7,5.1.2 面向過程程序的建立與運(yùn)行,2.程序文件的修改 打開程序文件的常用方法: 使用項(xiàng)目管理器(若程序文件已建在某一項(xiàng)目中) 從“文件”菜單或常用工具欄選擇“打開” 使用命令:MODIFY COMMAND ,Page 8,3程序文件的運(yùn)行 常用方法: 從“程序”菜單或常用工具欄選擇“運(yùn)行” 使用項(xiàng)目管理器 使用命令: DO 注: 運(yùn)行中按ESC鍵可中斷運(yùn)行,5.1.2 面向過程程序的建立與運(yùn)行,Page 9,1環(huán)境設(shè)置語句:SET SET ON

4、|OFF 如 SET TALK ON|OFF 功能:控制是否使某些命令產(chǎn)生屏幕顯示 SET TO 如 SET DEFAULT TO 功能:設(shè)置默認(rèn)的工作目錄,5.1.3 面向過程程序常用的語句與函數(shù),Page 10,2清屏語句:CLEAR CLEAR 功能:清空屏幕或當(dāng)前窗口中顯示的內(nèi)容。,5.1.3 面向過程程序常用的語句與函數(shù),3簡單輸出語句:?、? ? 功能:計(jì)算表達(dá)式表中各表達(dá)式的值,從屏幕的下一行第一列開始顯示。若?后如果不跟任何表達(dá)式,則表示另起一行。 ? 功能:計(jì)算表達(dá)式表中各表達(dá)式的值,從屏幕的當(dāng)前光標(biāo)位置開始顯示,Page 11,4數(shù)據(jù)輸入語句:INPUT INPUT TO

5、功能:屏幕顯示提示信息,等待用戶從鍵盤上輸入數(shù)據(jù),用戶可以輸入任意合法的表達(dá)式。用戶輸入完畢并回車后,系統(tǒng)將表達(dá)式的值賦給指定的內(nèi)存變量。 注:內(nèi)存變量的類型為所輸入表達(dá)式的類型。,5.1.3 面向過程程序常用的語句與函數(shù),Page 12,5單字符輸入語句: WAIT WAIT TO WINDOWS 功能:屏幕或小窗口顯示提示信息,等待用戶從鍵盤按下任一鍵。系統(tǒng)將按下的字符賦給指定的內(nèi)存變量。 注:內(nèi)存變量的類型為字符型。,5.1.3 面向過程程序常用的語句與函數(shù),Page 13,例5.2 編寫程序文件TJ2.PRG,輸入學(xué)院代碼,要求統(tǒng)計(jì)該學(xué)院學(xué)生的平均入學(xué)總分。,*功能說明:統(tǒng)計(jì)指定學(xué)院學(xué)

6、生的平均入學(xué)總分。 CLEAR INPUT 請輸入學(xué)院代碼: TO DM SELECT AVG(入學(xué)總分) FROM STUDENT; WHERE LEFT(學(xué)號,2)=DM INTO ARRAY TJ ?該學(xué)院學(xué)生的平均入學(xué)總分:,TJ(1) WAIT 請看清結(jié)果后按任一意鍵返回 RETURN,5.1.3 面向過程程序常用的語句與函數(shù),請輸入學(xué)院代碼:01 該學(xué)院學(xué)生的平均入學(xué)總分: 562.40 請看清結(jié)果后按任一意鍵返回,Page 14,6.消息函數(shù) MESSAGEBOX( , ,) 其中,= + 例5.3 msg=MESSAGEBOX(刪除記錄?,1+48+256,請確認(rèn)) 注: ME

7、SSAGEBOX不能簡寫為MESS。,5.1.3 面向過程程序常用的語句與函數(shù),Page 15,5.2 程序的基本結(jié)構(gòu),5.2.1 順序控制 5.2.2 選擇控制 5.2.3 循環(huán)控制,三種基本結(jié)構(gòu): 順序結(jié)構(gòu):程序執(zhí)行時(shí),根據(jù)程序中語句的書寫順序依次執(zhí)行命令 分支結(jié)構(gòu):在程序執(zhí)行時(shí),根據(jù)不同的條件,選擇執(zhí)行不同的程序語句 循環(huán)結(jié)構(gòu):使某些語句或程序段重復(fù)執(zhí)行若干次,Page 16,5.2.1 順序控制,Page 17,5.2.2 選擇控制,1IF 語句 IF ELSE ENDIF,Page 18,5.2.2 選擇控制,ELSE子句可省,成為“單分支條件語句” IF ENDIF,Page 19

8、,IF語句使用說明: 1)IF與ENDIF必須配對使用。 2)可以是各種表達(dá)式或函數(shù)的組合,其值必須是邏輯值。 3)可以由一個(gè)或多個(gè)語句組成。 4)建議程序書寫時(shí)采用“鋸齒形書寫格式”,5.2.2 選擇控制,Page 20,例5.4 從鍵盤接收兩個(gè)數(shù)存入變量X、Y,使XY后輸出X、Y。,5.2.2 選擇控制,Page 21,交換X(歌曲)與Y(英語),X,Y,T,歌曲, T=X X=Y Y=T,5.2.2 選擇控制,英語,歌曲,英語,歌曲,Page 22,例5.4 從鍵盤接收兩個(gè)數(shù)存入變量X、Y,使XY后輸出X、Y。,INPUT X= TO X INPUT Y= TO Y IF XY FROM

9、 STUDENT,GRADE; WHERE STUDENT.學(xué)號=GRADE.學(xué)號; AND STUDENT.學(xué)號=XH WAIT 還要查詢嗎?(Y/N) TO YN IF UPPER(YN)= N EXIT &強(qiáng)行退出循環(huán) ENDIF ENDDO CLOSE DATABASE,5.2.3 循環(huán)控制,Page 46,6循環(huán)的嵌套,5.2.3 循環(huán)控制,例5.15 編制一個(gè)“九九乘法表” 。 分析:共輸出9行,每行有9個(gè)輸出項(xiàng),第I行第J個(gè)輸出項(xiàng)內(nèi)容為 I*J=,Page 47,*程序功能:輸出九九乘法表 CLEAR FOR I=1 TO 9 &外循環(huán)I控制輸出9行 ? FOR J=1 TO 9

10、 &內(nèi)循環(huán)J控制第I行輸出9項(xiàng) ?STR(I,1)+STR(J,1)+=+STR(I*J,2) &輸出I*J項(xiàng) ? ENDFOR ENDFOR RETURN,5.2.3 循環(huán)控制,Page 48,過程與自定義函數(shù)的意義: 在許多應(yīng)用程序中,有一些程序段需要反復(fù)執(zhí)行多次,這些程序段或者每次執(zhí)行時(shí)加工處理的對象不同,或者執(zhí)行的位置不同,VFP將需要重復(fù)執(zhí)行的語句序列及其參數(shù)定義成過程或自定義函數(shù),需要執(zhí)行時(shí)只需調(diào)用它即可。,5.3 過程與自定義函數(shù),Page 49,5.3 過程與自定義函數(shù),5.3.1 無參過程的定義與調(diào)用 5.3.2 有參過程的定義與調(diào)用 5.3.3 自定義函數(shù)的定義與調(diào)用 5.

11、3.4 變量的作用域,Page 50,PROCEDURE RETURN TO MASTER ENDPROC,5.3.1 無參過程的定義與調(diào)用,無參過程定義,無參過程調(diào)用-DO語句 DO ,Page 51,5.3.1 無參過程的定義與調(diào)用,說明: RETURN的作用是返回到上一級調(diào)用程序; RETURN TO MASTERD表示直接返回到第一級主程序。 一個(gè)過程可以有一個(gè)以上的RETURN語句;過程結(jié)束處的RETURN語句可缺省。 若過程結(jié)束處有一條RETURN語句,ENDPROC語句可缺省。,Page 52,5.3.1 無參過程的定義與調(diào)用,過程存放的位置有三種: 將過程存放在調(diào)用程序所在文件

12、中,但必須放在調(diào)用程序代碼之后,這種過程也稱為“內(nèi)部過程”。 將若干個(gè)過程集中存放在一個(gè)稱作“過程文件”的文件中。該文件只包含過程,文件擴(kuò)展名也是PRG。 單獨(dú)用一個(gè)程序文件存放,這種過程稱為“外部過程”,這時(shí)可缺省PROCEDURE和ENDPROC語句,并以程序文件名作為過程名。,Page 53,5.3.1 無參過程的定義與調(diào)用,調(diào)用過程文件中過程的常用格式: SET PROCEDURE TO DO RELEASE PROCEDURE | SET PROCEDURE TO | CLOSE PROCEDURE,打開指定過程文件,關(guān)閉指定過程文件,Page 54,5.3.1 無參過程的定義與調(diào)用

13、,*過程文件 PROP.PRG PROCEDURE P &求三角形面積 INPUT 三角形底長: TO SD INPUT 三角形高度: TO SH S=SD*SH/2 ? 三角形面積:,S ENDPROC PROCEDURE Y &求圓面積 INPUT 圓的半徑: TO YR S=3.14*YR*2 ? 圓的面積:,S ENDPROC,*主程序文件 SET PROCEDURE TO PROP DO WHILE .T. CLEAR ? 0 退出 ? 1求三角形面積 ? 2求圓的面積 INPUT 請輸入您的選擇: TO X DO CASE CASE X=0 EXIT CASE X=1 DO P C

14、ASE X=2 DO Y ENDCASE WAIT 按任意鍵繼續(xù)選擇菜單 ENDDO CLOSE PROCEDURE,例5.16,Page 55,PROCEDURE PARAMETERS|LPARAMETERS RETURN TO MASTER ENDPROC,5.3.2 有參過程的定義與調(diào)用,有參過程定義,有參過程調(diào)用-DO語句 DO WITH ,注:有參過程的存放也有三種位置。,Page 56,5.3.2 有參過程的定義與調(diào)用,參數(shù)傳遞與接收規(guī)則 : 要求實(shí)參和形參一一對應(yīng)。 形參形式上同內(nèi)存變量,而實(shí)參可以是常量、內(nèi)存變量或表達(dá)式。 當(dāng)實(shí)參是常量或表達(dá)式時(shí),實(shí)參對形參 “按值傳遞”。 效

15、果單向數(shù)據(jù)傳遞:實(shí)參的值傳遞給形參,而形參的值不會回傳給實(shí)參。 當(dāng)實(shí)參是內(nèi)存變量時(shí),實(shí)參對形參 “按引用傳遞”,又稱“按地址傳遞”。 效果-雙向數(shù)據(jù)傳遞:實(shí)參的值傳遞給形參,形參的值回傳給實(shí)參。,Page 57,5.3.2 有參過程的定義與調(diào)用,例5.17 按值傳遞和按引用傳遞示例。 CLEAR GG=Good morning. DO SUB WITH (GG) ? 第一次調(diào)用結(jié)果:,GG DO SUB WITH GG ? 第二次調(diào)用結(jié)果:,GG RETURN PROCEDURE SUB PARAMETERS G G=Good afternoon. ENDPROC,第一次調(diào)用結(jié)果:Good m

16、orning.,第一次調(diào)用結(jié)果:Good afternoon.,Page 58,FUNCTION PARAMETERS|LPARAMETERS RETURN ENDFUNC,5.3.3 自定義函數(shù)的定義與調(diào)用,有參過程定義,有參過程調(diào)用 (),注1:自定義函數(shù)的存放也有三種位置。,注2:調(diào)用有參自定義函數(shù)時(shí),默認(rèn)情況下均以按值傳遞方式傳遞參數(shù)。如果實(shí)參是變量,可以通過SET UDFPARMS語句重新設(shè)置參數(shù)傳遞方式。,Page 59,5.3. 3 自定義函數(shù)的定義與調(diào)用,*過程文件 FUNP.PRG FUNCTION PF &求三角形面積,以底長和高度為參數(shù) PARAMETER SD,SH S

17、=SD*SH/2 RETURN S ENDPROC FUNCTION YF &求圓面積,以半徑為參數(shù) PARAMETER YR S=3.14*YR*2 RETURN S ENDPROC,*主程序文件 SET PROCEDURE TO FUNP INPUT 三角形底長: TO SD INPUT 三角形高度: TO SH INPUT 圓的半徑: TO YR ? 三角形面積與圓面積之和為 ? PF(SD,SH)+YF(YR) &調(diào)用求三角形面積和圓面積的函數(shù) CLOSE PROCEDURE RETURN,例5.18,Page 60,5.3.4 變量的作用域,變量按作用域劃分為三種類型: 公共變量(全

18、局變量):作用于整個(gè)系統(tǒng)的所有程序 私有變量:作用于當(dāng)前程序模塊及其下屬模塊 局部變量 :作用于當(dāng)前程序模塊,Page 61,5.3.4 變量的作用域,1公共變量(公共變量) 在命令窗口創(chuàng)建的內(nèi)存變量 用PUBLIC語句聲明的內(nèi)存變量 PUBLIC語句格式: PUBLIC 作用域:整個(gè)系統(tǒng)的所有程序。 壽 命:從創(chuàng)建到用內(nèi)存變量清除命令(如RELEASE)清除或退出Visual FoxPro系統(tǒng)。,Page 62,5.3.4 變量的作用域,2私有變量 在一個(gè)程序模塊中未加任何說明而直接使用的內(nèi)存變量 用PARAMETERS語句聲明的形參變量 用PRIVATE語句聲明的內(nèi)存變量 PRIVATE語句格式: PRIVATE PRIVATE ALL LIKE/EXCEPT 作用域:當(dāng)前程序模塊及其下屬模塊。 壽 命:從創(chuàng)建到當(dāng)前程序模塊運(yùn)行結(jié)束 。,Page 63,5.3.4 變量的作用域,3局部變量 用LPARAMETERS語句聲明的形參變量 用LOCAL語句聲明的內(nèi)存變量 LOCAL語句格式: LOCAL 作用域:當(dāng)前程序模塊。 壽 命:從創(chuàng)建到當(dāng)前程序模塊運(yùn)行結(jié)束 。,Page 64,5.3.2 有參過程的定義與調(diào)用,例5.19 公共變量、私有變量、局部變量示例。 C

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論