計算機(jī)二級VF培訓(xùn)中心課件:第10章_第1頁
計算機(jī)二級VF培訓(xùn)中心課件:第10章_第2頁
計算機(jī)二級VF培訓(xùn)中心課件:第10章_第3頁
計算機(jī)二級VF培訓(xùn)中心課件:第10章_第4頁
計算機(jī)二級VF培訓(xùn)中心課件:第10章_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第10章 Visual FoxPro程序設(shè)計基礎(chǔ),第10章 Visual FoxPro程序設(shè)計基礎(chǔ),知識要點: 1程序與程序文件的基本概念; 2簡單的輸入輸出命令; 3程序的三種基本結(jié)構(gòu); 4多模塊程序設(shè)計及變量的作用域。,10.1 程序文件的建立與執(zhí)行,10.1.1 程序的基本概念 程序 是能夠完成一定任務(wù)的命令的有序集合。 程序文件(命令文件) 存放程序的文本文件。(.PRG),建立程序文件的優(yōu)點: (1)運行程序文件,會自動執(zhí)行程序文件中的各條命令 (2)程序文件中的命令可以長期保存,并且可以多次運行,10.1 程序文件的建立與執(zhí)行,程序文件建立方法: 1、利用菜單:文件|新建|程序 2

2、、利用命令:MODIFY COMMAND ,程序文件執(zhí)行方法: 1、菜單方式:程序|運行 2、利用命令:DO ,別忘了保存CTRL+W,10.1.2 程序文件的建立與執(zhí)行,10.1 程序文件的建立與執(zhí)行,10.1 程序文件的建立與執(zhí)行,四種命令的功能: CANCEL:終止程序的執(zhí)行,清除所有的私有變量,返回到命令窗口; DO:調(diào)用執(zhí)行另一個程序; RETURN:結(jié)束程序,返回到調(diào)用它的上級程序繼續(xù)運行,若無上級程序則返回到命令窗口; QUIT:結(jié)束程序的執(zhí)行,并退出Visual FoxPro系統(tǒng),返回到操作系統(tǒng)。,10.1 程序文件的建立與執(zhí)行,10.1.3 簡單的輸入輸出命令 WAIT AC

3、CEPT INPUT,10.1 程序文件的建立與執(zhí)行,1.簡單的輸入輸出命令( WAIT ) 格式: WAIT “提示信息” TO WINDOW AT, TIMEOUT 功能: 顯示提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)時,程序繼續(xù)運行,10.1 程序文件的建立與執(zhí)行,簡單的輸入輸出命令( WAIT ),10.1 程序文件的建立與執(zhí)行,簡單的輸入輸出命令( WAIT ),(1)WAIT命令只接收單個字符,輸入字符時,不需要加定界符,系統(tǒng)將輸入的字符賦值給;若用戶是按回車鍵或者單擊鼠標(biāo)左鍵,系統(tǒng)將空串賦值給; (2)若省略,則顯示默認(rèn)的提示信息“按任意鍵繼續(xù)”;否則要加字符串定界符

4、; (3)通常,顯示在Visual FoxPro主窗口或當(dāng)前用戶自定義窗口中,如果指定了WINDOW子句,則在主窗口的右上角會出現(xiàn)一個WAIT提示窗口,用來顯示提示信息,也可以用AT短語指定窗口的顯示位置; (4)若選用NOWAIT短語,系統(tǒng)將不等待用戶按鍵,繼續(xù)向下執(zhí)行程序; (5)TIMEOUT子句用來設(shè)定等待的時間,以秒數(shù)為單位。超過此時間系統(tǒng)將不再等待用戶按鍵,自動往下執(zhí)行程序。,注 意,10.1 程序文件的建立與執(zhí)行,2.簡單的輸入輸出命令( ACCEPT ) 格式: accept “提示信息” to 功能: 顯示提示信息,等待用戶從鍵盤輸入字符串,并將該字符串存入內(nèi)存變量中,10.

