數(shù)據(jù)庫(kù)系統(tǒng)與Visual-FoxPro第四章課件_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與Visual-FoxPro第四章課件_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與Visual-FoxPro第四章課件_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與Visual-FoxPro第四章課件_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)與Visual-FoxPro第四章課件_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章

程序設(shè)計(jì)基礎(chǔ)

7/28/20231第四章4.1程序的建立、修改和運(yùn)行

一、程序文件的建立與修改

1.方法一:用命令方式命令格式:MODIFYCOMMAND<文件名>功能:打開(kāi)文本編輯窗口,用來(lái)建立或修改程序文件。2.方法二:用菜單方式7/28/20232第四章二、程序的運(yùn)行

1.方法一:用命令方式命令格式:DO<文件名>功能:執(zhí)行由<文件名>表示的程序。2.方法二:用菜單方式如要運(yùn)行的程序沒(méi)有打開(kāi),可單擊主窗口中的“程序”菜單下的“運(yùn)行”命令,彈出運(yùn)行對(duì)話框,選擇要運(yùn)行的程序,單擊“運(yùn)行”按鈕。7/28/20233第四章4.2結(jié)構(gòu)化程序設(shè)計(jì)

4.2.1程序文件中的常用命令一、程序結(jié)尾的專用命令1.RETURN命令格式:RETURN[<表達(dá)式>][TOMASTER]功能:程序、過(guò)程或函數(shù)的末尾可放一條RETURN命令,它能使程序執(zhí)行結(jié)束,并返回到調(diào)用它的上級(jí)程序繼續(xù)執(zhí)行,若無(wú)上級(jí)程序則返回到命令窗口。說(shuō)明:表達(dá)式指定返回調(diào)用程序的表達(dá)式;TOMASTER將返回最高層次的調(diào)用程序。7/28/20234第四章2.CANCEL命令格式:CANCEL功能:CANCEL能使程序運(yùn)行終止,清除程序的私有變量,并返回到命令窗口。3.QUIT命令格式:QUIT功能:該命令與文件菜單的退出命令功能相同,使系統(tǒng)正常退出VisualFoxPro6.0,返回到Windows。7/28/20235第四章二、注釋命令格式1:NOTE|*<注釋字符串>格式2:&&<注釋字符串>說(shuō)明:注釋命令不做任何操作,只是注釋標(biāo)記,用于說(shuō)明程序或命令的功能。NOTE或*用于整行注釋,它必須寫(xiě)在每一個(gè)注釋行的開(kāi)頭;而&&用于注釋一行的部分內(nèi)容,它可以寫(xiě)在行中(命令的尾部)。7/28/20236第四章三、程序中兩個(gè)常用命令1.清屏命令格式:CLEAR功能:清除屏幕上的顯示內(nèi)容。一般用于程序開(kāi)頭。2.SETTALKON|OFF功能:用于設(shè)置一些非輸出語(yǔ)句(如APPEND、SORT、GO等)是否顯示命令的執(zhí)行結(jié)果。ON為允許顯示,OFF為不允許顯示。一般在程序開(kāi)始設(shè)置為OFF狀態(tài)。7/28/20237第四章四、輸入輸出專用命令1.字符接收命令格式:ACCEPT[<提示信息>]TO<內(nèi)存變量名>功能:將從鍵盤(pán)上接收的字符串存入指定的內(nèi)存變量中。說(shuō)明:執(zhí)行此語(yǔ)句時(shí),先在屏幕上顯示<提示信息>,光標(biāo)緊跟其后,然后暫停程序運(yùn)行,等待用戶從鍵盤(pán)上輸入信息。例:ACCEPT“請(qǐng)輸入姓名:”TOXM7/28/20238第四章格式:INPUT[<提示信息>]TO<內(nèi)存變量名>功能:用于接收從鍵盤(pán)上輸入的表達(dá)式,并將計(jì)算結(jié)果存入指定的內(nèi)存變量中。說(shuō)明:INPUT語(yǔ)句與ACCEPT語(yǔ)句的執(zhí)行過(guò)程相同,功能相似。INPUT語(yǔ)句與ACCEPT語(yǔ)句的區(qū)別是:ACCEPT命令只能接收字符串,而INPUT語(yǔ)句可以接收任意類型的數(shù)據(jù);如果輸入的是字符串,ACCEPT語(yǔ)句在接受數(shù)據(jù)時(shí),不用使用字符型定界符;而INPUT接受字符型數(shù)據(jù)時(shí),必須用定界符括起來(lái)。7/28/20239第四章3.輸入一個(gè)字符語(yǔ)句格式:WAIT[<信息文本>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT<數(shù)值表達(dá)式>]功能:暫停程序的運(yùn)行,直到用戶輸入一個(gè)字符。也可只用于輸出一條提示信息。例:WAIT“請(qǐng)檢查輸人內(nèi)容!”WINDOW7/28/202310第四章(二)定位輸入輸出命令格式:@<行,列>[SAY<表達(dá)式1>][GET<變量名>][DEFAULT<表達(dá)式2>]功能:在屏幕的指定行列輸出SAY子句的表達(dá)式值,并可修改GET子句的變量值。說(shuō)明:(1)<行,列>表示數(shù)據(jù)在窗口中顯示的位置。(2)SAY子句用來(lái)輸出數(shù)據(jù),GET子句用來(lái)輸入及編輯數(shù)據(jù)。7/28/202311第四章(3)GET子句中的變量必須具有初值,或用DEFAULT子句的<表達(dá)式2>指定初值。(4)GET子句的變量必須用READ命令來(lái)激活。例:@3,10SAY姓名@4,10SAY“成績(jī):”GETCJDEFAULT0READ7/28/202312第四章4.2.2程序的控制結(jié)構(gòu)

