版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VisualFoxPro數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用
第8章VFP的程序設(shè)計(jì)技術(shù)第8章VFP的程序設(shè)計(jì)技術(shù)8.1 程序設(shè)計(jì)概述8.2 程序文件的建立和執(zhí)行8.3 程序的基本結(jié)構(gòu)8.4 過(guò)程與過(guò)程調(diào)用8.5 數(shù)組8.1 程序設(shè)計(jì)概述程序是為了完成某項(xiàng)任務(wù)所需執(zhí)行的命令序列,這些命令按照一定的結(jié)構(gòu)有機(jī)地組合在一起,并以文件的形式存儲(chǔ)在磁盤(pán)上,它的擴(kuò)展名為.PRG。VFP應(yīng)用程序一般由以下幾個(gè)部分組成:程序提示:指出程序的名稱、功能、作者等信息。程序設(shè)置:設(shè)置程序的運(yùn)行環(huán)境。程序主體:包含實(shí)現(xiàn)某項(xiàng)功能的所有命令序列,一般包含數(shù)據(jù)的輸入輸出、數(shù)據(jù)的處理以及結(jié)果輸出等。程序整理:一些整理工作,如關(guān)閉各種文件,使系統(tǒng)狀態(tài)恢復(fù)到標(biāo)準(zhǔn)狀態(tài)。程序退出:返回到系統(tǒng)的命令窗口狀態(tài)或操作系統(tǒng)狀態(tài)。8.1 程序設(shè)計(jì)概述一個(gè)大型的程序設(shè)計(jì)的基本步驟可以描述為:對(duì)問(wèn)題進(jìn)行說(shuō)明;對(duì)問(wèn)題進(jìn)行分解;編制各個(gè)分支模塊;測(cè)試以及完善各個(gè)分支模塊;組裝全部模塊;整體程序的測(cè)試。8.2 程序文件的建立和執(zhí)行8.2.1程序文件的建立與修改8.2.2程序文件的執(zhí)行8.2.3程序的常用命令8.2.1 程序文件的建立與修改程序文件的概念在VFP中,要實(shí)現(xiàn)對(duì)數(shù)據(jù)操作的某一種功能,總要通過(guò)執(zhí)行命令來(lái)完成。對(duì)于較為簡(jiǎn)單的功能,執(zhí)行一個(gè)命令即可,但對(duì)于較復(fù)雜的功能,則往往需要執(zhí)行多條命令來(lái)加以實(shí)現(xiàn)。把多條命令組織起來(lái),保存于一個(gè)文件中,便構(gòu)成了一個(gè)程序文件,它的擴(kuò)展名為.PRG。8.2.1 程序文件的建立與修改常用的創(chuàng)建方法有兩種:1、使用菜單建立程序文件:1)第一步:選擇菜單[文件]–[新建]命令或單擊常用工具欄中的“新建”按鈕
2)第二步:從右圖的對(duì)話框中選中“程序”,并單擊“新建文件”按鈕進(jìn)入編輯窗口,輸入程序的內(nèi)容,按<Ctrl>+W存盤(pán)退出。8.2.1 程序文件的建立與修改2、使用命令建立程序文件格式:MODIFYCOMMAND<程序文件名>實(shí)例:顯示“教師信息表”中所有信息,再按職稱分類(lèi)匯總,然后顯示各類(lèi)職稱的工資總和
MODIFYCOMMANDGZZH(建立文件)DOGZZH(執(zhí)行文件)程序文件內(nèi)容如下頁(yè):8.2.1 程序文件的建立與修改clearUSE教師信息表LISTINDEXON職稱TOZCTOTALON職稱TOBUFUSEBUFCOPYTOGZZHFIELD職稱,基礎(chǔ)工資USEGZZHLISTFIELD職稱,基礎(chǔ)工資8.2.1 程序文件的建立與修改【例8.1】建立名為8-1.prg的應(yīng)用程序,使其能夠打開(kāi)表文件“學(xué)生.dbf”,并且可以根據(jù)輸入的學(xué)生姓名在該表文件中查找并輸出該學(xué)生的基本情況,然后關(guān)閉該文件。在命令窗口中鍵入如下命令。MODIFYCOMMAND8-1打開(kāi)程序編輯窗口,在其中輸入以下代碼。USE學(xué)生ACCEPT"請(qǐng)輸入要查詢的學(xué)生姓名:"TOXMLOCATEFOR姓名=XM?學(xué)號(hào),姓名,性別,出生日期USERETURN輸入完畢后單擊“關(guān)閉”按鈕,在彈出的“保存”對(duì)話框中輸入“8-1.prg”即完成了應(yīng)用程序的建立。
8.2.1 程序文件的建立與修改在VisualFoxPro系統(tǒng)中,除了用上面介紹的建立、編輯程序文件方法外,還可以借助于“表單設(shè)計(jì)器”、“類(lèi)設(shè)計(jì)器”、“菜單設(shè)計(jì)器”、“報(bào)表設(shè)計(jì)器”和“項(xiàng)目管理器”等代碼設(shè)計(jì)工具完成程序文件的建立與編輯。8.2.1 程序文件的建立與修改程序文件的修改1)用命令①M(fèi)ODIFYCOMMAND程序名②MODIFYFILE程序名.prg
注意:后者的文件擴(kuò)展名不能省略2)利用菜單 [文件]-[打開(kāi)] 選擇“程序”類(lèi)型 選擇程序名
8.2.2 程序文件的執(zhí)行方法1:命令方式
DO<程序文件名>
運(yùn)行一個(gè)程序文件(.prg)時(shí),會(huì)先把它翻譯成一個(gè)目標(biāo)文件(.fxp),再運(yùn)行該目標(biāo)文件。也可直接運(yùn)行目標(biāo)文件:DO程序名.fxp方法2:菜單方式[程序]-[運(yùn)行]或直接選擇最下面的執(zhí)行當(dāng)前程序的命令8.2.2 程序文件的執(zhí)行在程序運(yùn)行過(guò)程中執(zhí)行到下述命令時(shí)將會(huì)中斷運(yùn)行而退出:CANCEL:終止程序運(yùn)行,消除所有的私有變量,返回命令窗口;DO:轉(zhuǎn)去執(zhí)行另一個(gè)程序;RETURN:結(jié)束當(dāng)前程序的運(yùn)行,返回到調(diào)用它的上級(jí)程序,若沒(méi)有上級(jí)程序就返回命令窗口。QUIT:退出VFP程序,返回到操作系統(tǒng)。8.2.2 程序文件的執(zhí)行在程序運(yùn)行過(guò)程中,若按下ESC鍵可使得運(yùn)行強(qiáng)行中斷。系統(tǒng)將給予用戶3種選擇:①取消:中斷程序的運(yùn)行,這是默認(rèn)選項(xiàng);②繼續(xù)執(zhí)行:忽略ESC的中斷作用,繼續(xù)執(zhí)行程序;③掛起:暫時(shí)中斷程序的運(yùn)行,返回命令窗口,當(dāng)再次運(yùn)行時(shí)可以從中斷處繼續(xù)運(yùn)行程序。8.2.3 程序的常用命令1. 交互輸入命令(1)ACCEPT——從鍵盤(pán)得到一字符串(2)WAIT——從鍵盤(pán)得到一個(gè)字符(3)INPUT——給內(nèi)存變量賦值(多種類(lèi)型)8.2.3 程序的常用命令(1)ACCEPT命令格式:ACCEPT[<字符表達(dá)式>]TO<內(nèi)存變量>命令功能:暫停程序的運(yùn)行,等待用戶鍵入字符型常量以賦給指定的內(nèi)存變量。說(shuō)明:①<字符表達(dá)式>為可選項(xiàng),它是一個(gè)用于提示說(shuō)明的字符型表達(dá)式。當(dāng)程序執(zhí)行到可選項(xiàng)時(shí),將會(huì)計(jì)算該表達(dá)式的值并將其顯示出來(lái)。②如果不鍵入任何字符而只按ENTER鍵,則賦給內(nèi)存變量的值將是一個(gè)空字符串。③該命令最多能接收254個(gè)字符。8.2.3 程序的常用命令【例8-2】從鍵盤(pán)輸入表文件名。ACCEPT"請(qǐng)輸入數(shù)據(jù)表文件名:"TOFILENUSE&FILENLIST8.2.3 程序的常用命令(2)WAIT命令WAIT[<提示符>][TO<內(nèi)存變量表>][WINDOW[AT<行>,<列>]][TIMEOUT<數(shù)值表達(dá)式>]功能:屏幕出現(xiàn)提示符的內(nèi)容,等待從鍵盤(pán)上接收輸入;或在指定時(shí)間或地點(diǎn)屏幕出現(xiàn)提示符;也可以不要提示,按任意鍵繼續(xù)。說(shuō)明:內(nèi)存變量只能接受一個(gè)字符,不要加回車(chē)8.2.3 程序的常用命令【例】在屏幕第20行50列顯示信息框“請(qǐng)稍候…”2秒鐘WAIT"請(qǐng)稍候……"WINDOWAT20,50TIMEOUT2執(zhí)行時(shí),屏幕出現(xiàn)小窗口:停留2秒鐘【例】等待輸入一個(gè)字符后,繼續(xù)往下WAIT"請(qǐng)回答(Y/N)"TOOPIFOP="Y"OROP=“y"?"YES"ELSE?"NO"ENDIF8.2.3 程序的常用命令【例】在信息框顯示提示內(nèi)容停留5秒鐘CLEARUSE教師信息表ACCEPT"請(qǐng)輸入職稱:"TOZCLISTFOR職稱=ZCWAIT“職稱為”+ZC+“的紀(jì)錄已顯示”;WINDOWAT20,30TIMEOUT5*注意:當(dāng)屏幕出現(xiàn)提示字符串時(shí),*輸入:副教授8.2.3 程序的常用命令(3)Input命令格式:INPUT[<提示符>]TO<內(nèi)存變量表>功能:屏幕出現(xiàn)提示符的內(nèi)容,等待從鍵盤(pán)上接收輸入數(shù)據(jù)。注意:1)<提示符>兩端要加引號(hào)2)<內(nèi)存變量表>可以為字符、數(shù)值、日期等類(lèi)型3)內(nèi)存變量的類(lèi)型,取決于輸入的值8.2.3 程序的常用命令【例】將馬大大的出生日期改為83.4.2CLEARINPUT“請(qǐng)輸入馬大大的出生日期:"TODDUSEA班學(xué)生信息REPLACE出生日期WITHDDFOR姓名="馬大大"BROW*注意:當(dāng)屏幕出現(xiàn)提示字符串時(shí),輸入:*CTOD(“04/02/83”)或{^1983-4-2}或date(1983,4,2)8.2.3 程序的常用命令【例8-4】輸入學(xué)生姓名,把“A班學(xué)生信息”表中該學(xué)生的信息顯示出來(lái)。USEA班學(xué)生信息INPUT"請(qǐng)輸入要查詢的學(xué)生姓名:"TOnameLOCATEFOR姓名=nameDISPLAYUSE程序運(yùn)行時(shí),根據(jù)提示輸入“馬大大”,顯示馬大大信息。(思考:接收字符型數(shù)據(jù),使用哪個(gè)命令更好?)
8.2.3 程序的常用命令2. 輔助命令(1)注釋命令(2)文本輸出命令(3)定位輸出命令(4)設(shè)置會(huì)話狀態(tài)命令(5)清除命令簡(jiǎn)介8.2.3 程序的常用命令(1)注釋命令為了提高程序的可讀性或幫助讀者了解程序的結(jié)構(gòu),程序設(shè)計(jì)人員會(huì)對(duì)某些語(yǔ)句作一些解釋性的說(shuō)明。命令格式一:NOTE<注釋內(nèi)容>命令格式二:*<注釋內(nèi)容>命令格式三:……&&<注釋內(nèi)容>如:LOCATEFOR姓名="馬大大“&&定位到“姓名”為“馬;大大”的記錄8.2.3 程序的常用命令(2)文本輸出命令格式: TEXT<文本內(nèi)容>ENDTEXT功能:在屏幕或打印機(jī)上按原樣輸出文本的內(nèi)容?!纠?-5】TEXT的使用示例。TEXT學(xué)生信息管理系統(tǒng)======================1、查詢2、修改2、添加4、刪除5、打印0、退出ENDTEXT8.2.3 程序的常用命令(3)定位輸出命令命令格式:@<行,列>SAY<表達(dá)式1>[GET<變量>[DEFAULT<表達(dá)式2>]](輸入語(yǔ)句)….READ功能:從指定的行、列坐標(biāo)位置開(kāi)始顯示SAY子句中表達(dá)式的值。說(shuō)明:①有GET時(shí),<表達(dá)式1>起提示作用。②GET子句用來(lái)顯示待輸入數(shù)據(jù)的變量值,該變量必須事先定義。③DEFAULT子句用于給GET中的變量賦初值。④執(zhí)行READ語(yǔ)句時(shí),系統(tǒng)允許用戶從鍵盤(pán)上輸入新的值,并將其賦給GET中的變量。8.2.3 程序的常用命令【例8-6】@...SAY…GET…READ的使用示例。CLEAR@5,10SAY"姓名:"GETxmDEFAULTSPACE(6)@6,10SAY"基本工資:"GETgzDEFAULT0READ要求用戶輸入姓名和基本工資,用戶輸入后,將結(jié)果賦給相應(yīng)變量8.2.3 程序的常用命令(4)設(shè)置會(huì)話狀態(tài)命令格式:SETTALKON|OFF功能:設(shè)置是否顯示命令執(zhí)行的響應(yīng)信息。(5)清除命令簡(jiǎn)介格式一:CLEAR功能:清除當(dāng)前屏幕上的所有信息。格式二:CLEARALL功能:關(guān)閉所有文件,釋放所有內(nèi)存變量。格式三:CLEARMEMORY功能:釋放所有的內(nèi)存變量。格式四:CLEARTYPEAHEAD功能:清除鍵盤(pán)緩沖區(qū)。8.3 程序的基本結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)把程序的基本結(jié)構(gòu)分為三種:1、順序結(jié)構(gòu):語(yǔ)句按輸入的順序依次執(zhí)行。2、分支結(jié)構(gòu):語(yǔ)句按條件選擇執(zhí)行。3、循環(huán)結(jié)構(gòu):反復(fù)執(zhí)行循環(huán)體語(yǔ)句8.3 程序的基本結(jié)構(gòu)數(shù)據(jù)過(guò)程特定過(guò)程準(zhǔn)備判斷連接端點(diǎn)流線8.3 程序的基本結(jié)構(gòu)1.順序結(jié)構(gòu)(流程圖)順序結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)程序中語(yǔ)句的物理順序依次執(zhí)行的命令序列。語(yǔ)句A語(yǔ)句B8.3 程序的基本結(jié)構(gòu)2、分支結(jié)構(gòu)(流程圖)雙分支
單分支表達(dá)式語(yǔ)句B后續(xù)語(yǔ)句語(yǔ)句A表達(dá)式后續(xù)語(yǔ)句語(yǔ)句AYNyn8.3 程序的基本結(jié)構(gòu)多路分支8.3 程序的基本結(jié)構(gòu)3、循環(huán)結(jié)構(gòu)(流程圖)當(dāng)滿足某條件時(shí)循環(huán),否則結(jié)束循環(huán)條件式語(yǔ)句A后續(xù)語(yǔ)句yn8.3.1 順序結(jié)構(gòu)順序結(jié)構(gòu)程序也稱直接程序或簡(jiǎn)單程序。它自始至終嚴(yán)格按照程序中語(yǔ)句的先后順序逐條執(zhí)行。它是最基本、最普遍的結(jié)構(gòu)形式?!纠?-7】在表文件中查看學(xué)號(hào)為“1161009”的學(xué)生的信息。CLEARUSE學(xué)生LOCATEFOR學(xué)號(hào)="1161009"DISPLAYUSE8.3.1 順序結(jié)構(gòu)【例8-8】請(qǐng)用戶為“課程”表輸入一條記錄。CLEARUSE課程?'錄入課程數(shù)據(jù)'?'================'ACCEPT'課程ID:'TOCIDACCEPT'課程名:'TOCACCEPT'類(lèi)型id:'TOTIDACCEPT'學(xué)分:'TOCRACCEPT'類(lèi)型:'TOT*把用戶輸入的數(shù)據(jù)插入數(shù)據(jù)庫(kù)APPENDBLANKREPLACE課程IDWITHCID,課程名WITHC,類(lèi)型idWITHTID,學(xué)分WITHVAL(CR),類(lèi)型WITHTUSE8.3.2 選擇結(jié)構(gòu)選擇結(jié)構(gòu)程序是按照一定條件由判斷語(yǔ)句或選擇語(yǔ)句構(gòu)成的雙重或多重走向的程序。選擇結(jié)構(gòu)可分為雙重選擇和多重選擇兩種不同的結(jié)構(gòu)形式,分別由IF語(yǔ)句和DOCASE語(yǔ)句實(shí)現(xiàn)。1. 雙重選擇結(jié)構(gòu)通常有一個(gè)入口和兩個(gè)出口,包括以下幾種情況。(1)簡(jiǎn)單分支結(jié)構(gòu)命令格式: IF<條件表達(dá)式><語(yǔ)句序列>ENDIF8.3.2 選擇結(jié)構(gòu)【例8-9】詢問(wèn)是否要顯示教師信息表?若是,顯示該表。CLEARUSE教師信息表WAIT"是否要顯示教師信息表?(Y/N)"TOOPIFOP$"Yy"&&或IFAT(OP,"Yy")<>0BROWENDIF8.3.2 選擇結(jié)構(gòu)(2)選擇分支結(jié)構(gòu)命令格式:IF<條件表達(dá)式><語(yǔ)句序列1>ELSE<語(yǔ)句序列2>ENDIF8.3.2 選擇結(jié)構(gòu)【例8-10】按姓名查找學(xué)生,找到則顯示該學(xué)生信息,否則顯示“查無(wú)此人!”。CLEARUSEA班學(xué)生信息ACCEPT"請(qǐng)輸入姓名:"TOXMLOCATEFOR姓名=XMIFFOUND() DISPELSE ?"查無(wú)此人!"ENDIF8.3.2 選擇結(jié)構(gòu)【例8-11】廣州向某地寄送特快專(zhuān)遞,計(jì)費(fèi)標(biāo)準(zhǔn)為每克0.04元,當(dāng)郵件重量超過(guò)100克之后,超出的重量為每克0.02元,請(qǐng)根據(jù)郵件重量編寫(xiě)程序計(jì)算郵費(fèi)。CLEARINPUT"請(qǐng)輸入郵件的重量:"TOweightIFweight<=100f=weight*0.04ELSEf=100*0.04+(weight-100)*0.02ENDIF?"該郵件郵費(fèi)為:",f8.3.2 選擇結(jié)構(gòu)(3)判斷語(yǔ)句嵌套在解決具體問(wèn)題時(shí),需要進(jìn)行判斷的條件往往不止一個(gè),要多次進(jìn)行判斷,這就形成了條件判斷的嵌套,使得程序的結(jié)構(gòu)發(fā)生多重走向。8.3.2 選擇結(jié)構(gòu)【例8-12】根據(jù)學(xué)生的成績(jī)判定等級(jí)。當(dāng)分?jǐn)?shù)大于等于80分時(shí)輸出“優(yōu)”,分?jǐn)?shù)在80分以下且大于等于60分為“合格”,分?jǐn)?shù)小于60分時(shí)為“不合格”。SETTALKOFFCLEARINPUT"輸入學(xué)生姓名:"TOSnameINPUT"輸入學(xué)生性別:"TOSsexINPUT"輸入學(xué)生成績(jī):"TOScore11IFScore11>=80?Sname,"",Ssex,"優(yōu)"ELSE
IFScore11<80ANDScore11>=60?Sname,"",Ssex,"合格"
ELSE?Sname,"",Ssex,"不合格"
ENDIFENDIFSETTALKON8.3.2 選擇結(jié)構(gòu)VFP允許多重嵌套。在使用嵌套時(shí)需要注意以下幾點(diǎn):①在每一層嵌套中必須使用“IF---[ELSE]---ENDIF”一一對(duì)應(yīng),互相匹配;②使用嵌套語(yǔ)句時(shí),層次必須清楚,“IF---ENDIF”好比一對(duì)括號(hào),不得交叉;③為使嵌套層次清晰,便于查詢、修改,在編寫(xiě)程序時(shí),建議采用分層縮進(jìn)的書(shū)寫(xiě)方式。8.3.2 選擇結(jié)構(gòu)2. 多重選擇結(jié)構(gòu)命令格式:DOCASECASE<條件表達(dá)式1><語(yǔ)句序列1>CASE<條件表達(dá)式2><語(yǔ)句序列2>……CASE<條件表達(dá)式N><語(yǔ)句序列N>[OTHERWISE<語(yǔ)句序列N+1>]ENDCASE8.3.2 選擇結(jié)構(gòu)【例8-14】輸入身份代號(hào),顯示不同的問(wèn)候。CLEAR?"身份代號(hào):1:經(jīng)理2:助理3:職員4:其他"INPUT"請(qǐng)輸入您的身份代號(hào):"TOADOCASECASEA=1?"經(jīng)理,您好!"CASEA=2?"助理,您好!"CASEA=3?"女士/先生,您好!"OTHERWISE?"您好!"ENDCASE8.3.2 選擇結(jié)構(gòu)修改【例8-12】,用DOCASE…ENDCASE實(shí)現(xiàn)。SETTALKOFFCLEARINPUT"輸入學(xué)生姓名:"TOSnameINPUT"輸入學(xué)生性別:"TOSsexINPUT"輸入學(xué)生成績(jī):"TOScore11DOCASECASEScore11>=80?Sname,"",Ssex,"優(yōu)"CASEScore11<80ANDScore11>=60?Sname,"",Ssex,"合格"CASEScore11<60?Sname,"",Ssex,"不合格"ENDCASESETTALKON
DOCASECASEScore11>=80?Sname,"",Ssex,"優(yōu)"CASEScore11<80ANDScore11>=60?Sname,"",Ssex,"合格"OTHERWISE?Sname,"",Ssex,"不合格"ENDCASE8.3.2 選擇結(jié)構(gòu)【例8-16】根據(jù)鍵入的自變量x的值,計(jì)算分段函數(shù)的函數(shù)值。SETTALKOFFCLEARINPUT"請(qǐng)輸入自變量x的值:"TOxDOCASE
CASEx<0y=2*x^2+1
CASEx<3y=3*x+5
CASEx<5y=x^2+5
CASEx<10y=5*x-6
OTHERWISEy=x^3-6*x^2ENDCASE?"分段函數(shù)值","f(",ALLTRIM(STR(x)),")=",ALLTRIM(STR(y))&&使用ALLTRIM()函數(shù)是為了輸出格式顯得美觀SETTALKON8.3.3 循環(huán)結(jié)構(gòu)三種類(lèi)型的循環(huán)語(yǔ)句:1、WHILE循環(huán):(當(dāng)型) 循環(huán)的次數(shù)不確定的,用其他條件式控制2、FOR循環(huán):(步長(zhǎng)型) 能確定循環(huán)的次數(shù)的情況3、SCAN循環(huán):(掃描型或指針型) 對(duì)數(shù)據(jù)表的記錄操作8.3.3 循環(huán)結(jié)構(gòu)1. 當(dāng)型循環(huán)根據(jù)條件表達(dá)式的值決定循環(huán)體內(nèi)語(yǔ)句的執(zhí)行次數(shù)。DOWHILE<條件表達(dá)式><語(yǔ)句序列1>[LOOP]<語(yǔ)句序列2>[EXIT]<語(yǔ)句序列3>ENDDO8.3.3 循環(huán)結(jié)構(gòu)【例8-17】編程求和S=1+2+3+…+100。CLEARJ=1sum=0DOWHILEJ<=100sum=sum+JJ=J+1ENDDO?"從1到100的和是:"+ALLTRIM(STR(sum))8.3.3 循環(huán)結(jié)構(gòu)【例8-18】輸出“學(xué)生”表中1982年出生的學(xué)生記錄。CLEARUSE學(xué)生LOCATEFORYEAR(出生日期)=1982DOWHILENOTEOF()DISPLAY*WAIT"請(qǐng)按任意鍵顯示下一條記錄!"
CONTINUEENDDO?"查詢結(jié)束。"8.3.3 循環(huán)結(jié)構(gòu)上例程序的另一寫(xiě)法:CLEARUSE學(xué)生INDEXONYEAR(出生日期)TAGbirthdaySEEK1982DOWHILENOTEOF()DISPLAYWAIT"請(qǐng)按任意鍵顯示下一條記錄!"
SKIP
IFYEAR(出生日期)!=1982
EXIT
ENDIFENDDO?"查詢結(jié)束。"exit用法8.3.3 循環(huán)結(jié)構(gòu)【例8-19】輸出“教師信息表”中職稱為“副教授”的教師基本信息,并統(tǒng)計(jì)出“副教授”的人數(shù)。CLEARUSE教師信息表DOWHILENOTEOF()
IF職稱<>"副教授"
SKIP
LOOP
ENDIFDISPLAY
SKIPENDDOCOUNTFOR職稱="副教授"TOP_NO?"以上顯示的是副教授的基本信息,共計(jì)有:"+STR(P_NO)+"人"Loop用法Loop和exit用法找到了嗎?顯示“查無(wú)此人!顯示該人信息從鍵盤(pán)接收輸入姓名定位NY3次以上?NYloopexitClearI=0useA班學(xué)生信息dowhile.t.accept"請(qǐng)輸入姓名:"toxmI=I+1
locatefor姓名=xmifnotfound()?"查無(wú)此人!"
ifI<3loopendifelsedispendifexitenddo?"bye!"returnLoop和exit用法ClearuseA班學(xué)生信息fori=1to3accept"請(qǐng)輸入姓名:"toxmlocatefor姓名=xmifnotfound()?"查無(wú)此人!"
loopelsedispendif
exitendfor?"bye!"return……Loop……Exit……跳到循環(huán)開(kāi)始處跳到循環(huán)的后繼語(yǔ)句限制最多3次8.3.3 循環(huán)結(jié)構(gòu)2. 步長(zhǎng)型循環(huán)FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長(zhǎng)>]
<語(yǔ)句序列1>[LOOP]<語(yǔ)句序列2>[EXIT]<語(yǔ)句序列3>ENDFOR(或NEXT)8.3.3 循環(huán)結(jié)構(gòu)【例8-20】有FOR…ENDFOR語(yǔ)句求出1~200之間的偶數(shù)的和。SETTALKOFFCLEARS=0FORI=1TO200STEP2S=S+I-1ENDFOR?"1到200之間的偶數(shù)和為:"+ALLTRIM(STR(S))SETTALKON
8.3.3 循環(huán)結(jié)構(gòu)3. 表掃描型循環(huán)SCAN[<范圍>][FOR<條件表達(dá)式1>][WHILE<條件表達(dá)式2>]
<語(yǔ)句序列1>[LOOP]<語(yǔ)句序列2>[EXIT]<語(yǔ)句序列3>ENDSCAN命令功能:在當(dāng)前表中從首記錄開(kāi)始逐個(gè)移動(dòng)記錄指針掃描全部記錄,對(duì)于符合條件的記錄執(zhí)行循環(huán)體規(guī)定的操作。
特點(diǎn):“指針”自動(dòng)移動(dòng)(不需要SKIP)8.3.3 循環(huán)結(jié)構(gòu)【例8-22】統(tǒng)計(jì)“學(xué)生”表中男學(xué)生的人數(shù)CLEARN=0USE學(xué)生SCANFOR性別="男"N=N+1ENDSCAN?"學(xué)生表中男學(xué)生的人數(shù)是:",N
與當(dāng)循環(huán)比較:DOWHILE.NOT.EOF() IF性別="男" N=N+1 ENDIF
SKIP&&當(dāng)循環(huán)要使用SKIP來(lái)移去指針ENDDO
8.3.3 循環(huán)結(jié)構(gòu)【例8-23】用表掃描循環(huán)結(jié)構(gòu)將教師信息表中基礎(chǔ)工資小于1000的姓名、基礎(chǔ)工資兩個(gè)字段輸出,并統(tǒng)計(jì)這些職工的人數(shù)。SETTALKOFFCLEARUSE教師信息表n=0SCANFOR基礎(chǔ)工資<1000?姓名,基礎(chǔ)工資n=n+1ENDSCAN?"基礎(chǔ)工資在1000元以下的人數(shù)有:"+STR(N,2)+"人。"SETTALKON8.3.3 循環(huán)結(jié)構(gòu)【例8-24】統(tǒng)計(jì)“學(xué)生”表中各個(gè)專(zhuān)業(yè)的人數(shù)。(SCAN中套CASE)CLEARSTORE0TOA,B,C,DUSE學(xué)生SCAN
DOCASE
CASE專(zhuān)業(yè)="土木工程"A=A+1
CASE專(zhuān)業(yè)="計(jì)算機(jī)"B=B+1
CASE專(zhuān)業(yè)="電子"C=C+1
CASE專(zhuān)業(yè)="機(jī)電"D=D+1
ENDCASEENDSCAN?"土木工程專(zhuān)業(yè)的人數(shù)為:",ALLTRIM(STR(A))?"計(jì)算機(jī)專(zhuān)業(yè)的人數(shù)為:",ALLTRIM(STR(B))?"電子專(zhuān)業(yè)的人數(shù)為:",ALLTRIM(STR(C))?"機(jī)電專(zhuān)業(yè)的人數(shù)為:",ALLTRIM(STR(D))SETTALKON8.3.3 循環(huán)結(jié)構(gòu)4. 多重循環(huán)(循環(huán)嵌套)DOWHILE〈條件表達(dá)式1〉〈語(yǔ)句行序列11〉DOWHILE〈條件表達(dá)式2〉〈語(yǔ)句行序列21〉DOWHILE〈條件表達(dá)式3〉〈語(yǔ)句行序列31〉……ENDDO &&3〈語(yǔ)句序列22〉ENDDO &&2〈語(yǔ)句行序列12〉ENDDO &&18.3.3 循環(huán)結(jié)構(gòu)【例8-25】打印一個(gè)6行5列的自然數(shù)矩陣。SETTALKOFFCLEARDIMEA(6,5)FORI=1TO30A(I)=IENDFORFORI=1TO6
FORJ=1TO5??A(I,J)
ENDFOR?ENDFORSETTALKON二維數(shù)組可以當(dāng)作一維數(shù)組來(lái)處理8.3.3 循環(huán)結(jié)構(gòu)【例8-27】編寫(xiě)程序,輸出九九乘法表。CLEARFORY=1TO9FORX=1TO9Z=Y*X*??Y,"*",X,"=",Z??STR(Y,1)+"*"+STR(X,1)+"="+STR(Z,2)+""
ENDFOR?ENDFOR
8.4 過(guò)程與過(guò)程調(diào)用在應(yīng)用程序系統(tǒng)中,一般是根據(jù)實(shí)際需要將整個(gè)系統(tǒng)劃分為若干個(gè)模塊,然后在主控模塊的控制下,調(diào)用各個(gè)功能模塊實(shí)現(xiàn)系統(tǒng)的各種功能操作。通常將這些可被調(diào)用的功能模塊或能完成某種特定功能的獨(dú)立程序稱作過(guò)程或子程序,而把調(diào)用其他程序而沒(méi)有被其他程序調(diào)用的程序段,稱為主程序。8.4.1 子程序結(jié)構(gòu)化程序的總體結(jié)構(gòu):主模塊子模塊子模塊子模塊……調(diào)用返回8.4.1 子程序子程序的建立方法與程序文件的建立方法相同,擴(kuò)展名為.prg。調(diào)用子程序的命令格式為:DO<子程序名>[WITH<參數(shù)表>][WITH<參數(shù)表>]指定傳遞到子程序的參數(shù)【例8-28】編寫(xiě)主程序調(diào)用子程序,計(jì)算Z=f(x1)+f(x2)+f(x3)的值,其中f(x)=x2+1。*主程序開(kāi)始INPUT"x1="TOx1INPUT"x2="TOx2INPUT"x3="TOx3STORE0TOz,yx=x1DOSUB &&調(diào)用子程序SUB,求f(x1)z=z+y &&將結(jié)果y加入z,下同x=x2DOSUB &&調(diào)用子程序SUB,求f(x2)z=z+yx=x3DOSUB &&調(diào)用子程序SUB,求f(x3)z=z+y?"z=",zRETURN*子程序開(kāi)始,文件名為:sub.prgy=x^2+1RETURN
8.4.2 過(guò)程的定義與調(diào)用過(guò)程定義的命令格式為:PROCEDURE<過(guò)程名>[PARAMETER<形式參數(shù)表>]<語(yǔ)句序列>RETURN[表達(dá)式][ENDPROC]過(guò)程調(diào)用的命令格式為:DO<過(guò)程名>[IN<文件名>][WITH<實(shí)際參數(shù)表>]
8.4.2 過(guò)程的定義與調(diào)用【例8-29】編寫(xiě)過(guò)程求圓的面積并在主程序內(nèi)調(diào)用這個(gè)過(guò)程。SETTALKOFFCLEARDOAREA
&&調(diào)用過(guò)程SETTALKONPROCEDUREAREA &&過(guò)程開(kāi)始STORE0TORINPUT"請(qǐng)輸入圓的半徑:"TORS=3.14156*R*R?"圓的面積為:"+STR(S,8,5)
為什么要使用過(guò)程
有時(shí),在一個(gè)程序的執(zhí)行過(guò)程中,可能需要多次執(zhí)行到某個(gè)程序段。這時(shí),用戶也可以把這個(gè)需要反復(fù)執(zhí)行的程序段編成為獨(dú)立的程序。當(dāng)需要執(zhí)行到這個(gè)程序段時(shí),以合適的形式調(diào)用執(zhí)行這個(gè)程序段。[例如]編寫(xiě)程序計(jì)算從m個(gè)元素中取n個(gè)的組合數(shù),即計(jì)算
該公式用到了三個(gè)階乘。為了避免重復(fù),可以把階乘的計(jì)算用一個(gè)子程序來(lái)實(shí)現(xiàn)。8.4.3 過(guò)程文件的建立與調(diào)用過(guò)程可以作為一個(gè)文件獨(dú)立地存儲(chǔ)在磁盤(pán)上,因此,每調(diào)用一次過(guò)程都要打開(kāi)一個(gè)磁盤(pán)文件。(外部過(guò)程)所謂過(guò)程文件就是過(guò)程的集合。其中每個(gè)過(guò)程用PROCEDURE<過(guò)程名>來(lái)標(biāo)識(shí)過(guò)程文件中的過(guò)程又稱作內(nèi)部過(guò)程
過(guò)程文件的命令格式如下:[<主程序>…………]PROCEDURE
<過(guò)程名1><語(yǔ)句序列1>RETURNPROCEDURE
<過(guò)程名2><語(yǔ)句序列2>RETURN……PROCEDURE
<過(guò)程名n><語(yǔ)句序列n>RETURN過(guò)程文件的建立和修改命令的命令格式為:MODIFYCOMMAND<過(guò)程文件名>
1)過(guò)程文件的類(lèi)型名:.PRG2)一個(gè)過(guò)程文件中最多可以有一個(gè)主程序,且必須放在最前。打開(kāi)過(guò)程文件的命令格式為:SETPROCEDURETO<過(guò)程文件名>該命令打開(kāi)指定的過(guò)程文件,并將過(guò)程文件中所包含的過(guò)程全部調(diào)入內(nèi)存。過(guò)程文件的調(diào)用命令格式為:DO<過(guò)程文件>[WITH<實(shí)際參數(shù)表>]系統(tǒng)同一時(shí)刻只能打開(kāi)一個(gè)過(guò)程文件。若要修改過(guò)程文件內(nèi)容,則一定要先關(guān)閉該過(guò)程文件。關(guān)閉過(guò)程文件的命令格式為:格式1:CLOSEPROCEDURE格式2:SETPROCEDURETO當(dāng)退出VFP系統(tǒng)時(shí),所有已打開(kāi)的過(guò)程文件將會(huì)自動(dòng)關(guān)閉?!纠?-30】一個(gè)過(guò)程定義和調(diào)用的示例
文件f1.prg的程序內(nèi)容為:*主程序:f1.prgCLEARSETPROCEDURETOf3&&打開(kāi)過(guò)程文件f3DOf2 &&調(diào)用DOp1*過(guò)程p1PROCEDUREp1?"調(diào)用p3()"?"返回值:",p3()ENDPROC文件f2.prg的內(nèi)容為:*子程序f2.prg?"子程序f2開(kāi)始"?"調(diào)用p2()"x=p2()?"子程序f2結(jié)束"RETURN*過(guò)程文件f3.prgPROCEDUREp2RETURNPROCEDUREp3RETURN1008.4.4 變量的作用域一、變量的作用域(內(nèi)存變量的作用范圍)有三種內(nèi)存變量:全局變量:在關(guān)閉VFP應(yīng)用程序之前一直有效。用PUBLIC語(yǔ)句來(lái)定義全局變量。局部變量:在定義它的程序段以及由它所調(diào)用到的子程序中保持有效。用PRIVATE語(yǔ)句來(lái)定義局部變量。私有變量:在定義它的程序段才有效。用LOCAL語(yǔ)句來(lái)定義私有變量。8.4.4 變量的作用域(1)全局變量程序執(zhí)行完畢,它們不會(huì)在內(nèi)存中自動(dòng)釋放,必須使用RELEASE命令予以清除。在VFP的命令窗口中建立的內(nèi)存變量,系統(tǒng)默認(rèn)為全局變量,并賦初值邏輯假。定義方式有兩種:格式1:PUBLIC<內(nèi)存變量表>該命令是將<內(nèi)存變量表>中指定的內(nèi)存變量定義為全局變量。格式2:PUBLIC<數(shù)組名>(<數(shù)值表達(dá)式1>[,<數(shù)值表達(dá)式2>])[<數(shù)組名>(<數(shù)值表達(dá)式3>[,<數(shù)值表達(dá)式4>])…]該命令定義數(shù)組變量并將其元素定義為全局變量?!纠?-31】主程序和過(guò)程中的全局變量。SETTALKOFFCLEARPUBLICAA=1DOSUB_PROC?“主程序中:A,B,C,DRETURN*過(guò)程ProcSUB_PROCPUBLICB,CB=2D=3?"在過(guò)程中:A,B,C,DRETURNSETTALKON由于變量D不是全局變量,在主程序中不能被識(shí)別全局變量全局變量全局變量8.4.4 變量的作用域(2)局部變量局部變量只能在建立它的模塊中使用,不能在上層或下層模塊中使用。當(dāng)建立它的模塊程序運(yùn)行結(jié)束時(shí),局部變量將自動(dòng)釋放。定義局部變量的命令格式為:LOCAL<內(nèi)存變量表>建立局部變量時(shí),系統(tǒng)賦初值邏輯假。局部變量要建立后使用?!纠?-32】局部變量的使用。CLEARLOCALXX=10DOSUB?Y&&出錯(cuò):找不到變量Y(因?yàn)閅是過(guò)程中局部變量)RETURNPROCEDURESUBLOCALYY=20?X&&出錯(cuò):找不到變量X(因?yàn)閄是主程序中局部變量)RETURN8.4.4 變量的作用域(3)私有變量沒(méi)有通過(guò)PUBLIC或者LOCAL命令事先聲明。作用域是建立它的模塊及其下屬的各層模塊命令格式為:PRIVATE[<內(nèi)存變量表>]|[ALL[LIKE/EXCEPT<通配符>]]此命令作用是隱藏在上層模塊中可能已經(jīng)存在的內(nèi)存變量,使得這些變量在當(dāng)前模塊程序中暫時(shí)無(wú)效。此時(shí),這些變量名就可用來(lái)命名在當(dāng)前模塊中需要的私有變量或者局部變量。當(dāng)前模塊程序運(yùn)行結(jié)束返回上層模塊時(shí),被隱藏的內(nèi)存變量就自動(dòng)恢復(fù)有效性,并保持原有的取值?!纠?-33】私有變量的使用。CLEARA=1B=2D=0?"主程序中:A=",A,"B=",B,"D=",DDOSUB1&&調(diào)用過(guò)程?'返主程序后:A=',A,'B=',B,'C=',C,'D=',DRETURNPROCSUB1PRIVATEB,DPUBLICCA=10B=11C=12D=13?'在過(guò)程中:A=',A,'B=',B,'C=',C,'D=',DRETURN過(guò)程中變量主程序中的變量恢復(fù)為主程序中的變量【例8-34】局部變量和私有變量比較示例。CLEARPUBLICx,y &&定義全局變量x=5y=10DOSUB2?x,y&&顯示5,bbbRETURN*SUB3PROCEDURESUB3x=“aaa“&&x為SUB2中建立的私有變量&&其值上傳y="bbb“&&y為全局變量RETURN*SUB2PROCEDURESUB2PRIVATEx &&隱藏主程序中xx=50 &&建立私有變量LOCALy&&建立局部變量y&&僅在SUB2中使用DOSUB3?x,y&&x為SUB2中變量&&x的值在SUB3中被修改RETURN12348.4.5過(guò)程調(diào)用中的參數(shù)傳遞在VFP中把向過(guò)程發(fā)送消息稱為過(guò)程調(diào)用中的參數(shù)傳遞。方法是:在定義過(guò)程時(shí),設(shè)置一個(gè)參數(shù)表,用來(lái)接收過(guò)程調(diào)用時(shí)傳遞來(lái)的參數(shù),稱為形式參數(shù)表;在調(diào)用過(guò)程時(shí),通過(guò)一個(gè)參數(shù)表向被調(diào)用過(guò)程傳遞實(shí)際值,這個(gè)參數(shù)表稱為實(shí)際參數(shù)表。這兩個(gè)參數(shù)表中參數(shù)個(gè)數(shù)相同,數(shù)據(jù)類(lèi)型一致且排序順序一一對(duì)應(yīng)。
8.4.5過(guò)程調(diào)用中的參數(shù)傳遞1.接收參數(shù)命令格式1:PARAMETERS<形式參數(shù)表>格式2:LPARAMETERS<形式參數(shù)表>說(shuō)明:(1)該命令必須位于被調(diào)用過(guò)程的第一條可執(zhí)行語(yǔ)句處。(2)格式1聲明的形參變量被看作是建立的私有變量,格式2中聲明的形參變量看作是模塊程序中建立的局部變量,除此之外,二者沒(méi)有區(qū)別。(3)形式參數(shù)一般為內(nèi)存變量。8.4.5過(guò)程調(diào)用中的參數(shù)傳遞2.通過(guò)過(guò)程調(diào)用命令傳遞參數(shù)格式1:DO<文件名>|<過(guò)程名>WITH<實(shí)際參數(shù)表>格式2:<文件名>|<過(guò)程名>(<實(shí)際參數(shù)表>)說(shuō)明:(1)實(shí)參可以是常量、變量,表達(dá)式。調(diào)用時(shí),系統(tǒng)自動(dòng)把實(shí)參傳遞給對(duì)應(yīng)的形參。形參的數(shù)目不能少于實(shí)參的數(shù)目,否則系統(tǒng)會(huì)產(chǎn)生運(yùn)行錯(cuò)誤。如果形參數(shù)目多于實(shí)參數(shù)目,多余的形參將取邏輯假.F.。(2)采用格式1時(shí),由于實(shí)參形式的不同,參數(shù)傳遞有兩種方式:按值傳送按址傳送8.4.5過(guò)程調(diào)用中的參數(shù)傳遞(按值傳遞)當(dāng)實(shí)參是常量、函數(shù)、表達(dá)式或字段變量時(shí),在實(shí)參與形參之間的參數(shù)傳遞是按值傳送的。這時(shí)在調(diào)用過(guò)程時(shí),形參所得到的是實(shí)參的值,過(guò)程調(diào)用結(jié)束時(shí),實(shí)參將得不到形參的值。按值傳送時(shí),實(shí)參與形參之間的傳遞是單向的。只是實(shí)參向形參傳遞值。按值傳送例子CLEARSETPROCTOP3-4DIMEA(3),G(2)G(1)=20STORE3TOB,CA=5DOPWITHA(2),B+4,C,G?A(2),B,C,G(1)SETTALKONRETURNPROCEDUREPPARAX,Y,Z,UX=X+10Y=2*YZ=Y+ZU(1)=X+Y+Z?X,Y,Z,U(1)ENDPROC輸入、出參數(shù)傳值8.4.5過(guò)程調(diào)用中的參數(shù)傳遞(按址傳遞)當(dāng)實(shí)參是內(nèi)存變量或數(shù)組名時(shí),在實(shí)參與形參之間的參數(shù)傳遞是按地址傳送的。這時(shí)在調(diào)用過(guò)程時(shí),形參所得到的是實(shí)參的地址,過(guò)程調(diào)用結(jié)束時(shí),實(shí)參將得到與形參相同的值。按址傳送時(shí),實(shí)參與形參之間的傳遞是雙向的,即可以是輸入?yún)?shù),也可以是輸出參數(shù)(返回值)。按址傳送:用過(guò)程文件實(shí)現(xiàn)SETPROCTOP3-3STORE0TOA,B,CINPUT"M="TOMINPUT"N="TONDOSUBWITHM,ADOSUBWITHN,BDOSUBWITHM-N,CW=A/(B*C)?"W="+STR(W,7)RETURNPROCSUBPARAMETERK,TT=1FORI=1TOKT=T*IENDFORRETURN形式參數(shù)實(shí)際參數(shù)輸入?yún)?shù)輸出參數(shù)8.4.5過(guò)程調(diào)用中的參數(shù)傳遞2.通過(guò)過(guò)程調(diào)用命令傳遞參數(shù)格式1:DO<文件名>|<過(guò)程名>WITH<實(shí)際參數(shù)表>格式2:<文件名>|<過(guò)程名>(<實(shí)際參數(shù)表>)(3)采用格式2時(shí),默認(rèn)以按值方式傳遞參數(shù)。如果實(shí)參是變量,可以通過(guò)命令重新設(shè)置參數(shù)傳遞方式。重新設(shè)置參數(shù)傳遞方式命令如下:
SETUDFPARMSTOREFERENCE|VALUE說(shuō)明:TOVALUE:按值傳遞。TOREFERENCE:按址傳遞?!纠?-36】按值傳遞和按地址傳遞示例。CLEARSTORE100TOx1,x2SETUDFPARMSTOVALUE&&設(shè)置按值傳遞DOP1WITHx1,(x2)
&&x1按地址傳遞,(x2)按值傳遞?"第一次:",x1,x2STORE100TOx1,x2P1(x1,(x2))
&&x1,(x2)都按值傳遞?"第二次:",x1,x2SETUDFPARMSTOREFERENCE &&設(shè)置引用傳遞DOP1WITHx1,(x2)
&&x1按地址傳遞,(x2)按值傳遞?"第三次:",x1,x2STORE100TOx1,x2P1(x1,(x2))
&&x1按地址傳遞,(x2)按值傳遞?"第四次:",x1,x2RETURNPROCEDUREP1PARAMETERSx1,x2STOREx1+1TOx1STOREx2+1TOx2ENDPROC(x2)有一對(duì)圓括號(hào),是一般形式的表達(dá)式,所以總是按值傳遞。8.5數(shù)組8.5.1數(shù)組的建立及使用數(shù)組是具有相同變量名并在內(nèi)存中占有連續(xù)存儲(chǔ)單元的一組數(shù)據(jù),數(shù)組中的各個(gè)變量稱為數(shù)組元素。每一個(gè)數(shù)組元素在內(nèi)存中獨(dú)占一個(gè)內(nèi)存單元。為了區(qū)分不同的數(shù)組元素,每一個(gè)數(shù)組元素都是通過(guò)數(shù)組名和下標(biāo)來(lái)訪問(wèn)的。數(shù)組與變量具有相同的作用域原則,可以存儲(chǔ)任何類(lèi)型的數(shù)據(jù),數(shù)組必須先定義后使用。8.5.1數(shù)組的建立及使用1.數(shù)組的定義格式:DIMENSION|DECLARE<數(shù)組名1>(<下標(biāo)1>[,<下標(biāo)2>])[,<數(shù)組名2>(<下標(biāo)1>[,<下標(biāo)2>])]……8.5.1數(shù)組的建立及使用在VFP中,規(guī)定數(shù)組下標(biāo)的下界為1,最大值將受內(nèi)存的限制。使用數(shù)組名及下標(biāo)為數(shù)組元素賦值。例如:DIMENSIONx(3),a(2,3)x為一維數(shù)組數(shù)組x有3個(gè)數(shù)組元素,分別為x(1)、x(2)和x(3)a為二維數(shù)組數(shù)組a有2行3列,共6個(gè)元素,分別表示為a(1,1)、a(1,2)、a(1,3)、a(2,1)、a(2,2)、a(2,3)8.5.1數(shù)組的建立及使用2.數(shù)組的賦值給數(shù)組賦值,就是分別給每個(gè)數(shù)組元素賦值,與給內(nèi)存變量賦值操作完全相同。格式1:
STORE<表達(dá)式>TO<數(shù)組名/數(shù)組元素>功能:將表達(dá)式的值賦給數(shù)組中所有元素或某一個(gè)元素。例如:
STORE0TOA&&將數(shù)值0賦給數(shù)組A的所有元素
STORE"陳紅"TOA(2,1)
&&將“李磊”賦給數(shù)組A的第2行第1列的元素格式2:
<數(shù)組名/數(shù)組元素>=<表達(dá)式>功能:可以用賦值語(yǔ)句直接賦值給數(shù)組。例如:
A=.T. &&將邏輯真值賦給數(shù)組A的所有元素8.5.1數(shù)組的建立及使用【例8-37】定義一維數(shù)組,給數(shù)組賦值并輸出結(jié)果。CLEARDIMENSIONx(3)x=5 &&賦值給數(shù)據(jù)所有元素DIMENSIONy(3)STORE3TOy(1),y(2) &&賦值給數(shù)組前兩個(gè)元素?"x:",x(1),x(2),x(3)?"y:",y(1),y(2),y(3) &&y(3)的值顯示為.F.8.5.1數(shù)組的建立及使用數(shù)組變量建立后,數(shù)組中的每一個(gè)元素的其性質(zhì)及其使用方法與普通內(nèi)存變量是類(lèi)似的注意:(1)可用STORE命令或其他各種能對(duì)內(nèi)存變量賦值的命令對(duì)某個(gè)數(shù)組元素賦值;(2)可用LIST|DISPLAYMEMORY、RELEASE、CLEARMEMORY等命令查看、釋放或清除已建立的數(shù)組變量;(3)可用SAVE命令將數(shù)組存入內(nèi)存變量文件(.mem),或用RESTORE命令將其恢復(fù)到內(nèi)存中來(lái)。(4)在同一運(yùn)行環(huán)境中,應(yīng)注意數(shù)組名與一般的內(nèi)存變量名不要重名。8.5.1數(shù)組的建立及使用【例8-38】定義二維數(shù)組,給數(shù)組賦值并輸出結(jié)果。CLEARMEMORYDIMENSIONaa(2,3)aa(1,1)="王楠"aa(2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老護(hù)理中級(jí)老年康復(fù)護(hù)理
- 機(jī)器學(xué)習(xí)在護(hù)理決策支持中的應(yīng)用
- 2025年便攜式超聲系統(tǒng)租賃合同
- 2025年白酒區(qū)域獨(dú)家合作協(xié)議
- 基因水平轉(zhuǎn)移的系統(tǒng)發(fā)育分析
- 婦科常用中成藥的合理使用
- 地球在宇宙中的位置2課件
- DB36∕T 1485-2025“贛出精 品”品牌建設(shè)通 用要求
- 在線教育的可擴(kuò)展性和資源共享性研究
- 歷屆4級(jí)考試真題及答案
- 2025年大學(xué)康復(fù)治療學(xué)(運(yùn)動(dòng)療法學(xué))試題及答案
- 胎膜早破的診斷與處理指南
- 進(jìn)出口貨物報(bào)關(guān)單的填制教案
- 被壓迫者的教育學(xué)
- 2025年科研倫理與學(xué)術(shù)規(guī)范期末考試試題及參考答案
- 上市公司財(cái)務(wù)舞弊問(wèn)題研究-以國(guó)美通訊為例
- 2025年國(guó)家開(kāi)放電大行管本科《公共政策概論》期末考試試題及答案
- 2025年紀(jì)檢監(jiān)察知識(shí)試題庫(kù)(含答案)
- CJT 288-2017 預(yù)制雙層不銹鋼煙道及煙囪
- 2024年西安市政道橋建設(shè)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 《彈性波動(dòng)力學(xué)》課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論