5、1 程序文件的建立與執(zhí)行,簡單的輸入輸出命令( ACCEPT ),(1)ACCEPT命令只接收字符串,輸入字符串時,不需要加定界符; (2)可省略,否則要加字符串定界符; (3)可以不輸入內(nèi)容而直接按回車,系統(tǒng)會把空串賦給指定的; (4)此命令根據(jù)用戶需要既可以輸入到命令窗口中執(zhí)行,也可以編寫在程序中。,注 意,10.1 程序文件的建立與執(zhí)行,3.簡單的輸入輸出命令(INPUT) 格式: input “提示信息” to 功能: 顯示提示信息,等待用戶從鍵盤輸入數(shù)據(jù),并將輸入值存入內(nèi)存變量中,用戶可以輸入任何合法的表達(dá)式。,10.1 程序文件的建立與執(zhí)行,簡單的輸入輸出命令(INPUT),(1)

6、用戶從鍵盤輸入的數(shù)據(jù)可是各種類型的常量、變量或者表達(dá)式,但不能不輸入內(nèi)容而直接按回車鍵; (2)可省略,否則要加字符串定界符; (3)從鍵盤輸入各種類型數(shù)據(jù)時,需要加相應(yīng)的定界符; (4)此命令根據(jù)用戶需要既可以輸入到命令窗口中執(zhí)行,也可以編寫在程序中。,注 意,10.1 程序文件的建立與執(zhí)行,INPUT、ACCEPT和WAIT的區(qū)別 input:可接受各種類型數(shù)據(jù) accept:只接受字符串 wait:只接受單個字符,10.2 程序結(jié)構(gòu),10.2.1 順序結(jié)構(gòu) 10.2.2 選擇結(jié)構(gòu) 10.2.3 循環(huán)結(jié)構(gòu),10.2 程序結(jié)構(gòu),10.2.1 順序結(jié)構(gòu) 按命令在程序中出現(xiàn)的先后次序執(zhí)行。,10

7、.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu) 在程序執(zhí)行時,根據(jù)不同的條件,選擇執(zhí)行不同的程序語句執(zhí)行。,條件語句,分支語句,選 擇 結(jié) 構(gòu),單向條件語句,雙向條件語句,10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),1單向條件語句,語句格式: IF條件表達(dá)式 語句序列 ENDIF,10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),關(guān)閉或打開狀態(tài)信息,1單向條件語句,Eg1:求圓的面積 (半徑0),10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),2雙向條件語句,語句功能: 該語句首先計算條件表達(dá)式的值,當(dāng)條件表達(dá)式的值為真時,執(zhí)行語句序列1中的命令;否則,執(zhí)行語句序列2中的命令

8、;執(zhí)行完語句序列1或語句序列2后都將執(zhí)行ENDIF后面的第一條命令。,10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),2雙向條件語句,Eg2:求圓的面積 (半徑0),10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(條件語句),2雙向條件語句,Eg3:編寫密碼 校驗程序,設(shè)密 碼為“ABC”,10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu)(分支語句),根據(jù)多個條件表達(dá)式的值,選擇一個執(zhí)行 。,語句格式: DO CASE CASE條件表達(dá)式1 CASE條件表達(dá)式2 CASE條件表達(dá)式N OTHERWISE ENDCASE,10.2 程序結(jié)構(gòu),

9、10.2.2 選擇結(jié)構(gòu)(分支語句),Eg4:求分段函數(shù) 0 (x5) F(x)= 2x2-x (-1=x1) x (1=x5),10.2 程序結(jié)構(gòu),10.2.2 選擇結(jié)構(gòu),1)IF ENDIF和DO CASE ENDCASE 必須成對使用。 2)條件表達(dá)式可以是各種表達(dá)式或函數(shù)的組合,其值必須是邏輯值。 3)語句序列可以由一條或多條命令組成。 4)DO CASE ENDCASE 命令,每次最多只能執(zhí)行一個語句序列。在多個CASE項的條件表達(dá)式值為真時,只執(zhí)行第一個條 件表達(dá)式值為真的語句序列,然后執(zhí)行 ENDCASE的后面的第一條命令。,注 意,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu) 有一