1.順序結(jié)構(gòu)在程序執(zhí)行時(shí),按程序中命令的書(shū)寫(xiě)順序依次執(zhí)行。2.分支結(jié)構(gòu)能根據(jù)指定條件的不同當(dāng)前值,在兩條或多條程序路徑中選擇一條執(zhí)行。3.循環(huán)結(jié)構(gòu)能使循環(huán)體中的語(yǔ)句(或命令)序列重復(fù)執(zhí)行若干次。4.過(guò)程結(jié)構(gòu)

7/28/202313第四章4.2.3順序結(jié)構(gòu)

例4-1:從鍵盤(pán)隨機(jī)輸入某個(gè)表的文件名,要求打開(kāi)并顯示此表的內(nèi)容。

CLEARSETTALKOFFACCEPT“請(qǐng)輸入表文件名”TOFILENAMEUSE(FILENAME)

LISTUSE7/28/202314第四章例:圓的面積計(jì)算程序?yàn)镾ETTALKOFFCLEARINPUT“請(qǐng)輸入圓半徑:”TORS=3.1416*R*R?“圓面積=”,S上述3條命令的先后次序不能顛倒:只有執(zhí)行INPUT后才能計(jì)算S,隨后才能輸出S,否則會(huì)因變量找不到而無(wú)法繼續(xù)下去。7/28/202315第四章4.2.4分支結(jié)構(gòu)

一、簡(jiǎn)單的條件語(yǔ)句語(yǔ)句格式:

IF<邏輯表達(dá)式><語(yǔ)句序列>

ENDIF

功能:首先計(jì)算<邏輯表達(dá)式>的值,若其值為真,對(duì)IF與ENDIF之間的語(yǔ)句順序執(zhí)行,然后執(zhí)行ENDIF后面的語(yǔ)句;若其值為假,直接執(zhí)行ENDIF后面的語(yǔ)句。7/28/202316第四章例4-3:將商品銷(xiāo)售表.DBF中第一個(gè)單價(jià)在2500元以上的商品價(jià)格降低5%。

USE商品銷(xiāo)售表

LOCATEFOR單價(jià)>2500

IFFOUND()DISPLAY商品編號(hào),單價(jià)

REPLACE單價(jià)WITH單價(jià)*0.95

DISPLAY商品編號(hào),單價(jià)

ENDIFUSERETURN7/28/202317第四章二、帶ELSE的條件語(yǔ)句語(yǔ)句格式:

IF<邏輯表達(dá)式><語(yǔ)句序列l(wèi)>ELSE<語(yǔ)句序列2>

ENDIF

功能:若<邏輯表達(dá)式>值為真,先執(zhí)行<語(yǔ)句序列1>,然后再執(zhí)行ENDIF后面的語(yǔ)句;若其值為假,先執(zhí)行<語(yǔ)句序列2>,然后再執(zhí)行ENDIF后面的語(yǔ)句。7/28/202318第四章例4-4:鐵路托運(yùn)行李,假設(shè)每張車(chē)票可按每千克0.5元托運(yùn)50千克以內(nèi)的行李,如果超過(guò)50千克時(shí),超過(guò)部分每千克加價(jià)0.3元。計(jì)算公式和程序如下:

0.5*W(W<=50,W為行李重量)

X=0.5*50+0.8*(W-50)(W>50)

7/28/202319第四章

SETTALKOFFINPUT“請(qǐng)輸入行李的重量:”TOWIFW<=50X=0.5*WELSEX=0.5*50+0.8*(W-50)ENDIF?“行李重量為”+STR(W,6,2)+“千克,運(yùn)費(fèi)為”+STR(X,6,2)+“元”CANCEL7/28/202320第四章語(yǔ)句格式:IF<條件表達(dá)式1><語(yǔ)句序列1>

ELSEIF<條件表達(dá)式2><語(yǔ)句序列2>

ELSE<語(yǔ)句序列3>

ENDIFENDIF7/28/202321第四章例4-5:上例托運(yùn)行李的計(jì)算公式改為:

0.5*W(W<=50)X=0.5*50+0.8*(W-50)(100>=W>50)0.5*50+0.8*50+1.0*(W-100)(W>100)7/28/202322第四章STETALKOFFINPUT“輸入行李重量”TOWIFW<=50X=0.5*WELSEIFW<=100X=0.5*50+0.8*(W-50)ELSEX=0.5*50+0.8*50+1.0*(W-100)ENDIFENDIF?“行李運(yùn)費(fèi)為:”,XCANCEL

7/28/202323第四章三、多分支語(yǔ)句

DOCASECASE<邏輯表達(dá)式1><語(yǔ)句序列l(wèi)>CSAE<邏輯表達(dá)式2><語(yǔ)句序列2>…………

CASE<邏輯表達(dá)式n><語(yǔ)句序列n>[OTHERWISE<語(yǔ)句序列n+l>]ENDCASE7/28/202324第四章功能:執(zhí)行多分支語(yǔ)句時(shí),系統(tǒng)將依次判斷邏輯表達(dá)式值是否為真,若某個(gè)邏輯表達(dá)式值為真,則執(zhí)行該CASE段的語(yǔ)句序列,然后執(zhí)行ENDCASE后面的語(yǔ)句。在各邏輯表達(dá)式值均為假的情況下,若有OTHERWISE子句,就執(zhí)行<語(yǔ)句序列n+1>,然后結(jié)束多分支語(yǔ)句,否則直接結(jié)束多分支語(yǔ)句。7/28/202325第四章我們用DOCASE語(yǔ)句來(lái)實(shí)現(xiàn)例4-5的計(jì)算,只要將IF語(yǔ)句的嵌套部分改為:

DOCASECASEW<=50X=0.5*WCASEW<=100.AND.W>50X=0.5*50+0.8*(W-50)CASEW>100X=0.5*50+0.8*50+1.0*(W-100)ENDCASE7/28/202326第四章例4-6:顯示當(dāng)前季節(jié)程序CLEARYue=MONTH(DATE())DOCASECASEINLIST(yue,3,4,5)JJ=“春”

CASEINLIST(yue,6,7,8)JJ=“夏”

CASEINLIST(yue,9,10,11)JJ=“秋”

CASEINLIST(yue,12,1,2)JJ=“冬”

