程序設(shè)計(jì)基礎(chǔ)課程課件_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程課件_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程課件_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程課件_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程課件_第5頁(yè)
已閱讀5頁(yè),還剩177頁(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ǔ)第五章程序設(shè)計(jì)基礎(chǔ)1§5、1程序設(shè)計(jì)概述一、程序的概念程序:完成一定任務(wù)的一組命令的有序集合。程序設(shè)計(jì):計(jì)算機(jī)用戶將解決某一實(shí)際問(wèn)題所用的命令按一定的邏輯順序編制成程序,并以文件的形式存放于磁盤的過(guò)程。優(yōu)點(diǎn):(1)可以利用編輯器,方便的輸入、修改、保存文件。(2)可用多種方式,多次運(yùn)行程序。(3)可在一個(gè)程序中調(diào)用另一個(gè)程序?!?、1程序設(shè)計(jì)概述一、程序的概念2VisualFoxPro的工作方式{{程序文件方式交互式方式單命令方式菜單方式菜單方式、命令方式、程序方式、工具方式VisualFoxPro的工作方式{{程序文件方式交互式31.單命令方式單命令方式:輸入一條命令,完成一個(gè)操作的工作方式。注:(1)VFP單命令方式:利用Command窗口來(lái)實(shí)現(xiàn)的。(2)Command窗口不僅是VFP命令的執(zhí)行窗口,也是VFP命令文件的編輯窗口。2.菜單方式通過(guò)打開(kāi)不同的菜單選擇并完成不同的操作。3.程序文件方式

程序文件(簡(jiǎn)稱程序)也叫做命令文件。命令方式:通過(guò)程序文件中的命令完成不同的操作。1.單命令方式4二、程序文件的建立、執(zhí)行與編輯說(shuō)明:程序由命令語(yǔ)句、函數(shù)、過(guò)程等程序代碼組成;

通過(guò)調(diào)用系統(tǒng)內(nèi)置的文本編輯器進(jìn)行建立和修改;

程序文件的擴(kuò)展名為.prg1、建立程序文件A、菜單方式B、項(xiàng)目管理器中創(chuàng)建C、命令方式格式:MODIFYCOMMAND[<文件名>]|?2、保存程序二、程序文件的建立、執(zhí)行與編輯說(shuō)明:程序由命令語(yǔ)句、函數(shù)、過(guò)53、編輯、修改程序文件格式:MODIFYCOMMAND<程序名>|?4、運(yùn)行程序格式:DO<程序名>[WITH<實(shí)參表>]5、使用VFP設(shè)計(jì)工具編寫代碼三、程序文件的注釋命令與程序結(jié)束命令1、注釋命令格式:NOTE|*|&&[<注釋內(nèi)容>]

注釋行:以*、NOTE開(kāi)頭的命令行(獨(dú)成一行)

且只能出現(xiàn)在一行的開(kāi)始

命令行后的注釋:&&(在其他命令行之后)3、編輯、修改程序文件62、程序結(jié)束命令格式:CANCEL說(shuō)明:執(zhí)行CANCEL將釋放所有私有內(nèi)存變量

程序中的常用命令程序開(kāi)頭常用命令:CLEARSETTALKOFF程序末尾常用命令:RETURNCANCELSETTALKONQUIT輸入輸出命令2、程序結(jié)束命令7(1)標(biāo)題部:通常由注釋語(yǔ)句組成,說(shuō)明程序的名稱,功能,作者等。(2)初始化部:通常由各種SET命令及CLEAR命令等組成,用于設(shè)定程序運(yùn)行時(shí)的初始環(huán)境。(3)程序主體:為完成特定任務(wù)所需的命令的有序集合。(4)結(jié)束返回部:由關(guān)閉文件命令,恢復(fù)程序運(yùn)行前的環(huán)境的SET命令及RETURN,QUIT等返回語(yǔ)句組成。程序的幾個(gè)部分(1)標(biāo)題部:通常由注釋語(yǔ)句組成,程序的幾個(gè)部分8(1)、首先遵守命令的基本書寫規(guī)則;(2)、命令分行書寫,一行只能寫一條命令,若命令較長(zhǎng)需分行書寫,要在一行結(jié)束時(shí)輸入‘;’程序中每條命令都以回車鍵結(jié)尾;(3)、擅長(zhǎng)使用注釋語(yǔ)句,提高程序的可讀性。

程序書寫規(guī)則程序書寫規(guī)則9§

5、2基本輸入輸出命令

一、交互式輸入命令交互式輸入:根據(jù)屏幕的提示,通過(guò)鍵盤等輸入設(shè)備輸入數(shù)據(jù)。1、INPUT命令

格式:INPUT[<字符型表達(dá)式>]TO<內(nèi)存變量>說(shuō)明:(1)以表達(dá)式的值作為提示信息

(2)[<提示信息>]可以是含有變量的字符型表達(dá)式

(3)內(nèi)存變量可接受任何類型的表達(dá)式的值(4)不能不輸入任何內(nèi)容按回車鍵(5)輸入字符串時(shí),必須加定界符L常量要加圓點(diǎn)定界符T型常量要用大括號(hào)§5、2基本輸入輸出命令

一、交互式輸入命令102、ACCEPT命令格式:ACCEPT[<字符型表達(dá)式>]TO<內(nèi)存變量>功能:等待用戶從鍵盤輸入字符串說(shuō)明:(1)在輸入字符串時(shí)不需要加定界符,(2)可以不輸入任何內(nèi)容直接按回車鍵。3、WAIT命令格式:WAIT[<字符型表達(dá)式>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT<數(shù)值表達(dá)式>]說(shuō)明:該命令只接收字符型數(shù)據(jù)2、ACCEPT命令11說(shuō)明:(1)若字符串表達(dá)式為空,不會(huì)顯示任何提示信息;若沒(méi)有指定字符串表達(dá)式,則默認(rèn)為‘按任意鍵繼續(xù)…’(2)若用戶按的是Enter鍵或單擊了鼠標(biāo),內(nèi)存變量中保存空串;若沒(méi)有TO<內(nèi)存變量>項(xiàng),輸入的單字符不保留。(3)WAIT提示窗口(默認(rèn)在主窗口的右上角)(4)同時(shí)選用NOWAIT短語(yǔ)和WINDOWS子句,系統(tǒng)不等待用戶按鍵,直接往下執(zhí)行說(shuō)明:(1)若字符串表達(dá)式為空,不會(huì)顯示任何提示信息;124、INKEY函數(shù)格式:INKEY([<數(shù)值表達(dá)式>][,<功能字符>])功能:等待用戶輸入內(nèi)容,等待時(shí)間由數(shù)值表達(dá)式確定(單位為秒),返回由按鍵而產(chǎn)生的一個(gè)整數(shù)值。說(shuō)明:(1)INKEY函數(shù)只能返回用戶按鍵的ASCII碼值,還能接受鍵盤上各種不可打印的控制鍵、功能鍵等。(2)關(guān)于等待時(shí)間:超過(guò)預(yù)定的等待時(shí)間用戶仍未按鍵,則返回0;數(shù)值表達(dá)式為0,則無(wú)限期等待,直到用戶按鍵為止;格式中缺少可選項(xiàng),則不等待,直接返回0。(3)功能字符:S、H、M控制光標(biāo)的顯示或隱藏,檢查鼠標(biāo)器按鈕的狀態(tài)。

4、INKEY函數(shù)13二、一般輸出命令1、文本行輸出命令格式:\|\\<文本行>功能:將<文本行>信息的內(nèi)容按原樣顯示出來(lái)。說(shuō)明:?/??<表達(dá)式>2、文本輸出命令格式:TEXT<文本信息>ENDTEXT說(shuō)明:該命令只能在程序設(shè)計(jì)中用,不能在命名窗口中用;屏幕畫面;<文本信息>中允許出現(xiàn)變量、函數(shù)、表達(dá)式,

二、一般輸出命令14本命令能識(shí)別他們不顯示其值,但需事先設(shè)定狀態(tài)SETTEXTMERGEON,并用<<和>>將其括起來(lái),以區(qū)別其他一般的文本信息。三、格式化輸入輸出命令格式:@<行,列>SAY<字符表達(dá)式>如:@6,8SAY“請(qǐng)輸入查詢條件:”格式:@<行,列>[SAY<提示信息>]GET<變量>[DEFAULT<表達(dá)式>]說(shuō)明:變量必須事先賦初值(類型、長(zhǎng)度);

GET<變量>必須要READ命令激活;READ命令的格式:READ[SAVE]本命令能識(shí)別他們不顯示其值,但需事先設(shè)定狀15例:SETTALKOFFUSERCDAACCEPT“請(qǐng)輸入編號(hào):”TOBHLOCATEFOR編號(hào)=BH?“工資:”+STR(工資)INPUT“請(qǐng)輸入工資:”TOGZLOCATEFOR工資=GZ??‘姓名:’+姓名@4,10SAY“工資為1000的人的編號(hào)為:”@4,25SAYBHUSESETTALKONRETURN例:SETTALKOFF16§

5、3程序設(shè)計(jì)的控制結(jié)構(gòu)程序結(jié)構(gòu):程序中命令或語(yǔ)句執(zhí)行的流程結(jié)構(gòu)。VisualFoxPro系統(tǒng)的程序有兩個(gè)特點(diǎn):一是程序控制流模式,由順序、分支(選擇)、循環(huán)三種基本結(jié)構(gòu)構(gòu)成。二是面向?qū)ο罂梢暬慕Y(jié)構(gòu)程序模塊,在每個(gè)模塊的內(nèi)部也是由程序控制流組成。

§5、3程序設(shè)計(jì)的控制結(jié)構(gòu)程序結(jié)構(gòu):程序中命令或語(yǔ)句執(zhí)17常見(jiàn)的控制結(jié)構(gòu)如下:1.順序結(jié)構(gòu)順序結(jié)構(gòu):在程序執(zhí)行時(shí),根據(jù)程序中語(yǔ)句的書寫順序依次執(zhí)行的命令序列。2.分支結(jié)構(gòu)分支結(jié)構(gòu):在程序執(zhí)行時(shí),根據(jù)不同的條件,選擇執(zhí)行不同的程序語(yǔ)句,用來(lái)解決有選擇、有轉(zhuǎn)移的諸多問(wèn)題。常見(jiàn)的控制結(jié)構(gòu)如下:183.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu):能夠使某些語(yǔ)句或程序段重復(fù)執(zhí)行若干次。如果某些語(yǔ)句或程序段需要在一個(gè)固定的位置上重復(fù)操作,使用循環(huán)是最好的選擇。4.過(guò)程結(jié)構(gòu)(可讀性、模塊化)

過(guò)程:具有獨(dú)立功能而且可以被其它程序調(diào)用的程序序列在許多應(yīng)用程序中,有一些程序段需要反復(fù)執(zhí)行多次,這些程序段不在一個(gè)固定的位置上,而是分散在程序的許多位置上重復(fù)執(zhí)行,可將其與嵌入它的程序分開(kāi),形成獨(dú)立的程序序列,待使用時(shí)再調(diào)入程序中,以實(shí)現(xiàn)不同位置上的重復(fù)操作。3.循環(huán)結(jié)構(gòu)19一、順序結(jié)構(gòu)

例:程序A1.PRGSETTALKOFFZ=0INPUT“輸入X的值:”TOXINPUT“輸入Y的值:”TOYZ=X+Y?‘Z=’,ZSETTALKONRETURN一、順序結(jié)構(gòu)

例:程序A1.PRG20二、選擇結(jié)構(gòu)支持選擇結(jié)構(gòu)的語(yǔ)句:條件語(yǔ)句、分支語(yǔ)句1、條件語(yǔ)句(單分支、雙分支)格式:IF<條件><語(yǔ)句序列1>[ELSE<語(yǔ)句序列2>]ENDIF二、選擇結(jié)構(gòu)支持選擇結(jié)構(gòu)的語(yǔ)句:條件語(yǔ)句、分支語(yǔ)句21真條件語(yǔ)句序列1ENDIF后面語(yǔ)句假條件語(yǔ)句序列2ENDIF后面語(yǔ)句假真語(yǔ)句序列1有ELSE的選擇語(yǔ)句無(wú)ELSE的選擇語(yǔ)句真條件語(yǔ)句序列1ENDIF后面語(yǔ)句假條件語(yǔ)句序列2ENDIF22

例:A2.PRGSETTALKOFFZ=0INPUT“輸入X的值:”TOXINPUT“輸入Y的值:”TOYIFX>YZ=X+YENDIF?‘Z=’,ZRETURN例:A3.PRGSETTALKOFFZ=0INPUT“輸入X的值:”TOXINPUT“輸入Y的值:”TOYIFX>YZ=X+YELSEZ=X*YENDIF?‘Z=’,ZRETURN例:A3.PRG232、分支語(yǔ)句

DOCASECASE〈條件表達(dá)式1〉〈命令行序列1〉[CASE〈條件表達(dá)式2〉〈命令行序列2〉……CASE〈條件表達(dá)式N〉〈命令行序列N〉][OTHERWISE〈命令行序列N+1〉]ENDCASE2、分支語(yǔ)句24條件1條件2OTHERWISE條件n…語(yǔ)句序列1語(yǔ)句序列2語(yǔ)句序列3語(yǔ)句序列4…ENDCASE后面的語(yǔ)句條件1條件2OTHERWISE條件n…語(yǔ)句序列1語(yǔ)句序列2語(yǔ)25例:A4.PRG設(shè)X代表貨物重量,Y代表運(yùn)費(fèi),其關(guān)系如下式:

X*15X<=50X*1050<X<=100Y=X*8100<X<=1000X*5X>1000{例:A4.PRG{26SETTALKOFFINPUT“輸入貨物重量:”TOXIFX<=50Y=X*15ELSE

IFX<=100Y=X*10ELSE

IFX<=1000Y=X*8ELSEY=X*5ENDIF

ENDIFENDIF?”運(yùn)費(fèi)為:”+STR(Y,8,2)RETURNSETTALKOFFINPUT“輸入貨物重量:”TOXDOCASECASEX<=50Y=X*15CASEX>50.AND.X<=100Y=X*10CASEX>100.AND.X<=1000Y=X*8CASEX>1000Y=X*5ENDCASE?“運(yùn)費(fèi)為:”+STR(Y,8,2)RETURNSETTALKOFFSETTALKOFF27例:A5、PRG求一元二次方程AX2+BX+C=0的實(shí)根。SETTALKOFFINPUT“請(qǐng)輸入二次項(xiàng)系數(shù):”TOAINPUT“請(qǐng)輸入一次項(xiàng)系數(shù):”TOBINPUTTO“請(qǐng)輸入常數(shù)項(xiàng):”CK=B*B-4*A*CS=IIF(K>0,SQRT(K),0)例:A5、PRG求一元二次方程AX2+BX+C=0的實(shí)根。28

DOCASECASEA=0?“唯一實(shí)根:”,-C/BCASEA<>0.AND.K=0?“兩個(gè)相等實(shí)根:”,B/(2*A)CASEA<>0.AND.K>0?“第一個(gè)實(shí)根:”,(-B+S)/(2*A)?“第二個(gè)實(shí)根:”,(-B-S)/(2*A)OTHERWISE?“本方程無(wú)實(shí)根!”ENDCASEDOCASE29

使用分支語(yǔ)句應(yīng)注意的問(wèn)題:(1)IF……ENDIF和DOCASE……ENDCASE必須

配對(duì)使用,DOCASE與第一個(gè)CASE〈條件表達(dá)式〉之間不應(yīng)有任何命令。(2)〈條件表達(dá)式〉可以是各種表達(dá)式或函數(shù)的組合,其值必須是邏輯值。(3)〈命令行序列〉可以由一個(gè)或多個(gè)命令組成,可以是條件控制語(yǔ)句組成的嵌套結(jié)構(gòu)。(4)DOCASE……ENDCASE命令,

每次最多只能執(zhí)行一個(gè)〈命令行序列〉。在多個(gè)CASE項(xiàng)的〈條件表達(dá)式〉值為真時(shí),只執(zhí)行第一個(gè)〈條件表達(dá)式〉值為真的〈命令行序列〉,然后執(zhí)行ENDCASE的后面的第一條命令。使用分支語(yǔ)句應(yīng)注意的問(wèn)題:30三、循環(huán)結(jié)構(gòu)(重復(fù)結(jié)構(gòu))

1、DOWHILE…ENDDO語(yǔ)句(“當(dāng)”循環(huán)、條件循環(huán))根據(jù)條件表達(dá)式的值,決定循環(huán)體內(nèi)語(yǔ)句的執(zhí)行次數(shù)。格式:DOWHILE<條件><語(yǔ)句序列1>

[LOOP]<語(yǔ)句序列2>

[EXIT]<語(yǔ)句序列3>ENDDO三、循環(huán)結(jié)構(gòu)(重復(fù)結(jié)構(gòu))

1、DOWHILE…ENDDO31條件循環(huán)體ENDDO后面的語(yǔ)句假真條件LOOPEXITENDDO后面的語(yǔ)句真假條件循環(huán)體ENDDO后面的語(yǔ)句假真條件LOOPEXITEN32說(shuō)明:(1)若第一次判斷條件為假,循環(huán)體一次都不執(zhí)行(2)若循環(huán)體中包含LOOP命令,遇到LOOP時(shí),結(jié)束循環(huán)體的本次執(zhí)行,不再執(zhí)行其后面的語(yǔ)句,而是轉(zhuǎn)回DOWHILE處重新判斷條件(3)若循環(huán)體中包含EXIT命令,遇到EXIT時(shí),結(jié)束該語(yǔ)句的執(zhí)行,

轉(zhuǎn)去執(zhí)行ENDDO后面的語(yǔ)句說(shuō)明:(1)若第一次判斷條件為假,循環(huán)體一次都不執(zhí)行33例:SETTALKOFF?“開(kāi)始跑步”N=0DOWHILEN<=10?”開(kāi)始的圈數(shù)是:”,NN=N+1ENDDO?”你可以休息了!”?”呼呼…累死人了!??!”例:SETTALKOFF34例:SETTALKOFFSTORE0TOS,N

DOWHILE.T.N=N+1S=S+N

IFN>=10EXITENDIF

ENDDO?’S=‘+STR(S,2)RETURN例:SETTALKOFF35SETTALKOFFINPUT‘請(qǐng)輸入一個(gè)大于1的自然數(shù)’TONK=0&&K=0表示輸入的數(shù)為質(zhì)數(shù),K=1不是質(zhì)數(shù)J=2DOWHILEJ<N

IFMOD(N,J)<>0J=J+1

LOOP

ELSEK=1

EXIT

ENDIFENDDO

IFK=0?N,’是質(zhì)數(shù)‘ENDIFSETTALKONRETURNSETTALKOFFIFK=0362、FOR…ENDFOR語(yǔ)句(“計(jì)數(shù)”循環(huán)、步長(zhǎng)循環(huán))根據(jù)用戶設(shè)置的循環(huán)變量的初值、終值和步長(zhǎng),決定循環(huán)體內(nèi)語(yǔ)句的執(zhí)行次數(shù)據(jù)。格式:FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長(zhǎng)>]<循環(huán)體>ENDFOR|NEXT2、FOR…ENDFOR語(yǔ)句(“計(jì)數(shù)”循環(huán)、步長(zhǎng)循環(huán))37注:(1)當(dāng)無(wú)STEP語(yǔ)句時(shí),默認(rèn)步長(zhǎng)為1。(2)初值、終值、步長(zhǎng)都可以是數(shù)值表達(dá)式,卻僅在循環(huán)語(yǔ)句執(zhí)行開(kāi)始時(shí)被計(jì)算一次。(3)可在循環(huán)體內(nèi)改變循環(huán)變量的值,但會(huì)影響循環(huán)體的執(zhí)行次數(shù)

(4)步長(zhǎng)為零時(shí),F(xiàn)OR循環(huán)為死循環(huán),步長(zhǎng)可以是正值,也可以是負(fù)值。(5)步長(zhǎng)是正值時(shí),超過(guò)的含義是大于步長(zhǎng)是負(fù)值時(shí),超過(guò)的含義是小于。(6)ENDFOR可以換成NEXT。(7)LOOP、EXIT注:(1)當(dāng)無(wú)STEP語(yǔ)句時(shí),默認(rèn)步長(zhǎng)為1。38例:對(duì)給定的自然數(shù)K,求不大于K的奇數(shù)之和SETTALKOFFCLEARINPUT‘請(qǐng)輸入一個(gè)自然數(shù):’TOKS=0FORI=1TOKSTEP2S=S+IENDFOR?‘S=’,SSETTALKONRETURN例:對(duì)給定的自然數(shù)K,求不大于K的奇數(shù)之和393、SCAN…ENDSCANE語(yǔ)句(“指針”型循環(huán)控制語(yǔ)句)根據(jù)用戶設(shè)置的表中的當(dāng)前記錄指針,決定循環(huán)體內(nèi)語(yǔ)句的執(zhí)行次數(shù)據(jù)。格式:SCAN[<范圍>][FOR<條件1>][WHILE<條件2>]<循環(huán)體>ENDSCAN執(zhí)行該語(yǔ)句時(shí),記錄指針自動(dòng)、依次地在制定范圍內(nèi)滿足條件的記錄上移動(dòng),對(duì)每一條記錄執(zhí)行循環(huán)體內(nèi)的命令。3、SCAN…ENDSCANE語(yǔ)句(“指針”型循環(huán)控制語(yǔ)句40注:(1)SCAN···ENDSCAN循環(huán)結(jié)構(gòu)隱含EOF()和

SKIP處理。(2)無(wú)范圍選項(xiàng)則默認(rèn)值為所有記錄ALL。(3)如使用WHILE選項(xiàng),遇到該選項(xiàng)的條件為假時(shí),便結(jié)束循環(huán)。(4)LOOP和EXIT選項(xiàng)可以在該循環(huán)中使用,使用方法同DO循環(huán)。注:(1)SCAN···ENDSCAN循環(huán)結(jié)構(gòu)隱含EOF()41

使用循環(huán)語(yǔ)句時(shí)應(yīng)注意的幾點(diǎn)

(1)DOWHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必須配對(duì)使用。(2)〈命令行序列〉可以是任何FoxPro命令或語(yǔ)句,也可以是循環(huán)語(yǔ)句,即可以為多重循環(huán)。(3)〈循環(huán)變量〉應(yīng)是數(shù)值型的內(nèi)存變量或數(shù)組元素。(4)EXIT和LOOP命令嵌入在循環(huán)體內(nèi),可以改變循環(huán)次數(shù),但是不能單獨(dú)使用。EXIT:跳出循環(huán),轉(zhuǎn)去執(zhí)行ENDDO、ENDFOR、ENDSCAN后面的第一條命令;LOOP:轉(zhuǎn)回到循環(huán)的開(kāi)始處,重新對(duì)“條件”進(jìn)行判斷,相當(dāng)于執(zhí)行了一次ENDDO、ENDFOR、ENDSCAN命令,可改變〈命令行序列〉中部分命令的執(zhí)行次數(shù)。

EXIT、LOOP可以出現(xiàn)在〈命令行序列〉的任意位置。程序設(shè)計(jì)基礎(chǔ)課程課件42四、編程實(shí)例B1.PRG**a,b,c從大到小排序settalkoffClearinput"請(qǐng)輸入數(shù)值a:"toainput"請(qǐng)輸入數(shù)值b:"tobinput"請(qǐng)輸入數(shù)值c:"tocifa<btemp=aa=bb=tempendififa<ctemp=aa=cc=tempendif

ifb<ctemp=bb=cc=tempendifsettalkon?a,b,creturn四、編程實(shí)例B1.PRGifa<bifb<c43B2.PRG**求n個(gè)數(shù)中的最大數(shù)settalkoffclearinput"請(qǐng)輸入要比較的數(shù)值個(gè)數(shù)n:"ton

dimensiona(n)fori=1toninput"請(qǐng)輸入數(shù)值:"toa(i)endforfori=2tonifa(1)<a(i)temp=a(1)a(1)=a(i)a(i)=tempendifendfor?"最大數(shù)為:"??a(1)returnB2.PRGfori=2ton44例:B3、PRG求0---10之間奇數(shù)之和。SETTALKOFFI=0&&用于表示數(shù)值大小S=0&&用于求和DOWHILEI〈10I=I+1

IFINT(I/2)=I/2

&&MOD(I,2)=0I為偶數(shù)

LOOPELSES=S+IENDIFENDDO?“S=”,SRETURN

例:B3、PRG求0---10之間奇數(shù)之和。45例:B4、PRGSETTALKOFFSTORE0TOX,YDOWHILE.T.X=X+1

DOCASECASEMOD(X,2)<>0

&&奇數(shù)

?XY=Y+X

&&奇數(shù)之和

CASEX>=10EXITOTHERWISE

&&不是10以內(nèi)的奇數(shù)

LOOP

&&10以內(nèi)的偶數(shù)

ENDCASEENDDO?“Y=”??YSETTALKONRETURN例:B4、PRG46例:B5.PRG求4!SETTALKOFFCLEARJ=1R=1DOWHILEJ<=4R=R*J&&求階乘J=J+1&&改變數(shù)值的大小ENDDO?“R=”,RRETU例:B5.PRG47例21:A21·PRG求1!+2!+3!+4!+5!的和。SETPROCTOPROC1SETTALKOFFI=1S=0DOWHILEI<=5Y=1

DOSUBWITHI,YS=S+YI=I+1ENDDORETU**PROC1·PRG**PROCSUB&&J的階乘PARAP,RJ=1DOWHILEJ<=PR=R*JJ=J+1ENDDORETU例21:A21·PRG求1!+2!+3!+4!+5!的和。48例:B6.PRG用戶從鍵盤上任意輸入一個(gè)字符串,并以相反順序顯示出來(lái)settalkoffclearaccept"任意輸入一字符串:"tozfs=0dowhiles<len(zf)a=substr(zf,len(zf)-s,1)@4,ssayas=s+1enddoreturn例:B6.PRG用戶從鍵盤上任意輸入一個(gè)字符串,并以相反順49方法2:CLEAACCEPT“請(qǐng)輸入字符串:”TOZFFORI=LEN(ZF)TO1STEP-1A=SUBS(A,I,1)@8,LEN(ZF)-ISAYAENDFOR方法2:50

SETTALKOFFUSERCDAI=0DOWHILE.NOT.EOF()IF性別=‘男’I=I+1ENDIFSKIPENDDO?‘I=’,IUSERETURNSETTALKOFFUSERCDACOUNTALLTONGOTOPM=0FORI=1TONIF性別=‘男’M=M+1ENDIFSKIPENDFOR?‘M=’,MUSERETURN例:B7、PRG統(tǒng)計(jì)‘RCDA’數(shù)據(jù)表中男性人數(shù)。(3種方法)SETTALKOFFSETTALKOFF例51例:B8·PRG用FOR語(yǔ)句改寫例B7.PRG。SETTALKOFFUSERCDAS=0SCANALL

FOR性別=‘男’S=S+1ENDSCAN@4,5SAY‘男性人數(shù)為:’@4,20saysUseretu例:B8·PRG用FOR語(yǔ)句改寫例B7.PRG。52例:B9·PRG在‘RCDA’數(shù)據(jù)表中,對(duì)60年以后出生的女職工,輸出其編號(hào),姓名。SETTALKOFFCLEARUSERCDASCANFOR出生日期>CTOD(“01/01/60”)IF性別=‘女’?編號(hào),姓名ELSELOOPENDIFENDSCANRETU例:B9·PRG在‘RCDA’數(shù)據(jù)表中,53例:B10·PRG打開(kāi)‘RCDA’表,只顯示3位男性的記錄。SETTALKOFFCLEARUSERCDAN=0SCANFOR性別=‘男’WHILEN<3?編號(hào),姓名N=N+1ENDSCANUSERETU例:B10·PRG打開(kāi)‘RCDA’表,只顯示3位男性的記錄。54§5、4模塊化程序設(shè)計(jì)應(yīng)用程序一般是多模塊程序,包含多個(gè)模塊程序。模塊:一個(gè)相對(duì)獨(dú)立的程序段??梢允侵鞒绦?、子程序、過(guò)程或自定義函數(shù)。VFP中,模塊可以是命令文件,也可以是過(guò)程。主程序:調(diào)用其他程序而自身不被其它程序調(diào)用的程序。子程序:被調(diào)用的以·PRG為擴(kuò)展名的獨(dú)立的程序文件。

是有相對(duì)獨(dú)立性、通用性的程序?!?、4模塊化程序設(shè)計(jì)應(yīng)用程序一般是多模塊程序,包含多55子程序與主程序的區(qū)別(1)子程序的第一條語(yǔ)句可以是PARAMETERS命令,用來(lái)實(shí)現(xiàn)參數(shù)的傳遞,主程序中不包含此語(yǔ)句。(2)主程序里必須包含調(diào)用子程序的語(yǔ)句。子程序的大致結(jié)構(gòu)

PARA<參數(shù)表><命令序列>RETURN|RETRY子程序與主程序的區(qū)別56一、子程序和參數(shù)傳遞1、子程序的建立、調(diào)用和返回建立:MODIFYCOMMAND<程序文件名>|?調(diào)用:DO<程序1>[WITH<參數(shù)表>][<程序2>]返回:RETURN[<表達(dá)式>|TO<程序名>|TOMASTER]一、子程序和參數(shù)傳遞572、子程序調(diào)用中的參數(shù)傳遞說(shuō)明:當(dāng)調(diào)用命令含參數(shù)時(shí),子程序中一定要有參數(shù)說(shuō)明語(yǔ)句發(fā)送數(shù)據(jù)命令:主程序、調(diào)用程序DO<子程序名>WITH<參數(shù)表>DO<文件名>|<過(guò)程名>(<實(shí)參1>,[<實(shí)參2>,…])默認(rèn)按值傳遞如果實(shí)參是變量,可通過(guò)命令重新設(shè)置參數(shù)傳遞的方式

SETUDFPARMSTOVALUE|REFERENCE程序設(shè)計(jì)基礎(chǔ)課程課件58接收數(shù)據(jù)命令:子程序、被調(diào)用程序PARAMETERS<形參變量1>[,<形參變量2>,…](私有變量)LPARAMETERS<形參變量1>[,<形參變量2>,…](局部變量)以上兩條命令都是模塊程序的第一條可執(zhí)行命令。(1)PARAMETERS出現(xiàn)在它定義的參數(shù)被使用前,

先定義,后使用(2)參數(shù)的位置、個(gè)數(shù)、類型實(shí)參類型:常量、變量、一般格式的表達(dá)式形參的數(shù)目不能少于實(shí)參的數(shù)目(3)主程序中的參數(shù)是

單個(gè)變量:按地址傳遞

表達(dá)式或常量:按值傳遞。接收數(shù)據(jù)命令:子程序、被調(diào)用程序59主程序:Parameterssonv?sonvSonv=‘son’returnMainv=‘main’Dosonwithmainv?mainvCancel子程序:主程序:ParameterssonvMainv=‘mai60二、自定義函數(shù)和過(guò)程1、自定義函數(shù)的設(shè)計(jì)(1)定義[FUNCTION<函數(shù)名>][PARAMETERS<參數(shù)表>]<命令行序列>RETURN<表達(dá)式>ENDFUNC說(shuō)明:如果用一個(gè)獨(dú)立文件形式存儲(chǔ),

FUNCTION<過(guò)程名>語(yǔ)句可省略;函數(shù)名就是程序文件名。二、自定義函數(shù)和過(guò)程1、自定義函數(shù)的設(shè)計(jì)61說(shuō)明:(1)若無(wú)ENDFUNC,過(guò)程結(jié)束于下一條PROCEDURE|FUNCTION命令或文件結(jié)尾處。(2)執(zhí)行到RETURN語(yǔ)句,則返回到調(diào)用程序(或命令窗口)若缺省RETURN命令,則在過(guò)程結(jié)束處自動(dòng)執(zhí)行一條

隱含的RETURN命令。若RETURN命令不帶<表達(dá)式>,則返回邏輯真.T.說(shuō)明:62(2)調(diào)用函數(shù)名(參數(shù)表)說(shuō)明:A、自定義函數(shù)能以一個(gè)獨(dú)立的文件存儲(chǔ),也可包含在調(diào)用它的程序中作為它的一部分出現(xiàn);B、自定義函數(shù)名不能與VFP的系統(tǒng)函數(shù)同名,也不能與內(nèi)存變量同名;最多由10個(gè)字符組成,以字母或下劃線開(kāi)頭,可含字母、數(shù)字和下劃線。(2)調(diào)用632、過(guò)程的設(shè)計(jì)[PROCEDURE<過(guò)程名>][PARAMETERS<參數(shù)表>]<命令行序列>ENDPROC例:SETTALKOFFCLEA?’這是主程序’DOPROC1RETURNPROCDUREPROC1?’調(diào)用過(guò)程PROC1’ENDPROCSETTALKON2、過(guò)程的設(shè)計(jì)PROCDUREPROC164過(guò)程返回語(yǔ)句:返回過(guò)程的調(diào)用處(1)語(yǔ)句格式:

RETURN[TOMASTER|TO過(guò)程]|RETRY(2)語(yǔ)句功能:將控制返回到調(diào)用程序中調(diào)用命令的下一語(yǔ)句。RETURNTOMASTER:執(zhí)行到該語(yǔ)句時(shí)控制返回到最高層命令文件—主程序。RETURNTO<過(guò)程>:使控制返回到指定的過(guò)程。RETRY:使控制返回到調(diào)用語(yǔ)句本身。過(guò)程返回語(yǔ)句:返回過(guò)程的調(diào)用處653、存放為單獨(dú)文件的函數(shù)與過(guò)程的調(diào)用過(guò)程:VFP中,程序是獨(dú)立存放在磁盤上的程序文件,使用時(shí)用戶通過(guò)文件名調(diào)用并執(zhí)行。為實(shí)現(xiàn)用戶的某種目的,很可能要由多個(gè)程序完成。(1)過(guò)程可放在程序文件代碼的后面,也可保存在稱為過(guò)程文件的單獨(dú)文件里。(2)過(guò)程文件建立的命令(.PRG):MODIFYCOMMAND(3)在調(diào)用過(guò)程文件中的過(guò)程之前先要打開(kāi)過(guò)程文件

3、存放為單獨(dú)文件的函數(shù)與過(guò)程的調(diào)用66打開(kāi)過(guò)程文件語(yǔ)句VFP系統(tǒng)規(guī)定,任何時(shí)刻只能打開(kāi)一個(gè)過(guò)程文件,當(dāng)新的過(guò)程文件打開(kāi)時(shí),自動(dòng)關(guān)閉原來(lái)打開(kāi)的過(guò)程文件。(1)語(yǔ)句格式

SETPROCEDURETO<過(guò)程文件1>[,<過(guò)程文件2>,…][ADDITIVE](2)語(yǔ)句功能打開(kāi)一個(gè)以過(guò)程文件名為名的過(guò)程文件。打開(kāi)過(guò)程文件語(yǔ)句67模塊調(diào)用的格式:調(diào)用過(guò)程語(yǔ)句:執(zhí)行已有的過(guò)程格式一:使用DO命令:

DO〈過(guò)程名〉|<過(guò)程名>[WITH<參數(shù)表>]注:WITH中參數(shù)與PARAMETERS中的參數(shù)一致。格式二:在名字后加一對(duì)小括號(hào)

<文件名>|<過(guò)程名>()說(shuō)明:格式二可作為命令使用(返回值被忽略),也可作為函數(shù)出現(xiàn)在表達(dá)式里。這里,<文件名>不能包含擴(kuò)展名模塊調(diào)用的格式:調(diào)用過(guò)程語(yǔ)句:執(zhí)行已有的過(guò)程68關(guān)閉過(guò)程文件語(yǔ)句關(guān)閉過(guò)程文件語(yǔ)句,就是將已打開(kāi)的過(guò)程文件關(guān)閉。(1)語(yǔ)句格式

CLOSEPROCEDURE或SETPROCEDURETO(2)語(yǔ)句功能關(guān)閉當(dāng)前打開(kāi)的過(guò)程文件。關(guān)閉所有打開(kāi)的過(guò)程文件:SETPROCEDURETO關(guān)閉個(gè)別過(guò)程文件:RELEASEPROCEDURE<過(guò)程文件1>[,<過(guò)程文件2>,…]關(guān)閉過(guò)程文件語(yǔ)句694、過(guò)程和函數(shù)的參數(shù)傳遞過(guò)程和函數(shù)都是子程序數(shù)組在傳遞時(shí)是按地址傳遞,傳遞的是數(shù)組的首地址。5、接收函數(shù)的返回值說(shuō)明:函數(shù)默認(rèn)返回值是.T.,可通過(guò)RETURN命令返回任意值。例:FUNCTIONPLUS3PARANUMRETURNNUM+3ENDFUNCM=PLUS(33)?PLUS(33)?M

4、過(guò)程和函數(shù)的參數(shù)傳遞70子程序與過(guò)程的區(qū)別*子程序必須獨(dú)立于調(diào)用程序,以.PRG文件存盤。過(guò)程是存放在過(guò)程文件(·PRG)中。*過(guò)程的第一條語(yǔ)句必須是以PROC<過(guò)程名>語(yǔ)句開(kāi)頭。*子程序的調(diào)用同過(guò)程的調(diào)用子程序與過(guò)程的區(qū)別71**主程序main.prgsettalkoffpublica,b,cstore1toa,b,c

setproceduretoproc1

dopc1?a

dopc2?b,c

closeprocsettalkonreturn**proc1.prgprocedurepc1a=a*2+1returnprocedurepc2b=b*4+1c=a*2+1dopc3returnprocedurepc3c=c*2+5return

**主程序main.prg**proc1.prg72例2:A2·PRGS=0FORI=1TO5K=1

DOBSUBS=S+KENDFOR?‘S=’,SRETU**BSUB·PRG**FORJ=1TOIK=K*J

&&I的階乘ENDFORRETU

例2:A2·PRG**BSUB·PRG**73三、變量的作用域變量的屬性:類型、取值、作用域變量的作用域:變量在什么范圍內(nèi)是有效或能夠被訪問(wèn)的。VFP中,根據(jù)變量的作用域分內(nèi)存變量可分為:公共變量、私有變量、局部變量1、公共變量(全局變量)定義格式:PUBLIC<內(nèi)存變量表>

初始值:.F.內(nèi)存變量:簡(jiǎn)單變量、數(shù)組變量三、變量的作用域變量的屬性:類型、取值、作用域74功能:變量的作用域貫穿整個(gè)程序,即使程序執(zhí)行完畢返回到命令窗口它仍然存在。只有當(dāng)執(zhí)行CLEARMEMORY、RELEASE、QUIT等命令后,公共變量才被釋放。說(shuō)明:公共變量要先建立后使用命令窗口中直接使用而由系統(tǒng)自動(dòng)隱含建立的變量是公共變量2、私有變量(局部變量)在程序中直接使用(沒(méi)有通過(guò)PUBLIC和LOCAL命令事先聲明)而由系統(tǒng)自動(dòng)隱含建立的變量是私有變量。功能:作用域是建立它的模塊及其下屬的各層模塊,一旦建立它的模塊程序運(yùn)行結(jié)束,私有變量將被刪除。功能:變量的作用域貫穿整個(gè)程序,753、局部變量(本地變量)格式:LOCAL<內(nèi)存變量表>功能:變量的作用域局限于建立它的模塊,不能在上層或下層模塊中使用。一旦建立它的程序執(zhí)行完畢,它也自動(dòng)地被系統(tǒng)刪除說(shuō)明:局部變量要先建立后使用4、變量屏蔽私有變量和上級(jí)程序的變量可以同名。當(dāng)同名時(shí),在定義私有變量的程序內(nèi),將隱藏上級(jí)程序的同名變量;返回上級(jí)程序時(shí),恢復(fù)隱藏的上級(jí)同名變量。3、局部變量(本地變量)76變量屏蔽語(yǔ)句:PRIVATE<內(nèi)存變量表>PRIVATEALL[LIKE|EXCEPT<通配符>]功能:隱藏當(dāng)前程序中某些與上層調(diào)用程序中同名的變量,使這些變量的作用范圍局限在當(dāng)前程序內(nèi)。說(shuō)明:*局部變量既可用PRIVATE定義,也可不用PRIVATE定義。*若局部變量不用PRIVATE定義,

下層中和上層中同名的變量的操作結(jié)果將會(huì)帶回到上層。5、有關(guān)全局變量和局部變量問(wèn)題(1)定義局部變量的好處:節(jié)約內(nèi)存空間,避免重名變量被修改其內(nèi)容(2)PUBLIC屏蔽變量命令變量屏蔽語(yǔ)句:PRIVATE<內(nèi)存變量表>77例:A25·PRGSTETALKOFFCLEARPUBLICXX=7Y=6Z=5DOCSUB?“X=”,X,“Y=”,Y,“Z=”,Z**7,6,10RETU

**CSUB·PRG**PRIVATEX,YX=0X=X+3Y=X+1Z=Z+5?“X=”,X,“Y=”,Y,“Z=”,Z**3,4,10RETU例:A25·PRG**CSUB·PRG**78例:A26·PRGSETTALKOFFCLEAR

SETPROCTOPROC3PUBLICX,Y,MSTORE1TOX,YM=0

DOSUB1?M,X,Y324Z=1

DOSUB2?X,Y,Z

SETPROCRETU

**PROC3·PRG**PROCSUB1M=1DOWHILEM<=2X=X*M12Y=Y+M24

DOSUB3M=M+1ENDDORETU

PROCSUB2X=X*MY=Y+MRETUPROCSUB3PRIVATEZZ=X+Y?“Z=”,Z36

RETU例:A26·PRG**PROC3·PRG79SETTALKOFFSETSAFETYOFFCLEARPUBLICA,B,CA=1B=2C=3DOSUB1WITHA,B?A,B,C3203RETURNSUB1.PRGPARAMETERSA1,B1B1=10*B120A1=A1+23DOSUB2WITHA1,B1RETURNSUB2.PRGPARAMETERSX,Y

A=4+X7

B=5+Y25?A,B725WAITRETURNSETTALKOFFSUB1.PRGSUB2.PRG80

**MAIN.PRGSETTALKOFFCLEARA=1B=2C=3D0SUB1WITHA,B?A,B,C3203RETURN**SUB1.PRGPARAA1,B1B1=10*B120A1=A1+23C1=A1*B160DOSUB2?A1,B1,C1

32018RETURN

**SUB2.PRGPRIVATEA1,B1A1=4B1=5C1=9+A1+B1?A1,B1,C14518RETURN**MAIN.PRG**SUB1.PRG**SUB2.P81SETPROCTOPROC2SETTALKOFFCLEARST=“0123456789”STT=“”DOSUB1WITHST,STTDOSUB2WITHSTT,5SETPROCTORETU**PROC2·PRG**PROCSUB1PARAX,YK=LEN(X)DOWHILEK>0Y=Y+SUBSTR(X,K,1)K=K-1ENDDO?YRETUPROCSUB2K=LEN(XX)I=0?DOWHILEK>NSTART=I*N+1??SUBSTR(XX,START,N)I=I+1K=K-NENDDOSTART=I*N+1??SUBSTR(XX,START)RETU例22:A22·PRGSETPROCTOPROC2**PROC2·PRG82

SETTALKOFFPUBLICX1X1=‘中國(guó)’Y1=‘反對(duì)’Z=‘’DOSUB1WITHZ?X1+’人’+ZSETTALKONRETURN

*SUB1.PRGPARAYPRIVATEX1X1=‘中國(guó)共產(chǎn)黨’X3=‘臺(tái)獨(dú)’Y=X2+X3?X1+YRETURNSETTALKOFF*SUB1.PRG83設(shè)有如下主程序和子程序段,請(qǐng)寫出N=2,A分別為2和5時(shí)的結(jié)果*主程序SETTALKOFFPUBLICYCLEAR=1S=0INPUT‘N=‘TON*子程序PARAXY=(X+1)*(X+1)RETURNDOWHILER<=NINPUT‘A=‘TOADOSQWITHAS=S+Y?A,YR=R+1ENDDO?’S=‘+STR(S,5)RETURN設(shè)有如下主程序和子程序段,請(qǐng)寫出N=2,A分別為2和5時(shí)的結(jié)84SETTALKOFFDIMENA(2,2)I=1DOWHILEI<3J=1DOWHILEJ<3A(I,J)=I*J??A(I,J)J=J+1ENDDO?I=I+1ENDDORETURNSETTALKOFFSTORE0TOXSTORE‘ABCDEF’TON@1,1SAY‘請(qǐng)選擇:’GETXREADA=SUBSTR(N,X,X)B=LEFT(N,X)?A,SPACE(2),B,SPACE(2),CSETTALKONSETTALKOFFSETTALKOFF85習(xí)題1、某數(shù)據(jù)庫(kù)TEACHER.DBF姓名性別年齡唐光女42李紅女55張兵男50王偉男32李真男40陳明女28下面程序的運(yùn)行結(jié)果是找出年齡相差不小于16歲的教師姓名習(xí)題1、某數(shù)據(jù)庫(kù)TEACHER.DBF86SETTALKOFFCLEARUSETEACHERGOTOPDOWHILENOTEOF()

NL=年齡XM=姓名DOWHILENOTEOF()NL1=年齡XM1=姓名IFABS(NL-NL1)>=16?XM+’與’+XM1+‘相差不小于16歲‘ENDIFSKIPENDDOLOCAFOR姓名=XMSKIPENDDOUSERETURNSETTALKOFFIFABS(NL-NL1872、有一個(gè)主程序和一個(gè)過(guò)程文件如下:運(yùn)行該程序后,輸出變量A,B,C的值分別是3,5,19。請(qǐng)按要求在以下程序中填上適當(dāng)?shù)恼Z(yǔ)句。*主程序MAIN.PRGSETTALKOFFPUBLICA,B,CSTORE1TOA,B,C__________DOPC1?ADOPC2?B,CCLOSEPROCEDURESETTALKONRETURN*PROC1.PRG過(guò)程文件PROCEDUREPC1A=A*2+1RETURNPROCEDUREPC2B=B*4+1C=A*2+1__________RETURNPROCEDUREPC3C=C*2+5RETURN2、有一個(gè)主程序和一個(gè)過(guò)程文件如下:運(yùn)行該程序后,輸出變量A883、數(shù)據(jù)庫(kù)文件GRADE.DBF的內(nèi)容如下:Record#學(xué)號(hào)姓名成績(jī)198104張三78298102李四90398101王五82498103周六64598105鄭七85寫出執(zhí)行以下程序的運(yùn)行結(jié)果SETTALKOFFCLEARUSEGRADEN=1ZD=成績(jī)SCANIF成績(jī)<ZDZD=成績(jī)N=RECNO()ENDIFENDSCANGON?學(xué)號(hào),姓名,成績(jī)USESETTALKONRETURN3、數(shù)據(jù)庫(kù)文件GRADE.DBF的內(nèi)容如下:SETTAL894、SETTALKOFFCLEARS=0S=1DOWHILEX<=11IFMOD(X,2)<>0??’‘+STR(X,2)+’‘+STR(X*X,4)S=S+XENDIFX=X+1ENDDO?’S=‘+STR(S,4)RETURN5、SETTALKOFFT=‘申奧成功了’Y=‘’DOWHILELEN(T)>=4Y=Y+SUBSTR(T,1,2)+’*’T=SUBSTR(T,3)ENDDO?Y+TWAITSETTALKONRETURN4、SETTALKOFF5、SETTALKOF90演講完畢,謝謝觀看!演講完畢,謝謝觀看!91第五章程序設(shè)計(jì)基礎(chǔ)第五章程序設(shè)計(jì)基礎(chǔ)92§5、1程序設(shè)計(jì)概述一、程序的概念程序:完成一定任務(wù)的一組命令的有序集合。程序設(shè)計(jì):計(jì)算機(jī)用戶將解決某一實(shí)際問(wèn)題所用的命令按一定的邏輯順序編制成程序,并以文件的形式存放于磁盤的過(guò)程。優(yōu)點(diǎn):(1)可以利用編輯器,方便的輸入、修改、保存文件。(2)可用多種方式,多次運(yùn)行程序。(3)可在一個(gè)程序中調(diào)用另一個(gè)程序?!?、1程序設(shè)計(jì)概述一、程序的概念93VisualFoxPro的工作方式{{程序文件方式交互式方式單命令方式菜單方式菜單方式、命令方式、程序方式、工具方式VisualFoxPro的工作方式{{程序文件方式交互式941.單命令方式單命令方式:輸入一條命令,完成一個(gè)操作的工作方式。注:(1)VFP單命令方式:利用Command窗口來(lái)實(shí)現(xiàn)的。(2)Command窗口不僅是VFP命令的執(zhí)行窗口,也是VFP命令文件的編輯窗口。2.菜單方式通過(guò)打開(kāi)不同的菜單選擇并完成不同的操作。3.程序文件方式

程序文件(簡(jiǎn)稱程序)也叫做命令文件。命令方式:通過(guò)程序文件中的命令完成不同的操作。1.單命令方式95二、程序文件的建立、執(zhí)行與編輯說(shuō)明:程序由命令語(yǔ)句、函數(shù)、過(guò)程等程序代碼組成;

通過(guò)調(diào)用系統(tǒng)內(nèi)置的文本編輯器進(jìn)行建立和修改;

程序文件的擴(kuò)展名為.prg1、建立程序文件A、菜單方式B、項(xiàng)目管理器中創(chuàng)建C、命令方式格式:MODIFYCOMMAND[<文件名>]|?2、保存程序二、程序文件的建立、執(zhí)行與編輯說(shuō)明:程序由命令語(yǔ)句、函數(shù)、過(guò)963、編輯、修改程序文件格式:MODIFYCOMMAND<程序名>|?4、運(yùn)行程序格式:DO<程序名>[WITH<實(shí)參表>]5、使用VFP設(shè)計(jì)工具編寫代碼三、程序文件的注釋命令與程序結(jié)束命令1、注釋命令格式:NOTE|*|&&[<注釋內(nèi)容>]

注釋行:以*、NOTE開(kāi)頭的命令行(獨(dú)成一行)

且只能出現(xiàn)在一行的開(kāi)始

命令行后的注釋:&&(在其他命令行之后)3、編輯、修改程序文件972、程序結(jié)束命令格式:CANCEL說(shuō)明:執(zhí)行CANCEL將釋放所有私有內(nèi)存變量

程序中的常用命令程序開(kāi)頭常用命令:CLEARSETTALKOFF程序末尾常用命令:RETURNCANCELSETTALK

溫馨提示

  • 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)論