10、部分程序被反復(fù)地執(zhí)行。,循 環(huán) 結(jié) 構(gòu),當(dāng)型循環(huán):do while enddo 計數(shù)循環(huán):for endfor 數(shù)據(jù)庫掃描:scan endscan,不知道循環(huán)次數(shù),己知循環(huán)次數(shù),處理表中數(shù)據(jù),10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(當(dāng)型循環(huán)) (1)不帶有LOOP和EXIT語句的當(dāng)型循環(huán),10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(當(dāng)型循環(huán)),i=1=100 s=s+i=0+1=1 i=1+1=2,i=2=100 s=s+i=1+2=3 i=2+1=3,i=3=100 s=s+i=3+3=6 i=3+1=4,i=101=100 .F.,i=100 s=s+i=s+100 i=100+1=

11、101,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(當(dāng)型循環(huán)),逐條輸出1982年出生的學(xué)生記錄,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(當(dāng)型循環(huán)) (2)帶有LOOP和EXIT語句的當(dāng)型循環(huán),LOOP語句:強(qiáng)行返回到循環(huán)開始語句。 EXIT語句:強(qiáng)行跳出循環(huán),接著執(zhí)行ENDDO后的語句,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(當(dāng)型循環(huán)),編寫程序,顯示“學(xué)生”表中的前8條出生在88年之前的學(xué)生記錄,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(計數(shù)循環(huán)),FOR - ENDFOR語句,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(計數(shù)循環(huán)),i=1=100 s=s+i=0+1=1 i=1

12、+1=2,i=2=100 s=s+i=s+2 i=2+1=3,i=100=100 s=s+i=s+100 i=100+1=101,i=101=100 .F.,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(計數(shù)循環(huán)),i的值是: A、7 2 B、6 1 C、8 3 D、7 4,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(數(shù)據(jù)庫掃描循環(huán)),SCAN ENDSCAN語句,10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(數(shù)據(jù)庫掃描循環(huán)),編寫程序,輸出1980年以后(包含1980年)出生的男同學(xué)的姓名、出生日期和專業(yè),10.2 程序結(jié)構(gòu),10.2.3 循環(huán)結(jié)構(gòu)(數(shù)據(jù)庫掃描循環(huán)),10.2 程序結(jié)構(gòu),10.2

13、.3 循環(huán)結(jié)構(gòu)(數(shù)據(jù)庫掃描循環(huán)),編寫程序,統(tǒng)計學(xué)生表中的男、女同學(xué)人數(shù)。,10.2 程序結(jié)構(gòu),思考題: 1.求 1+2+3+ +n的和不大于1000的n的最大值。 2.給學(xué)生成績表增加一個“狀態(tài)”字段,根據(jù)計算機(jī)的分?jǐn)?shù)填充“優(yōu)秀”、“良好”、“及格”和“不及格”字樣。,10.2 程序結(jié)構(gòu),3.讀程序,寫結(jié)果 假如輸入962 input 請輸入一個整數(shù): to x do while x0 ?x%10 x=int(x/10) enddo,10.3 模塊化程序設(shè)計,引例,輸出如下所示的信息。 * Hello World! *,10.3 模塊化程序設(shè)計,10.3.1過程文件的建立 1、過程的定義,P

14、ROCEDURE RETURN ENDPROC,PROCEDURE命令表示一個過程的開始,并為過程命名。 ENDPROC表示一個過程的結(jié)束,過程也可以以RETURN語句終止。 RETURN語句表示將控制返回到調(diào)用程序中調(diào)用命令的下一語句,并返回表達(dá)式的值,若RETURN命令不帶,則返回邏輯真.T.。,10.3 模塊化程序設(shè)計,10.3.1過程文件的建立 2、打開過程文件 3、關(guān)閉過程文件,SET PROCEDURE TOADDITIVE,SET PROCEDURE TO CLOSE PROCEDURE,10.3 模塊化程序設(shè)計,10.3.2 過程文件的調(diào)用 或 例10.21 有如下程序,說出此