ENDCASEWAITJJWINDOW7/28/202327第四章在構(gòu)成分支結(jié)構(gòu)時(shí)需注意:(1)條件語(yǔ)句中的IF和ENDIF必須配對(duì)出現(xiàn);同樣,多分支語(yǔ)句中的DOCASE和ENDCASE也須配對(duì)出現(xiàn)。(2)為使程序清晰易讀,對(duì)分支、循環(huán)等結(jié)構(gòu)應(yīng)使用縮格書(shū)寫(xiě)方式,見(jiàn)上述例。(3)分支、循環(huán)的每種語(yǔ)句都不允許在一個(gè)命令行中輸入完,必須按本書(shū)所示語(yǔ)句格式一行一個(gè)回車(chē)分行鍵人。由此可見(jiàn),這些語(yǔ)句不能用于命令窗口中。7/28/202328第四章4.2.4循環(huán)結(jié)構(gòu)

一、條件循環(huán)語(yǔ)句格式:

DOWHILE<邏輯表達(dá)式><語(yǔ)句序列>

ENDDO功能:若DOWHILE子句的循環(huán)條件為假循環(huán)就結(jié)束,執(zhí)行ENDDO子句后面的語(yǔ)句;條件為真則執(zhí)行循環(huán)體,一旦遇到ENDDO就自動(dòng)返回到DOWHILE重新判斷循環(huán)條件是否成立,以決定是否繼續(xù)循環(huán)。7/28/202329第四章說(shuō)明:1.語(yǔ)句格式中的<邏輯表達(dá)式>稱為循環(huán)條件,<語(yǔ)句序列>稱為循環(huán)體,循環(huán)體可以是一個(gè)語(yǔ)句或一組語(yǔ)句。2.ENDDO語(yǔ)句是循環(huán)終止語(yǔ)句,表示循環(huán)以此語(yǔ)句為終點(diǎn)。但執(zhí)行到ENDDO語(yǔ)句時(shí)并不是直接退出循環(huán),而是轉(zhuǎn)到DOWHILE語(yǔ)句去判斷<邏輯表達(dá)式>的值的真假。3.循環(huán)語(yǔ)句本身不會(huì)修改執(zhí)行條件,因此循環(huán)體內(nèi)一定要設(shè)置修改循環(huán)條件的語(yǔ)句。否則,可能出現(xiàn)死循環(huán),無(wú)法退出循環(huán)。7/28/202330第四章例4-7:試編一程序,顯示商品銷(xiāo)售表.DBF中所有單價(jià)超過(guò)2000元的商品編號(hào)。CLEARUSE商品銷(xiāo)售表

DOWHILE.NOT.EOF()IF單價(jià)>2000?商品編號(hào)

ENDIFSKIPENDDOUSE7/28/202331第四章例4-8:STORE0TOK1,K2,K3ZS=1DOWHILEZS<=200ACCEPT“請(qǐng)輸入選票代號(hào)”TOXPDOCASECASEXP=“1”K1=K1+1CASEXP=“2”K2=K2+lCASEXP=“3”K3=K3+1ENDCASEZS=ZS+1ENDDO?“甲得票數(shù):”+STR(K1)?“乙得票數(shù):”+STR(K2)?“丙得票數(shù):”+STR(K3)RETURN7/28/202332第四章二、步長(zhǎng)循環(huán)語(yǔ)句格式:

FOR<內(nèi)存變量>=<數(shù)值表達(dá)式1>TO<數(shù)值表達(dá)式2>[SETP<數(shù)值表達(dá)式3>]<語(yǔ)句序列>

