第7章 結(jié)構(gòu)化程序設(shè)計_第1頁
第7章 結(jié)構(gòu)化程序設(shè)計_第2頁
第7章 結(jié)構(gòu)化程序設(shè)計_第3頁
第7章 結(jié)構(gòu)化程序設(shè)計_第4頁
第7章 結(jié)構(gòu)化程序設(shè)計_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VisualFoxPro程序設(shè)計第7結(jié)構(gòu)化程序設(shè)計近幾年來,程序設(shè)計的方法正在逐步由面向過程的結(jié)構(gòu)化程序設(shè)計轉(zhuǎn)向面向?qū)ο蟮某绦蛟O(shè)計,但是在程序設(shè)計的過程中,往往將結(jié)構(gòu)化程序設(shè)計與面向?qū)ο蟮某绦蛟O(shè)計結(jié)合起來,這樣更有利于設(shè)計出功能強大、靈活多變的數(shù)據(jù)庫應(yīng)用系統(tǒng)。1第七章結(jié)構(gòu)化程序設(shè)計7.1程序設(shè)計入門7.2順序結(jié)構(gòu)程序設(shè)計7.3分支結(jié)構(gòu)程序設(shè)計7.4循環(huán)結(jié)構(gòu)程序設(shè)計7.5用戶自定義函數(shù)和過程27.1程序設(shè)計入門基本概念基本語句創(chuàng)建、修改、運行程序37.1.1程序的基本概念1.程序能夠完成一定任務(wù)的命令的有序集合。程序文件擴展名:.prg2.程序設(shè)計為完成一個特定的任務(wù)而編寫程序的過程。3.程序的基本結(jié)構(gòu)順序分支循環(huán)47.1.1程序的基本概念4.程序的基本構(gòu)成規(guī)則(1)程序由若干程序行組成。(2)每一個程序行以回車鍵結(jié)束;若一個程序行在一行中寫不完,則在行尾用分號(;)表示續(xù)行,然后在下一行繼續(xù)書寫完整。(3)程序尾部使用CANCEL、RETURN或QUIT等命令表示該程序結(jié)束。57.1.2程序的創(chuàng)建、修改與運行一、程序的建立項目管理器方式菜單方式命令方式:

MODIFYCOMMAND<程序文件名>

代碼程序新建67.1.2程序的創(chuàng)建、修改與運行創(chuàng)建程序的步驟(1)打開程序編輯窗口。(2)在程序編輯窗口中逐條輸入命令,并以回車鍵換行。(3)保存程序文件。(.prg)【例7-1】建立一個程序,輸出半徑是4的圓的面積。77.1.2程序的創(chuàng)建、修改與運行二、程序的修改在程序文件的編輯狀態(tài)下完成。打開程序三種方法:項目管理器方式菜單方式命令方式:

MODIFYCOMMAND<程序文件名>87.1.2程序的創(chuàng)建、修改與運行三、程序的運行單擊工具欄上的按鈕。項目管理器方式:“運行”按鈕。命令方式:DO<程序文件名>。97.1.3程序中常用的基本語句1、字符串輸入語句ACCEPT[<信息提示>]TO<內(nèi)存變量>字符串常量例:ACCEPT“請輸入一個數(shù):”TOx接收的數(shù)據(jù)作為字符型處理功能:在屏幕上顯示[<提示信息>],并等待用戶通過鍵盤輸入內(nèi)容,把輸入內(nèi)容作為字符串常量賦值給指定的<內(nèi)存變量>。107.1.3程序中常用的基本語句【例7-2】從鍵盤上任意鍵入一個數(shù),求其平方根。CLEARACCEPT"請輸入一個數(shù):"TOxy=SQRT(VAL(x))?x,"的平方根是:",yRETURNVal()函數(shù):字符型轉(zhuǎn)換成數(shù)值型117.1.3程序中常用的基本語句2、表達(dá)式輸入語句INPUT[<信息提示>]TO<內(nèi)存變量>字符串常量可接收任意類型數(shù)據(jù),需加定界符功能:在屏幕上顯示[<提示信息>],并等待用戶通過鍵盤輸入表達(dá)式,再把表達(dá)式的值賦給指定的<內(nèi)存變量>。12例如:s=100inputtoa?"a=",a