15、程序的運行結(jié)果。 X=0 DO P1 ?X PROCEDURE P1&過程文件P1 X=1 RETURN ENDPROC 該程序運行的結(jié)果為: 1,DO WITH ,(),10.3 模塊化程序設(shè)計,帶參數(shù)的調(diào)用,格式1(程序見下方備注):,10.3 模塊化程序設(shè)計,帶參數(shù)的調(diào)用,格式2(程序見下方備注):,10.3 模塊化程序設(shè)計,10.3.3 過程調(diào)用中的參數(shù)傳遞 1、發(fā)送參數(shù)(即調(diào)用過程) 主程序調(diào)用子程序或過程時,在主程序中使用發(fā)送參數(shù)語句傳遞參數(shù)。 格式為:,格式1:DO | WITH 格式2:| (),10.3 模塊化程序設(shè)計,10.3.3過程調(diào)用中的參數(shù)傳遞 2、接收參數(shù) 在子程序

16、、過程或自定義函數(shù)中使用接收參數(shù)語句接收參數(shù)。 格式為: 對參數(shù)傳遞的說明如下: (1)PARAMETERS|LPARAMETERS必須是被調(diào)用程序的第一條語句; (2)PARAMETERS定義的形參變量是私有變量;LPARAMETERS定義的形參變量是局部變量; (3)實參可以是常量、變量和一般形式表達(dá)式,調(diào)用模塊程序時,把實參傳遞給對應(yīng)的形參;形參數(shù)目大于等于實參數(shù)目,多余的形參取.F.。,格式1:PARAMETERS 格式2:LPARAMETERS ,10.3 模塊化程序設(shè)計,10.3.3過程調(diào)用中的參數(shù)傳遞 3、參數(shù)傳遞方式,按值傳遞,形參變量值的改變不會影響實參變量的值,即新值不返回

17、;,當(dāng)形參變量的值改變時,實參變量值也隨之改變,即新值返回。,按地址傳遞(也稱按引用傳遞),10.3 模塊化程序設(shè)計,10.3.3過程調(diào)用中的參數(shù)傳遞,采用格式1調(diào)用模塊程序時,如果實參是常量或一般形式的表達(dá)式,則按值傳遞;如果實參是變量,這時傳遞的是變量的地址,即按地址傳遞。 采用格式2調(diào)用模塊程序時,默認(rèn)情況下是按值方式傳遞參數(shù)。如果實參是變量,可以通過SET UDFPARMS命令重新設(shè)置參數(shù)的傳遞方式。 格式為: SET UDFPARMS TO VALUE|REFERENCE TO VALUE:按值傳遞。 TO REFERENCE:按地址傳遞。 此命令不能改變用DOWITH格式調(diào)用過程時

18、的參數(shù)傳遞方式。 如果將實參用括號括住,則實參變成一般形式的表達(dá)式,這時強(qiáng)制參數(shù)傳遞以按值傳遞方式進(jìn)行。,10.3 模塊化程序設(shè)計,值傳遞與地址傳遞,100,100,x2,y2,100,x1,y1,2008年4月 下列程序段執(zhí)行以后,內(nèi)存變量X和Y的值是 Clear Store 3 to x Store 5 to y Plus(x),y) ?x,y Procedure plus Parameters a1,a2 a1=a1+a2 a2=a1+a2 Endproc 提示:該格式默認(rèn)情況為按值傳遞,C,10.3 模塊化程序設(shè)計,A)813B)313 C)35D)85,2009年9月 下列程序段執(zhí)行

19、時在屏幕上顯示的結(jié)果是 X1=20 X2=30 Set udfparms to value Do test with x1,x2 ?x1,x2 Procedure test Parameters a,b x=a a=b b=x Endproc,B,10.3 模塊化程序設(shè)計,A)3030B)3020 C)2020D)2030,10.3 模塊化程序設(shè)計,10.3.4 用戶自定義函數(shù) 函數(shù)定義的語法格式: FUNCTION PARAMETER RETURN 函數(shù)調(diào)用的語法格式: 函數(shù)名(),10.3 模塊化程序設(shè)計,例,計算階層 調(diào)用形式:?CF(5),10.4 變量的作用域,變量分類:,公共變量(public) 私有變量(private) 局部變量(local),先定義后使用。,在任何模塊中都可以使用,不用定義,直接使用,在本模塊和下級模塊中用,先定義后使用,在本模

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論