ENDFOR|NEXT說(shuō)明:語(yǔ)句格式中的<內(nèi)存變量>稱為循環(huán)變量,<數(shù)值表達(dá)式l>、<數(shù)值表達(dá)式2>、<數(shù)值表達(dá)式3>分別稱為初值、終值、步長(zhǎng)。步長(zhǎng)的缺省時(shí)值為1。7/28/202333第四章功能:語(yǔ)句執(zhí)行時(shí),通過(guò)比較循環(huán)變量值與終值來(lái)決定是否執(zhí)行<語(yǔ)句序列>。步長(zhǎng)為正數(shù)時(shí),若循環(huán)變量值不大于終值就執(zhí)行循環(huán)體;步長(zhǎng)為負(fù)數(shù)時(shí),若循環(huán)變量值不小于終值就執(zhí)行循環(huán)體。執(zhí)行一旦遇到ENDFOR或NEXT,循環(huán)變量值即加上步長(zhǎng),然后返回到FOR重新與終值比較。注意:循環(huán)體中不需要改變循環(huán)變量語(yǔ)句。因?yàn)?,ENDFOR或NEXT語(yǔ)句會(huì)改變循環(huán)變量的值。這一點(diǎn)與DOWHILE…ENDDO語(yǔ)句不同。7/28/202334第四章例4-9:編寫(xiě)計(jì)算S=1+2+3+…+100的程序。SETTALKOFFCLEARS=0&&S為累加器,初值為0

FORI=1TO100&&I為計(jì)數(shù)器,初值為1

S=S十I&&累加

NEXT?“S=”,SRETURN7/28/202335第四章三、掃描循環(huán)語(yǔ)句格式:

SCAN[〈范圍〉][FOR〈邏輯表達(dá)式〉]〈語(yǔ)句序列〉

ENDSCAN

功能:SCAN循環(huán)針對(duì)當(dāng)前表進(jìn)行循環(huán),〈范圍〉子句表示記錄范圍,缺省值為ALL。語(yǔ)句執(zhí)行時(shí)在〈范圍〉中依次尋找滿足FOR條件的記錄,并對(duì)找到的記錄執(zhí)行〈語(yǔ)句序列〉。執(zhí)行到ENDSCAN語(yǔ)句,指針就指向下一條滿足條件的記錄,繼續(xù)執(zhí)行循環(huán)體,直到所有的記錄都執(zhí)行完,就結(jié)束循環(huán)。7/28/202336第四章

例4-10:根據(jù)例4-7的要求,用掃描循環(huán)語(yǔ)句編程。

CLEARUSE商品銷(xiāo)售表

SCANFOR單價(jià)>2000?商品編號(hào)

ENDSCANUSE7/28/202337第四章四、循環(huán)輔助語(yǔ)句1.跳轉(zhuǎn)語(yǔ)句格式:LOOP功能:該語(yǔ)句能中斷本次循環(huán)體的執(zhí)行,回到循環(huán)開(kāi)始處,重新對(duì)條件表達(dá)式進(jìn)行判斷。說(shuō)明:LOOP語(yǔ)句一定放在循環(huán)體內(nèi)才有意義,2.出口語(yǔ)句格式:EXIT功能:終止正常循環(huán),無(wú)條件地轉(zhuǎn)到循環(huán)終止語(yǔ)句后去執(zhí)行后續(xù)語(yǔ)句。7/28/202338第四章例4-11:SETTALKOFFCLEARSTORE0TOI,S,TDOWHILEI<=100I=I+1S=S+I&&累加I值

IFINT(I/2)=I/2LOOPENDIFT=T+I&&累加奇數(shù)

ENDDO?“l(fā)+2+3+…+100=”,S?”1~100奇數(shù)和為:”,TRETURN7/28/202339第四章例4-12:

@4,10SAY“請(qǐng)輸入一自然數(shù):”GETXDEFAULT0

READN=0DOWHILEN<=XIFINT(X/N)=X/NEXITENDIFN=N+1ENDDOIFN=X@6,10SAYSTR(X)+“為素?cái)?shù)”ELSE@6,10SAYSTR(X)+“不為素?cái)?shù)”ENDIF7/28/202340第四章例4-13:編程修改商品表.DBF中的商品名稱和生產(chǎn)單位,要求能修改多個(gè)商品。程序如下:CLEARUSE商品表DOWHILE.T.SPBH=SPACE(6)@4,10SAY“請(qǐng)輸入要修改的商品編號(hào):”GETSPBHREADLOCATEFOR商品編號(hào)=SPBH7/28/202341第四章IFFOUND()@6,10SAY“商品名稱”GET商品名稱@7,10SAY“生產(chǎn)單位”GET生產(chǎn)單位