執(zhí)行上述命令若輸入的內(nèi)容為:s+20,則輸出結(jié)果為:a=120這表明變量a接收的是表達(dá)式的值。13例如,把上例中的input改成accept:s=100accepttob?"b=",b執(zhí)行上述命令,若輸入的內(nèi)容為s+20,則輸出結(jié)果為:b=s+20這表明變量b接收的是字符串“s+20”。說明:這兩個命令中的<提示信息>可以缺省。當(dāng)提示信息缺省的時候,則直接等待用戶輸入。147.1.3程序中常用的基本語句【例7-3】在成績表cj.dbf中,按學(xué)號查詢學(xué)生的成績情況。CLEARUSEcj.dbfINPUT“輸入要查詢的學(xué)號:”TOxh2DISPLAYFORxh=xh2USERETURN字符型數(shù)據(jù)加引號157.1.3程序中常用的基本語句3、單字符輸入語句WAIT[<提示信息>][TO<內(nèi)存變量>];

[WINDOW[AT<行>,<列>]];

[TIMEOUT<數(shù)值表達(dá)式>]

只接收一個字符提示窗口的位置最大等待時間提示信息出現(xiàn)在提示窗口功能:該命令的作用是暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)或等待輸入一個字符(可存入指定的內(nèi)存變量)或在指定時間內(nèi)繼續(xù)程序的執(zhí)行。16例如:WAIT"單字符輸入語句測試"WINDOWAT15,22TIMEOUT5例如:若在主窗口的10行、20列處顯示提示信息“輸入無效,請等待重新輸入…”,10秒鐘后自動關(guān)閉提示窗口,程序繼續(xù)執(zhí)行。可使用命令:

WAIT“輸入無效,請等待重新輸入…”WINDOWTIMEOUT10AT10,20。177.1.3程序中常用的基本語句4、定位輸入輸出語句@<行>,<列>[SAY<表達(dá)式1>][GET<變量名>];[Default表達(dá)式2][<READ>]

在指定位置輸出表達(dá)式1指定要輸入或編輯數(shù)據(jù)的變量名為變量指定初始值可以為變量輸入數(shù)據(jù)通常get和read配合使用,以便為變量輸入值187.1.3程序中常用的基本語句【例7-5】從鍵盤上任意鍵入一個數(shù),求其平方根。CLEARx=0@10,10SAY"請輸入一個數(shù):"GETxREADy=SQRT(x)@12,10SAY"其平方根是:"@12,22SAYyRETURN197.1.3程序中常用的基本語句5、程序結(jié)束語句(1)CANCEL語句功能:結(jié)束程序的執(zhí)行,返回命令窗口,同時關(guān)閉所有打開文件。(2)RETURN語句功能:結(jié)束程序的執(zhí)行。如果程序是被另一程序調(diào)用,則返回到調(diào)用程序,否則返回到命令窗口。(3)

QUIT語句功能:結(jié)束程序執(zhí)行并退出VisualFoxPro系統(tǒng),返回操作系統(tǒng)。20程序的基本結(jié)構(gòu)

