版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
VFP程序命令文件的建立與執(zhí)行
5.1VFP——命令文件的建立和執(zhí)行5.1.1建立和編輯命令文件1.用MODIFYCOMMAND命令建立命令文件命令格式:MODIFYCOMMAND[<文件名>]命令功能:打開命令文件編輯窗口創(chuàng)建/編輯指定命令文件。說明:文件名的默認(rèn)擴(kuò)展名為.PRG。指定文件存在時,首先在磁盤上復(fù)制一同名、同內(nèi)容的.BAK編輯結(jié)束時,可用^End或^W結(jié)束命令并存盤。也可用Esc鍵作廢編輯并結(jié)束命令。
2.使用菜單操作建立命令文件操作過程:文件→新建→選擇“程序”單選按鈕→單擊“新建文件”,將打開一編輯窗口,供用戶輸入程序。
3.使用項(xiàng)目管理器建立命令文件有關(guān)項(xiàng)目管理器的詳細(xì)內(nèi)容參見第十三章。操作過程:首先打開項(xiàng)目管理器→選擇“代碼”選項(xiàng)卡→選擇“程序”選項(xiàng)→單擊“新建”按鈕,也將打開一編輯窗口供用戶輸入程序。
5.1.2執(zhí)行命令文件命令基本格式:DO<命令文件名>命令功能:首先打開指定的命令文件,然后從其第一條語句開始執(zhí)行。執(zhí)行完畢,自動關(guān)閉該命令文件。5.2VFP常用編程命令及函數(shù)1.SETTALK命令命令格式:SETTALKON/OFF命令功能:使命令結(jié)果顯示/不顯示。5.2VFP常用編程命令及函數(shù)1.系統(tǒng)初始化命令——CLEARALL命令格式:CLEARALL命令功能:關(guān)閉所有打開的庫文件、表文件及其相關(guān)文件——索引文件、備注文件等,清除所有內(nèi)存變量,清除所有用戶自定義下拉菜單、彈出式菜單和窗口,選擇1號工作區(qū)為當(dāng)前工作區(qū)。2.清屏命令——CLEAR命令格式:CLEAR命令功能:清除VFP主窗口或當(dāng)前用戶自定義窗口。
3.終止程序執(zhí)行語句——CANCEL命令格式:CANCEL命令功能:終止正在執(zhí)行的程序,把控制權(quán)返回給COMMAND窗口。4.程序注釋語句——NOTE/*命令格式1:NOTE<注釋字符>命令格式2:*<注釋字符>命令功能:標(biāo)識一個非執(zhí)行的注釋行。5.3VFP流程圖介紹
在編制程序尤其是編制復(fù)雜程序時,常用流程圖來進(jìn)行程序設(shè)計(jì)和介紹程序的結(jié)構(gòu)。流程圖是形象的描述程序設(shè)計(jì)思想的好方法,它的特點(diǎn)是比較直觀、清晰。
5.4順序執(zhí)行
5.4.1順序執(zhí)行程序順序執(zhí)行程序特點(diǎn):命令的執(zhí)行順序就是命令在程序中的排列順序,每條命令均被執(zhí)行一次。例1根據(jù)圓的半徑計(jì)算圓的面積。程序清單:ClearInput’請輸入半徑:’tor?‘圓的面積為:’,pi()*r*r5.5判斷分支
5.5.1條件轉(zhuǎn)向語句——IF…ENDIF
這是一種簡單的分支語句,語句格式如下:
IF<條件表達(dá)式><命令序列>
ENDIF<條件表達(dá)式>值為“真”時,順序執(zhí)行IF和ENDIF間的語句行序列,然后再執(zhí)行ENDIF后的語句;若其值為“假”時,則直接跳到ENDIF后面的語句繼續(xù)執(zhí)行。
IF和ENDIF必須成對出現(xiàn)。圖5?–?4條件轉(zhuǎn)向語句流程圖
例2讀程序清單,分析程序功能.ClearInput’請輸入一個隨機(jī)正整數(shù):’tonIfmod(n,7)=0?‘Pass!’Endif5.5.2條件選擇轉(zhuǎn)向語句——IF…ELSE…ENDIF
語句格式:IF?<條件表達(dá)式><命令序列1>
ELSE<命令序列2>
ENDIF執(zhí)行過程:計(jì)算條件表達(dá)式的值,若為真,則執(zhí)行<命令序列1>,然后跳過<命令序列2>,從ENDIF后面的語句繼續(xù)執(zhí)行;否則,執(zhí)行<命令序列2>,然后再執(zhí)行ENDIF后面的語句。
例3讀程序清單,分析程序功能.ClearInput’請輸入一個隨機(jī)正整數(shù):’tonIfmod(n,7)=0?‘Pass!’Else?‘Sorry!’Endif
5.5.3IF語句的嵌套例4為鼓勵存款,對定期存款時間少于1年的,利率為3%;等于或大于1年而少于3年的,利率為5%;等于或大于3年而少于5年的,利率為7%;5年以上的,利率為9%。程序清單如下:圖5?–?8例4的流程圖5.5.4情況語句——DOCASE…ENDCASE情況語句格式:
DOCASECASE?<條件表達(dá)式1><語句行序列1>
CASE?<條件表達(dá)式2><語句行序列2>…CASE?<條件表達(dá)式n><語句行序列n>[OTHERWISE<語句行序列>]
ENDCASE執(zhí)行過程:依次計(jì)算每一個CASE語句對應(yīng)的條件表達(dá)式,遇到第一個為真值者,則執(zhí)行該語句下面對應(yīng)的語句序列段,執(zhí)行完后,直接跳轉(zhuǎn)至ENDCASE后。如果所有的條件都不為真值,若無OTHERWISE子句,則不執(zhí)行任何語句序列,跳轉(zhuǎn)至ENDCASE后;有可選項(xiàng)OTHEWISE時,執(zhí)行OTHERWISE子句對應(yīng)的語句序列,再跳轉(zhuǎn)至ENDCASE后。如果有多個條件表達(dá)式為真值,也僅僅執(zhí)行第一個條件表達(dá)式為真值者對應(yīng)的語句序列。
DOCASE和ENDCASE必須成對出現(xiàn)。
DOCASE與第一個CASE之間的任何語句將不會被執(zhí)行。例5用情況語句重新編制例4,比較情況語句與條件轉(zhuǎn)向語句的用法。
5.6循環(huán)結(jié)構(gòu)
5.6.1三種循環(huán)語句1.DOWHILE循環(huán)(1)語句格式:
DOWHILE<條件表達(dá)式><循環(huán)體語句序列>
ENDDO
(2)執(zhí)行過程:①執(zhí)行到DOWHILE語句時,首先計(jì)算<條件表達(dá)式>的值,為真時,順序執(zhí)行循環(huán)體中的語句,即執(zhí)行循環(huán)體;為假時,跳到ENDDO的下面一句去執(zhí)行,即跳出循環(huán)體,循環(huán)結(jié)束。②執(zhí)行到循環(huán)結(jié)束語句ENDDO時,系統(tǒng)返回循環(huán)起始語句,再一次執(zhí)行DOWHILE語句。(3)說明:ENDDO和DOWHILE語句必須成對出現(xiàn);在循環(huán)體內(nèi)必須有使<條件表達(dá)式>逐漸為假的語句,否則,將進(jìn)入死循環(huán)。圖5–11DOWHILE循環(huán)語句流程圖例:將一張厚度0.1mm并充分大的紙對折多少次后厚度超過珠峰的高度?2.SCAN循環(huán)語句格式:
SCAN[<范圍>][FOR<條件>]
<循環(huán)體語句序列>
ENDSCAN
其中,SCAN為循環(huán)起始語句,ENDSCAN為循環(huán)結(jié)束語句。
語句功能:對當(dāng)前表指定范圍內(nèi)滿足條件的記錄依次執(zhí)行<循環(huán)體語句序列>所規(guī)定的操作。范圍省略值為ALL。例:使用循環(huán)在一行內(nèi)顯示女職工姓名。3.FOR循環(huán)(1)語句格式:FOR<循環(huán)變量名>=<數(shù)值表達(dá)式1>TO<數(shù)值表達(dá)式2>
[STEP<數(shù)值表達(dá)式3>]<循環(huán)體語句序列>ENDFOR/NEXT(2)執(zhí)行過程(3)說明:①在執(zhí)行循環(huán)體時,若對初值、終值和步長三個表達(dá)式中所含變量的值作了修改,不會影響循環(huán)初值、循環(huán)終值和步長。②循環(huán)初值、循環(huán)終值和步長值必須合理,否則,不執(zhí)行循環(huán)。③執(zhí)行循環(huán)體時,若修改了循環(huán)變量值,將會影響到循環(huán)執(zhí)行次數(shù)。例:計(jì)算N!=1*2*3*……*N例:計(jì)算∑I=1+2+3+……+N例:找出3位的水仙花數(shù),若一個3位正整數(shù)的各位數(shù)字的立方和等于該數(shù)本身,則稱這樣的數(shù)為水仙花數(shù)。算法:枚舉。把100-999之間的每一個數(shù)都檢驗(yàn)一遍,輸出滿足定義的即可。5.6.2對表文件記錄進(jìn)行操作時的循環(huán)控制方式1.對表文件記錄進(jìn)行逐條操作的循環(huán)控制方式格式1:SCAN?<語句行序列>
ENDSCAN格式2:DOWHILE.NOT.EOF(?)?<語句行序列>
SKIP?ENDDO例11用逐條記錄循環(huán)操作的方法,打印輸出表文件職工.DBF中每條記錄的姓名和工資。依題意,本例的流程圖如下。圖5–13例11的流程圖
CLEARSETPRINTERON?"姓名工資"OPENDATABASE雇員管理USE職工SCAN?姓名+""??工資ENDSCANUSECLOSEDATABASESETPRINTEROFF2.選擇表文件中符合條件的記錄進(jìn)行循環(huán)操作格式1:SCAN[<范圍>][FOR<條件>]?<語句行序列>
ENDSCAN
格式2:LOCATE[<范圍>][FOR<條件>]
DOWHILEFOUND(?)<語句行序列>
CONTINUE?ENDDO例12修改表文件職工.DBF中職工的工資,對工資不超過600元且不低于500元者加10元。依題意,畫流程圖如圖所示。
圖5–14例12的流程圖
采用SCAN語句,程序如下:CLEAROPENDATABASE雇員管理USE職工SCANFOR工資<=600AND工資>=500
REPLACE工資WITH工資+10ENDSCANUSECLOSEDATABASE若采用DOWHILE語句,則程序其它部分不變,僅把循環(huán)部分改為:LOCAFOR工資<=600AND工資>=500DOWHILEFOUND(?)REPL工資WITH工資+10
CONTENDDO5.6.3循環(huán)結(jié)構(gòu)的兩條專用語句1.退出循環(huán)語句——EXIT
前面介紹的循環(huán)語句格式中,一旦進(jìn)入循環(huán),循環(huán)次數(shù)實(shí)際上已經(jīng)確定。但在實(shí)際應(yīng)用中,常希望在某種情況下,強(qiáng)迫循環(huán)語句結(jié)束,去繼續(xù)執(zhí)行循環(huán)語句后的其它語句。EXIT語句可實(shí)現(xiàn)這一要求。語句格式:EXIT語句功能:立即退出循環(huán),轉(zhuǎn)去執(zhí)行循環(huán)終端語句之后的語句。
EXIT語句通常包含在IF語句或DOCASE語句中,當(dāng)某條件出現(xiàn)時,才被執(zhí)行。通常用于無限次循環(huán)的控制,例如:
DOWHILE.T.<語句行序列>
IF<條件表達(dá)式>
EXITENDIFENDDO
類似地,EXIT可出現(xiàn)在DOCASE的某語句序列中。例13打印某種報(bào)表,每打印完一張,便提示用戶是否還要打印,由用戶輸入的信息來進(jìn)行控制,試編程序?qū)崿F(xiàn)這種功能。依題意畫流程圖如圖所示。程序如下:圖5–15例13的流程圖CLEARALLDOWHILE.T.<打印報(bào)表程序段>
CLEARANSWER=MESSAGEBOX("繼續(xù)打印嗎?",36,"打印提示")
IFANSWER=7EXITENDIFENDDO
2.短路循環(huán)語句——LOOP語句格式:LOOP語句功能:強(qiáng)迫結(jié)束本次循環(huán)體的執(zhí)行,使流程返回循環(huán)開始語句。例14假設(shè)有一個表文件“工資.DBF”,其中包括有“姓名”、“實(shí)發(fā)工資”等字段,有20個記錄?,F(xiàn)在要求顯示出此表中前10個記錄的“姓名”和“實(shí)發(fā)工資”,但是,如果遇到“姓名”為“王林”的則不顯示。編程序?qū)崿F(xiàn)。依題意繪制流程圖如圖所示。
圖5–16例14的流程圖采用SCAN循環(huán)語句,程序如下:CLEAROPENDATABASE雇員管理USE工資SCANFORRECNO()<=10IF姓名="王林"
LOOPENDIF?姓名,實(shí)發(fā)工資ENDSCANUSECLOSEDATABASE采用DOWHILE循環(huán)語句的程序見P.98,自學(xué)。例15令計(jì)算機(jī)從零開始計(jì)數(shù),并將奇數(shù)累加求和。當(dāng)奇數(shù)累加和大于300時,結(jié)束計(jì)數(shù);否則,繼續(xù)計(jì)數(shù)。依題意編程如下:
X=0JSH=0DOWHILE.T.X=X+1DOCASECASEINT(X/2)=X/2LOOPCASEINT(X/2)<>X/2JSH=JSH+XIFJSH>300EXITENDIFENDCASEENDDO?"奇數(shù)和="??JSH5.6.4循環(huán)結(jié)構(gòu)應(yīng)用舉例1.循環(huán)語句與其它分支判斷語句的嵌套所謂嵌套,即為:在一個語句結(jié)構(gòu)中,包含了另一個完整的語句結(jié)構(gòu)。例16建立一個命令文件修改表文件職工.DBF中的工資,對于工資500元與600元之間的職工增加20元,而對于工資大于600元的職工增加100元。要求逐條記錄進(jìn)行操作。
OPENDATABASE雇員管理
USE職工
SCANDOCASECASE工資<600.AND.工資>=500
REPLACE工資WITH工資+20
CASE工資>600
REPLACE工資WITH工資+10
ENDCASEENDSCANUSECLOSEDATABASE在嵌套使用時,注意不要互相交叉,下面給出兩種錯誤的形式,如圖5–18所示。例17假設(shè)某中學(xué)有一個管理記錄本校學(xué)生成績的表文件XSCJ.DBF,它的結(jié)構(gòu)如下:學(xué)號(N,5),姓名(C,8),性別(C,2),年級(N,2),語文(N,5,2),數(shù)學(xué)(N,5,2),物理(N,5,2),化學(xué)(N,5,2),英語(N,5,2),主平均(N,5,2),總平均(N,5,2),升留判定(C,6)編寫程序:根據(jù)表中錄入的各門課成績,計(jì)算出每個學(xué)生的語文和數(shù)學(xué)兩門主課的平均成績與五門課的總平均成績,然后根據(jù)學(xué)生的成績來決定學(xué)生是升級、留級,還是補(bǔ)考。如果主課平均成績及格者,則升級;主課平均成績不及格,但總平均成績及格的,則同意補(bǔ)考;主課平均成績不及格且總平均成績也不及格者,則留級。最后分別打印出升級學(xué)生名單,留級學(xué)生名單和補(bǔ)考學(xué)生名單。依題意,本例的流程圖如圖5–19所示。圖5–19例17的流程圖
打開相關(guān)表文件
對每一條記錄,均執(zhí)行
主平均=(語文+數(shù)學(xué))/2總平均=(語文+數(shù)學(xué)+物理+化學(xué)+英語)/5
主平均<60主平均<60主平均>=60且總平均<60且總平均>=60升留判定=“升級”升留判定=“留級”升留判定=“補(bǔ)考”
打印升級記錄
打印留級記錄
打印補(bǔ)考記錄
USEXSCJSCANREPLACE主平均WITH(語文+數(shù)學(xué))/2
REPLACE總平均WITH;(語文+數(shù)學(xué)+物理+化學(xué)+英語)/5
DOCASECASE主平均>=60
REPLACE升留判定WITH"升級"CASE主平均<60.AND.總平均<60
REPLACE升留判定WITH"留級"
CASE主平均<60.AND.總平均>=60
REPLACE升留判定WITH"補(bǔ)考"ENDCASEENDSCAN
LISTFOR升留判定="升級"TOPRINTLISTFOR升留判定="留級"TOPRINTLISTFOR升留判定="補(bǔ)考"TOPRINTUSE2.多重循環(huán)多重循環(huán)即循環(huán)的嵌套,在一個循環(huán)的循環(huán)體中,包含有另一個循環(huán)。我們稱外層循環(huán)為外循環(huán),被包含的循環(huán)稱為內(nèi)循環(huán)。以DOWHILE為例,多重循環(huán)的一般格式如圖5–20所示。例18編制一張九九乘法表,要求格式如下:*1234567891
12243
3694
4812165
5101520256
612182430367
71421283542498
8162432404856649
91827364554637281
CLEAR?“*"FORA=1TO9??AENDFOR?FORA=1TO9?AB=1DOWHILEB<=AP=A*B??PB=B+1ENDDO?ENDFORCLEAR?“*"FORA=1TO9??AENDFOR?FORA=1TO9?AFORB=1TOAP=A*B??PENDFOR?ENDFOR例:找出100以內(nèi)的素?cái)?shù)-只能被1和自身整除的正整數(shù)。分析:枚舉法。檢查2-100之間的每一個數(shù)(外循環(huán)),對每一個數(shù)用2~N-1去除(內(nèi)循環(huán)),均不能被整除的數(shù)就是要找的素?cái)?shù)。
例:顯示矩陣123456789分析:外循環(huán)變量I用于表示行號內(nèi)循環(huán)變量J用于表示列號任一數(shù)據(jù)可表示為:(I-1)*3+J又例:生成一個4行4列的數(shù)組存儲兩位的隨機(jī)數(shù)整數(shù)并顯示該數(shù)組值。
例:百元買百雞問題。假設(shè)小雞每只5角,公雞每只2元,母雞每只3元,若要用100元買到100只雞,共有多少種方案。(枚舉法解多解方程問題)設(shè)小雞,公雞,母雞各為x,y,z只,則據(jù)題意可列出方程:x+y+z=1000.5x+2y+3z=100算法:令x,y,z分別從0變化到100,檢驗(yàn)每一種取值,輸出滿足上述條件的組合。進(jìn)一步簡化:z最大只能取33,y最大只能取50,當(dāng)y,z取定后x只能為100-y-z。
例:編寫程序計(jì)算組合數(shù)=,其中n!=1×2×……×n。CLEARCLEARINPUT"
請輸入N:"TONINPUT"
請輸入N:"TONINPUT"
請輸入M:"TOMINPUT"
請輸入M:"TOMC1=1STORE1TOC1,C2,C3FORI=1TONDOFACWITHN,C1C1=C1*IDOFACWITHM,C2ENDFOR計(jì)算N!
DOFACWITHN-M,C3C2=1?"組合數(shù):",C1/C2/C3FORI=1TOMSETTALKONC2=C2*IENDFOR計(jì)算M!PROCEDUREFACC3=1PARAMETERSX,YFORI=1TON-MFORI=1TOXC3=C3*IY=Y*IENDFOR計(jì)算(N-M)!ENDFOR?"組合數(shù)=",C1/C2/C3RETURN學(xué)生成績管理系統(tǒng)5.7過程與用戶自定義函數(shù)5.7.1過程1.創(chuàng)建過程過程是為完成某個操作而編寫的程序段。過程定義的語法格式如下:
PROCEDURE<過程名>[PARAMETERS<虛參數(shù)表>]<命令語句序列>[RETURN[TOMASTER]][ENDPROC]RETURN稱返回語句格式一:RETURN格式二:RETURNTOMASTER格式二在過程嵌套調(diào)用時使用,表示返回到最高級調(diào)用者;格式一為返回上級調(diào)用過程,即當(dāng)程序執(zhí)行該語句時,控制返回到其上級程序,按程序流程從調(diào)用該過程命令的下一條命令處繼續(xù)執(zhí)行。<過程名>最多可使用254個字符。過程的存放位置:調(diào)用程序之后或過程文件中。2.調(diào)用過程1)常用格式:DO<過程名>[WITH<實(shí)參數(shù)表>]這個語句出現(xiàn)在要調(diào)用某過程的主程序中。當(dāng)主程序執(zhí)行到該語句時,立即轉(zhuǎn)去執(zhí)行指定過程中的命令語句塊;當(dāng)在過程中遇到RETURN語句或遇到ENDPROC語句時,又轉(zhuǎn)回主程序,按程序流程執(zhí)行DO命令的下一條語句。2)其它格式
VFP還提供了另外兩種調(diào)用過程的方法:①
命令格式:=<過程名>()②
命令格式:<過程名>()
3.過程調(diào)用的嵌套主程序調(diào)用一個過程,這個過程又可以調(diào)用第二個過程,第二個過程又可以調(diào)用第三個過程,在系統(tǒng)允許的嵌套范圍內(nèi)這樣一個一個地調(diào)用下去,這種調(diào)用就稱為過程的嵌套。如圖所示?!狣O<過程名1>————————DO<過程名2>——RETURN
————DO<過程名3>——RETURN————————RETURN圖5–23過程的嵌套1————DO<過程名1>————————DO<過程名2>——RETURN
————DO<過程名3>——RETURN————————RETURN過程的嵌套————DO<過程名1>————————DO<過程名2>——RETURN
————DO<過程名3>——RETURN
——————RETURNTOMASTER
5.7.2用戶自定義函數(shù)用戶根據(jù)具體問題需要自己定義的函數(shù),稱為用戶自定義函數(shù)。1.創(chuàng)建自定義函數(shù)語句格式:
FUNCTION<用戶自定義函數(shù)名>[PARAMETERS<變量名表>]…&&命令語句序列[RETURN[<表達(dá)式>]]
ENDFUNC說明:存放位置:調(diào)用程序段之后或過程文件中。<表達(dá)式>用于向調(diào)用程序返回函數(shù)值。
2.調(diào)用自定義函數(shù)調(diào)用格式:<自定義函數(shù)名>([<表達(dá)式表>])執(zhí)行過程和參數(shù)的傳遞過程與過程調(diào)用語句相同。例創(chuàng)建一自定義函數(shù)MYFUN用于計(jì)算N!,再編寫主程序來調(diào)用該函數(shù)計(jì)算組合數(shù)。自定義函數(shù)“Myfun”的內(nèi)容如下:
FUNCTIONMyfunPARAMETERSNS=1I=1FORI=1TONS=S*IENDFORRETURNSENDFUN主程序的內(nèi)容為:CLEARINPUT"
請輸入N:"TONINPUT"
請輸入M:"TOMA=Myfun(N)/Myfun(M)/Myfun(N-M)?"組合數(shù)=",A5.7.3過程文件1.建立過程文件在設(shè)計(jì)過程時也可以把它們保存在單獨(dú)的程序文件中,我們把這種程序文件稱為過程文件。在一個過程文件中,可以包含某主程序所調(diào)用的全部過程。打開一個過程文件就打開了它所包含的所有過程。采用這種方式,既可以使主程序代碼顯得簡練,也使程序結(jié)構(gòu)更加緊湊。過程文件的建立方法與命令文件一樣,使用MODIFYCOMMAND命令打開代碼編輯窗口,在其中定義多個過程或函數(shù)。其默認(rèn)的擴(kuò)展名為.PRG。P.106例20。2.使用過程文件調(diào)用過程文件中的過程,應(yīng)首先打開該過程文件。命令格式:SETPROCEDURETO<過程文件名>3.關(guān)閉過程文件(1)用SETPROCEDURETO<過程文件名>打開一個過程文件時,原已在內(nèi)存中打開的過程文件即被關(guān)閉。即,內(nèi)存中最多只能存在一個過程文件。(2)在主程序末尾應(yīng)關(guān)閉過程文件。
命令1:CLOSEPROCEDURE
命令2:SETPROCEDURETO5.7.4設(shè)置內(nèi)存變量屬性內(nèi)存變量可以具有兩種屬性:全局性和局部性(本地性)。內(nèi)存變量的屬性表明了內(nèi)存變量的作用范圍。1.內(nèi)存變量的局部性在程序中所定義的內(nèi)存變量,如果未加說明將具有局部性,其特點(diǎn)為:(1)如果未加特別說明,則在定義它的程序執(zhí)行完后,將被系統(tǒng)清除。(2)如果定義它的程序還要調(diào)用其它過程,那么它還可以在被調(diào)用的過程中使用。(3)在被調(diào)用的過程或函數(shù)執(zhí)行當(dāng)中,如果仍未做特別說明而改變了該內(nèi)存變量的值,則在從過程或函數(shù)返回主程序時,該變量仍然保留它在過程或函數(shù)中被改變了的值,主程序在此基礎(chǔ)上可繼續(xù)使用。從內(nèi)存變量的固有性質(zhì)可知,在有過程嵌套的情況下,較高一級的程序中生成的變量可以供較低一級使用,而反之則不可,這就是內(nèi)存變量的局部性。例22由鍵盤輸入一個梯形的上底、下底和高的值,在主程序中定義它們,然后在函數(shù)中求這個梯形的面積,分別看看這些變量在主程序與函數(shù)中的情況。P.108,自學(xué)。
2.設(shè)置全局性內(nèi)存變量語句——PUBLIC
在程序設(shè)置中,對有些函數(shù)中定義的內(nèi)存變量,我們希望在主程序中仍能使用,或者希望它在整個的程序中均能使用,這時,應(yīng)該使用全局性的內(nèi)存變量。全局性內(nèi)存變量定義格式如下:命令格式:PUBLIC<內(nèi)存變量名/數(shù)組說明符清單>命令功能:定義指定的內(nèi)存變量或數(shù)組具有全局性。全局性內(nèi)存變量的性質(zhì):(1)用PUBLIC語句聲明過的內(nèi)存變量可以在整個的程序以及各過程或函數(shù)中使用。在任何過程或函數(shù)中改變了該變量的值,當(dāng)該變量進(jìn)入到其它過程或函數(shù)時,仍然保留該改變了的變量值。(2)當(dāng)整個程序結(jié)束后,用PUBLIC語句聲明過的內(nèi)存變量依然存在,若要清除它們,必須借助于RELEASE命令。在VFP命令窗口下建立的內(nèi)存變量都是全局性內(nèi)存變量。無須用PUBLIC說明。在程序中,內(nèi)存變量用PUBLIC命令說明為全局性變量之后,變量的初值為邏輯假(.F.)。
例23見P.110。3.隱藏內(nèi)存變量語句——PRIVATE命令格式:PRIVATE<內(nèi)存變量名清單>/<ALL[LIKE/EXCEPT<通配符>]>命令功能:隱藏指定內(nèi)存變量的已有定義。說明:后一選項(xiàng)可以有以下三種形式:(1)ALL:將所有的內(nèi)存變量均隱藏。(2)ALLLIKE<通配符>:內(nèi)存中所有變量名與通配符相匹配的內(nèi)存變量均隱蔽。(3)ALLEXCEPT<通配符>:內(nèi)存中除了
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025海南大學(xué)儋州校區(qū)醫(yī)院招聘高層次人才2人考試筆試模擬試題及答案解析
- 2025山東齊魯師范學(xué)院招聘17人考試筆試模擬試題及答案解析
- 2026年甘肅建筑職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案詳解1套
- 2026年湖南理工職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案詳解
- 2026年成都工貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫及答案詳解1套
- 2026年延邊職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及參考答案詳解
- 2025年下半年貴州遵義市市直事業(yè)單位選調(diào)56人筆試考試備考題庫及答案解析
- 2026年上饒職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫及完整答案詳解1套
- 2026雄安科技產(chǎn)業(yè)園開發(fā)管理有限公司校園招聘12人筆試考試備考題庫及答案解析
- 2025溫州市甌??萍纪顿Y有限公司面向社會公開招聘工作人員8人筆試考試備考題庫及答案解析
- 2025年全國防汛抗旱知識競賽培訓(xùn)試題附答案
- 2025年10月自考00420物理工試題及答案含評分參考
- (2025)交管12123駕照學(xué)法減分題庫附含答案
- 中層競聘面試必-備技能與策略實(shí)戰(zhàn)模擬與案例分析
- 科技信息檢索與論文寫作作業(yè)
- 施工現(xiàn)場防火措施技術(shù)方案
- 2025年高職物理(電磁學(xué)基礎(chǔ))試題及答案
- 服裝打版制作合同范本
- 技術(shù)部門項(xiàng)目交付驗(yàn)收流程與標(biāo)準(zhǔn)
- 林場管護(hù)知識培訓(xùn)課件
- 2025年江蘇事業(yè)單位筆試真題及答案(完整版)
評論
0/150
提交評論