READELSE@6,10SAY“無(wú)此商品!”ENDIFWAIT“是否繼續(xù)修改?”TOXGIFUPPER(XG)=“Y”LOOPELSEEXITENDIFENDDORETURN7/28/202342第四章五、多重循環(huán)若一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)又包含其它循環(huán),就構(gòu)成了多重循環(huán),也稱為循環(huán)嵌套。較為復(fù)雜的問(wèn)題往往要用多重循環(huán)來(lái)處理。例4-14:編一程序在屏幕上顯示九九乘法表。7/28/202343第四章CLEARA=1DOWHILEA<=9B=1DOWHILEB<=AC=A*B??LTRIM(STR(A,2)),“*”,LTRIM(STR(B,2)),“=”,LTRM(STR(C,2)),“”B=B+1ENDDO?A=A+1ENDDORETURN7/28/202344第四章4.3過(guò)程與函數(shù)

4.3.1子程序一、調(diào)用與返回對(duì)于兩個(gè)具有調(diào)用關(guān)系的程序文件,常稱調(diào)用程序?yàn)橹鞒绦?,被調(diào)用程序?yàn)樽映绦颉V鞒绦驁?zhí)行時(shí)遇到DO命令,執(zhí)行就轉(zhuǎn)向子程序,稱為調(diào)用子程序。子程序執(zhí)行到RETURN語(yǔ)句(或缺省該語(yǔ)句),就會(huì)返回到主程序繼續(xù)執(zhí)行程序,稱為從子程序返回,或簡(jiǎn)稱返主。7/28/202345第四章二、帶參數(shù)子程序的調(diào)用與返回

DO<程序名l>[WITH<參數(shù)表>][IN<程序名2>]功能:帶參數(shù)調(diào)用子程序。說(shuō)明:(1)<參數(shù)表>中的參數(shù)可以是常量、變量或表達(dá)式,但若為內(nèi)存變量必須具有初值。(2)當(dāng)<程序名1>是IN子句<程序名2>中的一個(gè)過(guò)程時(shí),DO命令調(diào)用該過(guò)程,請(qǐng)參閱以下過(guò)程部分內(nèi)容。7/28/202346第四章調(diào)用子程序時(shí)參數(shù)表中的參數(shù)要傳送給子程序,子程序中也必須設(shè)置相應(yīng)的參數(shù)接收語(yǔ)句。

PARAMETERS<參數(shù)表>功能:指定內(nèi)存變量以接收DO命令發(fā)送的參數(shù)值,返主時(shí)把內(nèi)存變量值回送給調(diào)用程序中相應(yīng)的內(nèi)存變量。說(shuō)明:(l)PARAMETERS必須是被調(diào)用程序的第一個(gè)語(yǔ)句。(2)命令中的參數(shù)被默認(rèn)為私有變量,返主時(shí)回送參數(shù)值后即被清除。(3)命令中的參數(shù)依次與調(diào)用命令WITH子句中的參數(shù)相對(duì)應(yīng),故兩者參數(shù)個(gè)數(shù)必須相同,類型必須匹配。7/28/202347第四章例4-15:設(shè)計(jì)一個(gè)計(jì)算圓面積的子程序,并要求在主程序中帶參數(shù)調(diào)用它。主程序:(文件名MAIN.PRG)CLEARYMJ=0@5,10SAY“請(qǐng)輸人半徑:”GETBJDEFAULT0READDOJSWITHBJ,YMJ?“YMJ=”,YMJ&&顯示圓面積RETURN7/28/202348第四章子程序:文件名為JS.PRGPARAMETERSR,SS=PI()*R*R&&PI()函數(shù)返回3.14

RETURN&&返主三、子程序嵌套主程序與子程序的概念是相對(duì)的,子程序還可調(diào)用它自己的子程序,即子程序可以嵌套調(diào)用。RETURN[TOMASTER|TO<程序文件名>]7/28/202349第四章4.3.2過(guò)程