VisualFoxPro系統(tǒng)的程序有兩個特點:一是程序控制流模式,由順序、分支(選擇)、循環(huán)三種基本結(jié)構(gòu)構(gòu)成。二是面向?qū)ο罂梢暬慕Y(jié)構(gòu)程序模塊,在每個模塊的內(nèi)部也是由程序控制流組成。217.2順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)是按照程序語句的書寫順序,逐條依次執(zhí)行?!纠?-6】從鍵盤輸入半徑,求圓的面積。r=0INPUT“請輸入圓的半徑:”TOrs=0s=3.14*r*r?”該圓的面積為:”,sRETURN227.3分支結(jié)構(gòu)程序設(shè)計在分支結(jié)構(gòu)中,程序根據(jù)判斷條件是否成立來選擇執(zhí)行分支,每一個分支對應(yīng)一個程序段。單分支結(jié)構(gòu)雙分支結(jié)構(gòu)多分支結(jié)構(gòu)237.3.1單分支結(jié)構(gòu)單分支結(jié)構(gòu)用于控制程序中的語句行序列的執(zhí)行與否,它根據(jù)指定的條件表達(dá)式來進(jìn)行判斷。【語句格式】IF<條件表達(dá)式><語句行序列>ENDIF條件表達(dá)式語句行序列ENDIF后面的語句.T..F.24補充例題:若考試成績大于等于60分,顯示合格Input“請輸入一個成績:”toxIfx>=60?”成績合格”Endif7.3.1單分支結(jié)構(gòu)257.3.2雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)根據(jù)指定的一個條件表達(dá)式的兩種不同結(jié)果值來判斷執(zhí)行兩個分支中的哪一個分支,從而得到兩種不同的程序結(jié)果。【語句格式】IF<條件表達(dá)式><語句行序列1>ELSE<語句行序列2>ENDIF條件表達(dá)式語句行序列1語句行序列2.T..F.ENDIF后面的語句26補充例題:若考試成績大于等于60分,顯示合格,否則顯示不合格

INPUT“請輸入一個成績:”toxIFx>=60?”成績合格”

ELSE?”成績不合格”

ENDIF7.3.2雙分支結(jié)構(gòu)277.3.2雙分支結(jié)構(gòu)【例7-10】假設(shè)托運50公斤以內(nèi)的行李按每公斤0.8元計費,如果超過50公斤時,超過的部分每公斤加價0.4元,計算公式如下:(1)當(dāng)x≤50公斤:y=0.8*x(2)當(dāng)x>50公斤:y=0.8*50+(0.8+0.4)*(x-50)從鍵盤任意鍵入行李的重量,求該行李的托運費。編程如下:INPUT"請輸入行李的重量:"TOxIFx<=50y=0.8*xELSEy=0.8*50+(0.8+0.4)*(x-50)ENDIF@10,30SAY"行李的重量為:"+STR(x,6,2)+"公斤,其托運費;為:"+STR(y,6,2)+"元"RETURN287.3.3多分支結(jié)構(gòu)【語句格式】DOCASECASE<條件表達(dá)式1><語句行序列1>CASE<條件表達(dá)式2><語句行序列2>…………CASE<條件表達(dá)式n><語句行序列n>[OTHERWISE<語句行序列n+1>]ENDCASE297.3.3多分支結(jié)構(gòu)條件表達(dá)式1.T.語句行序列1EDNCASE后面的語句條件表達(dá)式2.T.語句行序列2.F..F..F.條件表達(dá)式n語句行序列n.F.……語句行序列n+1.T.執(zhí)行流程307.3.3多分支結(jié)構(gòu)注意事項

DOCASE語句只執(zhí)行第一個條件表達(dá)式值為.T.的CASE語句下的語句行序列,之后便結(jié)束該多分支語句。假如各條件表達(dá)式的值均為.F.,若有OTHERWISE子句,則程序執(zhí)行<語句行序列n+1>,之后結(jié)束該多分支語句;否則直接結(jié)束多分支語句。在構(gòu)成多分支語句時,DOCASE和ENDCASE必須配對出現(xiàn)。在表達(dá)分支語句時,不允許在一個命令行中輸入完,必須按照【語句格式】中規(guī)定的樣式一行一個回車分行鍵入。317.3.3多分支結(jié)構(gòu)【例7-11】從鍵盤上輸入一個成績值,判斷出它所對應(yīng)的等級。(85-100:優(yōu)秀;75-84:良好;60-74:及格;0-59:不及格)CLEARINPUT"請輸入一個成績:"TOnxDOCASECASEnx>=85grade="優(yōu)秀"CASEnx>=75grade="良好"CASEnx>=60grade="及格"OTHERWISEgrade="不及格"ENDCASE@10,29SAYSTR(nx)+"對應(yīng)的成績等級是:"+gradeRETURN327.3.3多分支結(jié)構(gòu)【例7-12】判斷隨機給定的某一天是星期幾。CLEARINPUT"請輸入一個日期:"TOdx

x=DOW(dx)DOCASE CASEx=1 y="星期日" CASEx=2 y="星期一"……CASEx=7 y="星期六"ENDCASE@10,30SAYDTOC(dx)+"是:"+yRETURN

337.4循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)是指從程序的某處開始有規(guī)律的重復(fù)執(zhí)行某一程序段的程序結(jié)構(gòu)。三種循環(huán)結(jié)構(gòu):DOWHILE循環(huán)FOR循環(huán)SCAN循環(huán)兩個命令:EXITLOOP347.4.2FOR循環(huán)FOR循環(huán)根據(jù)循環(huán)變量的初值、終值和步長決定循環(huán)體的執(zhí)行次數(shù)。適用條件:循環(huán)次數(shù)已知格式:FOR

<循環(huán)變量>=<初值>

TO

<終值>[STEP<步長>][LOOP][EXIT]ENDFOR/NEXT35執(zhí)行流程循環(huán)變量在初值與終值之間?循環(huán)變量=初值語句行序列循環(huán)變量=循環(huán)變量+步長.T..F.ENDFOR后面的語句367.4.2FOR循環(huán)例1:計算S=1+2+……+100

S=0&&用于存放累加和

FORI=1TO100STEP1S=S+I

ENDFOR?S100以內(nèi)的奇、偶數(shù)和?377.4.2FOR循環(huán)注意事項FOR與ENDFOR/NEXT必須成對出現(xiàn),缺一不可步長可正可負(fù)可省略(缺省時為1)。當(dāng)初值大于終值時,步長為負(fù)數(shù)例如:

FORi=10to1step-4??iENDFOR387.4.2FOR循環(huán)【例7-19】求1~100之間既非3的倍數(shù)也非5的倍數(shù)的所有奇數(shù)的和。CLEAs=0FORi=1TO100STEP2IFMOD(i,3)<>0andMOD(i,5)<>0s=s+i

ENDIFENDFOR?"1~100之間既非3的倍數(shù)也非5的倍數(shù)的所有奇數(shù)的和",sRETURN39關(guān)于LOOP和EXIT語句LOOP語句結(jié)束本次循環(huán),它使得其后的語句在本次循環(huán)時不被執(zhí)行,跳入下次循環(huán)EXIT語句結(jié)束整個循環(huán),可放在循環(huán)中的任何位置,無條件的退出循環(huán)。407.4.2FOR循環(huán)【例7-19】求1~100之間既非3的倍數(shù)也非5的倍數(shù)的所有奇數(shù)的和。CLEAs=0FORi=1TO100STEP2IFMOD(i,3)=0ORMOD(i,5)=0

LOOPENDIFs=s+iENDFOR?"1~100之間既非3的倍數(shù)也非5的倍數(shù)的所有奇數(shù)的和",sRETURN417.4.2FOR循環(huán)【例7-20】判斷從鍵盤上輸入的一個數(shù)是否為素數(shù)。CLEAINPUT"請輸入一個數(shù)N:"TOnklkey=.T.ni=2FORni=2TOnk-1IFMOD(nk,ni)=0

lkey=.F.

EXITENDIFENDFOR?"您輸入的數(shù):"+IIF(lkey,"是素數(shù)","不是素數(shù)")RETURN