一、過(guò)程文件及過(guò)程的概念VisualFoxPro6.0允許在一個(gè).PRG文件中設(shè)置多個(gè)程序模塊,將主程序以外的每個(gè)模塊定義為一個(gè)過(guò)程。這種包含多個(gè)過(guò)程的文件稱為“過(guò)程文件”。“過(guò)程文件”實(shí)質(zhì)仍是命令文件,仍使用.PRG為擴(kuò)展名。其建立的方法與一般命令文件一樣用命令:MODIFYCOMMAND<過(guò)程文件名>7/28/202350第四章一個(gè)過(guò)程文件可包含128個(gè)過(guò)程。每個(gè)過(guò)程都有一個(gè)過(guò)程名進(jìn)行標(biāo)識(shí)。過(guò)程名的約定與內(nèi)存變量名的約定一樣。過(guò)程文件中的每一個(gè)過(guò)程結(jié)構(gòu)如下:

PROCEDURE<過(guò)程名><命令序列>[RETURN]注意:每一個(gè)過(guò)程能完成某一獨(dú)立的功能,像子程序一樣被其它程序調(diào)用。但過(guò)程不是一個(gè)獨(dú)立的.PRG文件,它只是一個(gè)過(guò)程文件中的一段程序。而每一個(gè)子程序是一個(gè)獨(dú)立的命令文件。因此,過(guò)程與過(guò)程文件不是同一概念,不可混淆。7/28/202351第四章二、過(guò)程的調(diào)用:過(guò)程也用DO命令調(diào)用。1.過(guò)程可作為程序的一部分,列在程序的最后,例4-16:SETDECIMALSTO2YMJ=0@5,10SAY“請(qǐng)輸人半徑:”GETBJDEFAULT0READDOJSWITHBJ,YMJ&&調(diào)用過(guò)程JS?“YMJ=”,YMJRETURN

PROCEDUREJS&&過(guò)程JS開(kāi)始語(yǔ)句

PARAMETERSr,sS=PI()*R*RRETURN

7/28/202352第四章2.過(guò)程有可能不在調(diào)用程序中,而是被包含在某一個(gè)過(guò)程文件中,在調(diào)用過(guò)程文件中的過(guò)程時(shí),必須打開(kāi)包含該過(guò)程的過(guò)程文件,再用DO命令調(diào)用。打開(kāi)過(guò)程文件的命令如下:格式:SETPROCEDURETO<過(guò)程文件名>功能:打開(kāi)指定的過(guò)程文件。過(guò)程文件使用完畢后,要關(guān)閉。過(guò)程文件關(guān)閉的命令是:格式一:CLOSEPROCEDURE格式二:SETPROCEDURETO功能:關(guān)閉當(dāng)前打開(kāi)的過(guò)程文件。7/28/202353第四章例4-17:CLEARR=5MJ=0TJ=0SETPROCEDURETOQMJTJDOQMJ&&調(diào)用過(guò)程QMJ?“球的表面積為:”,MJDOQTJ&&調(diào)用過(guò)程QTJ?“球體積為:”,TJSETPROCEDURETO&關(guān)閉過(guò)程文件RETURN7/28/202354第四章*過(guò)程文件:文件名為QMJTJ.PRGPROCEDUREQMJMJ=4*PI()*R*RRETURNPROCDUERQTJTJ=4*PI()*R*R*R/3RETURN7/28/202355第四章4.3.3自定義函數(shù)

一、自定義函數(shù)的建立自定義函數(shù)的格式如下:

FUNCTION<函數(shù)名>[PARAMETERS<參數(shù)表>]<語(yǔ)句序列>[RETURN<表達(dá)式>]功能:定義一個(gè)函數(shù),供調(diào)用。7/28/202356第四章說(shuō)明:(1)自定義函數(shù)的函數(shù)名不能和VisualFoxPro6.0系統(tǒng)函數(shù)同名,也不能和內(nèi)存變量同名。(2)<語(yǔ)句序列>組成為函數(shù)體,用于進(jìn)行各種處理;簡(jiǎn)單的函數(shù)其函數(shù)體也可為空。(3)RETURN語(yǔ)句用于返回函數(shù)值,其中的<表達(dá)式>值就是函數(shù)值。若缺省該語(yǔ)句,則返回的函數(shù)值為.T.。(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論