427.4.1DOWHILE循環(huán)DOWHILE循環(huán)又稱條件循環(huán),是根據(jù)條件表達(dá)式的值來決定循環(huán)體的執(zhí)行次數(shù)的一種循環(huán)結(jié)構(gòu)。適用條件:循環(huán)次數(shù)未知格式:DOWHILE<條件表達(dá)式><語句行序列>[LOOP][EXIT]ENDDO循環(huán)體437.4.1DOWHILE循環(huán)執(zhí)行流程條件表達(dá)式循環(huán)體.T..F.循環(huán)體中要有使得條件表達(dá)式最終為.F.的語句或通過EXIT強制退出ENDDO后面的語句447.4.1DOWHILE循環(huán)例1:計算S=1+2+……+100I=1S=0DOWHILE

I<=100

S=S+II=I+1ENDDO?S計算N!(N在0至10至間)457.4.1DOWHILE循環(huán)例2:將ASC字符組成的字符串反序顯示變量c變量pabcdeffedcbaLEFT(c,1)SUBSTR(c,2)c=+pp=LEN(c)=0退出循環(huán)!循環(huán)條件?LEN(c)>0467.4.1DOWHILE循環(huán)Store"abcdef"tocP=space(0)DoWhile

LEN(c)>0P=LEFT(c,1)+Pc=SUBSTR(c,2)Enddo?P477.4.1DOWHILE循環(huán)【例7-13】將由任意字符(包括漢字)組成的字符串反序顯示。CLEARSTORE"ab程序設(shè)計cd"TOc1,c2p=SPACE(0)48DOWHILELEN(c1)>0x=ASC(LEFT(c1,1))

IFx>127y=2ELSEy=1ENDIFp=LEFT(c1,y)+pc1=SUBSTR(c1,y+1)ENDDO?c2+"的反序列為:"+pRETURN497.4.1DOWHILE循環(huán)【例7-21】統(tǒng)計教師表中職稱名稱為教授、副教授、講師、助教的各有多少人。CLEARUSEjs.dbfEXCLUSIVESTORE0TOt1,t2,t3,t4DOWHILE

.NOT.EOF()DOCASECASEzcmc="教授"t1=t1+1CASEzcmc="副教授"t2=t2+150

CASEzcmc="講師"t3=t3+1OTHERWISEt4=t4+1ENDCASE

SKIPENDDO@8,30SAY"教授的人數(shù):"+STR(t1)@10,30SAY"副教授的人數(shù):"+STR(t2)@12,30SAY"講師的人數(shù):"+STR(t3)@14,30SAY"助教的人數(shù):"+STR(t4)USERETURN517.4.1DOWHILE循環(huán)LOOP命令(短路語句):跳出本次循環(huán)返回到循環(huán)的開始處,重新對循環(huán)條件進(jìn)行判斷。【例7-15】將教師表(js.dbf)中基本工資小于800元的教師的基本工資增加200元。CLEARUSEjs.dbfEXCLUSIVEDOWHILE.NOT.EOF()IFjbgz>=800SKIP

LOOPENDIFREPLACEjbgzWITHjbgz+200SKIPENDDOUSERETURN

527.4.1DOWHILE循環(huán)EXIT命令(循環(huán)退出語句)【例7-20】要求產(chǎn)生一個在70~80之間的隨機數(shù)。x=0DOWHILE.T.x=INT(RAND()*100)

IFx>70ANDx<80EXITENDIFENDDO@10,20SAYxRETURN537.4.3SCAN循環(huán)適用條件:僅用于處理表中的記錄格式:

SCAN[<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>]<語句組>[LOOP][EXIT]ENDSCAN循環(huán)控制條件:EOF()的值SCAN循環(huán)又稱數(shù)據(jù)表掃描型循環(huán)或者指針型循環(huán),即根據(jù)表中的當(dāng)前記錄指針,決定循環(huán)體的執(zhí)行次數(shù)。54EOF()?.F.在<范圍>內(nèi).T..T..F.條件表達(dá)式2.T..F.條件表達(dá)式1.T.語句行序列記錄指針自動下移.F.ENDSCAN后面的語句SKIP557.4.3SCAN循環(huán)【例7-22】將教師表(js.dbf)中職稱是“助教”的基本工資增加500元,其他不變。CLEARUSEjs.dbfEXCLUSIVESCANALLFORzcmc="助教"REPLACEjbgzWITHjbgz+500ENDSCANUSERETURN56對比:DOWHILE循環(huán)將教師表(js.dbf)中基本工資小于800元的教師的基本工資增加200元。CLEARUSEjs.dbfEXCLUSIVEDOWHILE.NOT.EOF()IFjbgz>=800SKIPLOOPENDIFREPLACEjbgzWITHjbgz+200SKIPENDDOUSERETURN

577.4.3SCAN循環(huán)【例7-23】統(tǒng)計學(xué)生表中女生黨員的人數(shù)。CLEARUSExs.dbfEXCLUSIVEx=0SCANALLFORxb="女".AND.dyf

x=x+1ENDSCAN@10,30SAY“女生黨員的人數(shù)是:"@10,52SAYxUSERETURN

587.4.4循環(huán)嵌套循環(huán)嵌套在一個循環(huán)的循環(huán)體內(nèi)又包含有其他循環(huán)。注意:(1)內(nèi)層循環(huán)必須被完全包含在外層循環(huán)之中,不得交叉。(2)程序每執(zhí)行一次外層循環(huán),則其內(nèi)層循環(huán)必須執(zhí)行完所有的循環(huán)次數(shù),之后才能進(jìn)入到外層的下一次循環(huán),依此類推。(3)當(dāng)循環(huán)語句與分支語句嵌套使用時,也不能出現(xiàn)交叉。59【例7-24】編程計算s=1!+3!+5!+…+25!s=0p=1FORi=1TO25STEP2

FORj=1toip=p*j

ENDFOR

s=s+pENDFOR?sRETURN607.5用戶自定義函數(shù)和過程在程序設(shè)計中,經(jīng)常把完成一個特定功能的程序編寫成一個函數(shù)或過程,作為一個獨立的模塊,以便在其他程序使用該功能時調(diào)用此模塊。這種用以完成一個特定功能的程序,稱為用戶自定義函數(shù)或過程。必要性:同樣功能的程序可以被多個程序所調(diào)用61返回處理結(jié)果時,使用RETURN。缺少RETURN語句或缺少RETURN后面的表達(dá)式時,返回值為.T.參數(shù)的意義:對不同的數(shù)據(jù)進(jìn)行類似的處理,增加靈活性。過程定義

PROCEDURE<過程名>[PARAMETERS<形式參數(shù)表>]<語句行序列>[RETURN[表達(dá)式]]

ENDPROC7.5用戶自定義函數(shù)和過程62函數(shù)定義

FUNCTION<用戶自定義函數(shù)名>[PARAMETERS<形式參數(shù)表>]<語句行序列>[RETURN[<表達(dá)式>]]

ENDFUNC返回處理結(jié)果時,使用RETURN。缺少RETURN語句或缺少RETURN后面的表達(dá)式時,返回值為.T.參數(shù)的意義:對不同的數(shù)據(jù)進(jìn)行類似的處理,增加靈活性。7.5用戶自定義函數(shù)和過程63函數(shù)和過程的調(diào)用DO<函數(shù)名或過程名>[WITH<參數(shù)表>]函數(shù)名或過程名([<參數(shù)表>])7.5用戶自定義函數(shù)和過程64函數(shù)與過程的區(qū)別

從實現(xiàn)功能來說,兩者相同,函數(shù)與過程均可。通常:需要返回計算的值則應(yīng)使用函數(shù),不需要返回值的使用過程。7.5用戶自定義函數(shù)和過程65PROCEDURE示例M=5?jc(m)PROCEDUREjc

PARAMETERSn p=1 FORi=1ton p=p*i ENDFOR

RETURNpENDPROCFUNCTION示例(將過程改為函數(shù))M=5?jc(m)FUNCTIONjc

PARAMETERSn p=1 FORi=1ton p=p*i ENDFOR

RETURNpENDFUNC輸出結(jié)果都是:1207.5用戶自定義函數(shù)和過程66PROCEDURE示例M=5dojcwithmPROCEDUREjc

PARAMETERSn p=1 FORi=1ton p=p*i ENDFOR

?pENDPROCFUNCTION示例(將過程改為函數(shù))M=5dojcwithmFUNCTIONjc

PARAMETERSn p=1 FORi=1ton p=p*i ENDFOR

?pENDFUNC輸出結(jié)果都是:1207.5用戶自定義函數(shù)和過程67過程與函數(shù)的創(chuàng)建方法放在程序文件的后面過程文件:存儲了一個或多個過程或函數(shù)的文件。獨立程序:只存儲了一個過程或函數(shù)的文件,文件名必須與過程名或函數(shù)名相同,它可以作為過程或函數(shù)使用。7.5用戶自定義函數(shù)和過程實驗指導(dǎo)書7-3:168【例7-27】利用用戶自定義函數(shù)求x!+y!,要求x和y從鍵盤上隨機輸入。代碼如下:CLEARINPUT"請輸入x的值:"TOxs1=fJC(x)&&調(diào)用函數(shù)fJCINPUT"請輸入y的值:"TOys2=fJC(y)&&調(diào)用函數(shù)fJC?STR(x,4),"!+",STR(y,4),"!=",STR(s1+s2,8)RETURN放在程序文件的后面舉例69*函數(shù)fJC的定義FUNCTION

fJC

PARAMETERSns=1

IFn>=1

FORi=1TOns=s*i

ENDFOR

ENDIFRETURN(s)70【例7-28】創(chuàng)建一個用戶自定義函數(shù)CCDOW()。功能是:返回一個日期是星期幾,如:CCDOW({^1999/3/1})的返回值是“星期一”。代碼如下:CLEARcx={}@4,20SAY"請輸入一個字符型日期:"GET

cxREAD@8,20SAY"輸入的日期是:"??CCDOW(cx)RETURN放在程序文件的后面舉例71FUNCTION

CCDOW(cx)

dx=DOW(cx)

DOCASE

CASEdx=1 title1="星期日"

CASEdx=2title1="星期一"……

CASEdx=7title1="星期六"

ENDCASE

RETURN(title1)ENDFUNC72【例7-29】創(chuàng)建一個用戶自定義函數(shù)CCDOW()。功能是:返回一個日期是星期幾,如:CCDOW({^1999/3/1})的返回值是“星期一”。(1)主程序文件,文件名為MAIN.PRGCLEARcx={}@4,20SAY"請輸入一個字符型日期:"GET

cxREAD@8,20SAY"輸入的日期是:"??CCDOW(cx)RETURN獨立程序形式舉例:73(2)用戶自定義函數(shù)文件,文件名為CCDOW.prgFUNCTION

CCDOW(cx)

dx=DOW(cx)

DOCASE

CASEdx=1 title1="星期日"

CASEdx=2title1="星期一"……

CASEdx=7title1="星期六"

ENDCASE

RETURN(title1)ENDFUNC74過程文件:多個函數(shù)或過程存放在一個文件中。(1)過程文件的建立與修改

方法同程序文件的建立與修改。可使用命令:【格式】MODIFYCOMMAND<過程文件名>(2)過程文件的打開對于過程文件在調(diào)用之前必須先打開【格式】SETPROCEDURETO<過程文件名>(3)過程文件的關(guān)閉【格式】CLOSEPROCEDURE75調(diào)用函數(shù)和過程時的查找順序在本文件中查找在已打開的過程文件中查找在默認(rèn)目錄中的獨立程序中查找76參數(shù)傳遞的兩種方式按數(shù)值傳遞按引用傳遞(傳遞地址)傳遞方式的設(shè)置:setudfparmstovalue時,默認(rèn)設(shè)置:

do函數(shù)過程名with變量名

---

溫馨提示

  • 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

提交評論