CH2VisualFoxPro程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
CH2VisualFoxPro程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
CH2VisualFoxPro程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
CH2VisualFoxPro程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
CH2VisualFoxPro程序設(shè)計(jì)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩152頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Visual Foxpro第二章 Visual FoxPro程序設(shè)計(jì)基礎(chǔ)學(xué)習(xí)要點(diǎn):2.1 常量與變量2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件重點(diǎn)與難點(diǎn):數(shù)據(jù)類型變 量表達(dá)式常用函數(shù)程序:作文:造句組詞識(shí)字拼音語(yǔ)句語(yǔ)句格式、表達(dá)式常量、變量、函數(shù)2.1 常量與變量常量在程序中不變的量掌握:A.組成 B.定界符 C.特別注意2.1.1 常 量常量是在數(shù)據(jù)處理過程中其值保持不變的數(shù)據(jù)。常量在數(shù)據(jù)輸入或命令表達(dá)式中可以被直接引用。在Visual FoxPro中定義了6種類型的常量:數(shù)值型常量、字符型常量、邏輯型常量、浮點(diǎn)型常量、日期型常量、日期時(shí)間型常量。1數(shù)值

2、型常量(N)數(shù)值型常量是由正、負(fù)號(hào)數(shù)字(09)和小數(shù)點(diǎn)組成。Eg:123,-10定界符:無可以是整數(shù)、小數(shù),但不可以用分?jǐn)?shù)。例如326、178.56、+3125.27都是合法的數(shù)值型常量。科學(xué)計(jì)數(shù)法的描述形式3*1052字符型常量(C)A.組成:字母、符號(hào)、漢字、數(shù)字、空格。B.字符型常量是由分界符(雙引號(hào)、單引號(hào)、方括號(hào))括起來的一串漢字、字符組成。C.定界符要配對(duì)使用例如“FoxPro”、程序設(shè)計(jì)、Y=?都是合法的字符型常量。引入VFP命令注意:命令在命令窗口輸入,輸入結(jié)束后以回車結(jié)束(Enter)。退出vfp系統(tǒng):quit。清理主屏幕:clear。輸出命令:? 隔行輸出? 同行輸出注意:

3、都是相對(duì)上一行來講。特別注意:在vfp用到的符號(hào)都是英文半角?123?$124?”hello”?123?”word”3邏輯型常量(L)邏輯型常量只有兩個(gè)值,邏輯真和邏輯假。A.一般是用字母.T.表示真,用.F. 表示假。B.定界符:在書寫時(shí)注意字母兩邊的黑點(diǎn)不能省略。4日期型常量(D) 日期型常量用于表示日期,使用時(shí)必須用花括號(hào)括起來。A.0-9的數(shù)字B. 年4-月2-日2C.系統(tǒng)默認(rèn)格式:月/日/年(主屏幕)4日期型常量(D) 補(bǔ)充:關(guān)于日期的幾個(gè)命令(1)設(shè)置日期分隔符(顯示用)SET MARK TO 分隔符注意:分隔符用引號(hào)。Eg:date()顯示當(dāng)前系統(tǒng)時(shí)間(2)設(shè)置日期的年月日順序(

4、顯示用)SET DATE TO(3)設(shè)置年份的顯示位數(shù)(顯示用)SET CENTURY ON:四位OFF:兩位關(guān)于命令總結(jié):必選可選可不選|必選其一5日期時(shí)間型常量(T)A.0-9數(shù)字B.年-月-日 時(shí):分:秒。 12制/24制AM:上午PM:下午 日期時(shí)間型常量是用于表示日期和時(shí)間,使用時(shí)必須用花括號(hào)括起來。8:25:30是合法的日期時(shí)間 例如06/26/2002型常量。6貨幣型(Y) 組成:0-9,小數(shù)點(diǎn) 定界符:$ 自動(dòng)保留四位小數(shù)(自動(dòng)四舍五入)學(xué)習(xí)要點(diǎn):2.1 常量與變量2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.1.2 變 量 變量是一種在命

5、令操作和程序運(yùn)行中其值要發(fā)生變化的量。 每一個(gè)變量都是用來存放數(shù)值的容器存儲(chǔ)常量的量。 在Visual FoxPro中,變量可以分為內(nèi)存變量、數(shù)組變量和字段變量。內(nèi)存變量 內(nèi)存:出口 內(nèi)存變量是數(shù)據(jù)庫(kù)結(jié)構(gòu)之外獨(dú)立存在于內(nèi)存中的臨時(shí)存儲(chǔ)變量,它可以存放程序中的原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果,以及用于控制程序執(zhí)行的各種參數(shù)。 內(nèi)存變量一般隨程序運(yùn)行結(jié)束或退出VisualFoxPro系統(tǒng)時(shí)釋放。1內(nèi)存變量名 內(nèi)存變量名是每一個(gè)內(nèi)存變量都必須固有的名稱,以標(biāo)識(shí)該內(nèi)存單元的存儲(chǔ)位置。 用戶可以通過內(nèi)存變量名對(duì)內(nèi)存變量中的數(shù)據(jù)進(jìn)行操作。 內(nèi)存變量名的命名規(guī)則是以字母、下劃線開頭,由字母、數(shù)字、下劃線組成,其

6、長(zhǎng)度可以達(dá)到254個(gè)字符。2內(nèi)存變量類型 內(nèi)存變量的類型是指內(nèi)存變量中存放的是什么形式的數(shù)據(jù)。 通常內(nèi)存變量的類型是由變量當(dāng)前值的類型決定,在Visual FoxPro中,內(nèi)存變量的常用類型有數(shù)值型、浮點(diǎn)型、字符型、邏輯型、日期型和日期時(shí)間型6種。3創(chuàng)建內(nèi)存變量 創(chuàng)建內(nèi)存變量一般是通過各種賦值命令來實(shí)現(xiàn)。 在完成內(nèi)存變量賦值時(shí)就產(chǎn)生了內(nèi)存變量,同時(shí)也自動(dòng)將內(nèi)存變量定義為相應(yīng)賦值的數(shù)據(jù)類型。 對(duì)內(nèi)存變量賦值的命令有多種,可以由STORE、INPUT、WAIT、ACCEPT、COUNT和SUM 等命令建立。(1)內(nèi)存變量賦值命令【格式】【功能】給內(nèi)存變量賦值。STORE TO 或 例如:X=12.

7、3& 將12.3賦值給變量X,變量類型為數(shù)值型Y=VFP& 將字符串Visual FoxPro賦值給變量Y,變量類型為字符型STORE 3*5 TO A,B,C& 將表達(dá)式值15分別賦值給A,B,C三個(gè)變量(1)內(nèi)存變量賦值命令【格式】STORE TO 或 【功能】給內(nèi)存變量賦值。【說明】STORE命令可以同時(shí)給多個(gè)內(nèi)存變量賦值,而=命令只能給一個(gè)變量賦值。注意:常量表達(dá)式必須加定界符4輸出內(nèi)存變量的值【格式】?或 ?【功能】顯示內(nèi)存變量、常量或表達(dá)式的值。【說明】?是在光標(biāo)所在行的下一行開始顯示?則是在當(dāng)前光標(biāo)位置開始顯示。5顯示內(nèi)存變量【格式】list memory

8、|display memory【功能】顯示內(nèi)存變量的當(dāng)前信息,包括變量名、作用域、類型和取值。【說明】list:自動(dòng)滾屏display:顯示一屏后暫停,按任意鍵繼續(xù)。【格式】LIST MEMORY LIKE 通配符【功能】顯示與通配符相匹配的內(nèi)存變量。【說明】*:0個(gè)或者任意多個(gè)字符?:任意一個(gè)字符Eg:a* :以a開頭的所有變量b?:以b開頭,寬度是2的變量List memory like a*a = 12ab = “visual”abc= $123.1List memory like a*6清除內(nèi)存變量【功能】格式1清除所有的內(nèi)存變量格式2清除指定的內(nèi)存變量格式3清除與通配符相匹配/不匹配

9、的內(nèi)存變量CLEAR MEMORY 清除所有的內(nèi)存變量【格式】 RELEASE 清除指定內(nèi)存變量RELEASE MEMORY ALL LIKE|EXCEPT 通配符Eg:release a?alist memor like a*release all like a*list memory like a*數(shù)組變量 數(shù)組是由一組有序排列的內(nèi)存變量組成(一連串的內(nèi)存變量)。 數(shù)組中的每一個(gè)變量都稱為數(shù)組元素。 每一個(gè)數(shù)組元素在內(nèi)存中獨(dú)占一個(gè)內(nèi)存單元,為了區(qū)分不同的數(shù)組元素,每一個(gè)數(shù)組元素都是通過數(shù)組名和下標(biāo)來訪問。因此數(shù)組可以稱為是帶下標(biāo)的變量,簡(jiǎn)稱為下標(biāo)變量。元素,例如B(1,1) B(1,3),

10、B(2,1)平面直角坐標(biāo)在Visual FoxPro中,數(shù)組可以分一維數(shù)組和二維 一維數(shù)組是指在該數(shù)組中只用一個(gè)下標(biāo)值表示數(shù)組元素,例如:A(1),A(2),A(10),可用A數(shù)組表示。 二維數(shù)組是指在該數(shù)組中用兩個(gè)下標(biāo)表示數(shù)組,B(1,2),在同一數(shù)組中,不同的數(shù)組元素可以有不同類型的數(shù)據(jù)。數(shù)組兩種:數(shù)軸可用B數(shù)組表示。系(第一象限)1. 數(shù)組的定義【格式】DIMENSION(,),(,【功能】定義若干個(gè)一維數(shù)組或二維數(shù)組。【說明】一條DIMENSION命令可以定義多個(gè)數(shù)組,也可以使用DECLARE命令代替DIMENSION命令。1. 數(shù)組的定義Declare a(3)-a(1),a(2),

11、a(3)變量Declare b(2,3)b(1,1) b(1,2) b(1,3)b(2,1) b(2,2) b(2,3)2. 數(shù)組的賦值 數(shù)組定義好后,數(shù)組中的每個(gè)數(shù)組元素自動(dòng)地被賦予邏輯值.F.。 當(dāng)需要對(duì)整個(gè)數(shù)組或個(gè)別數(shù)組元素進(jìn)行新的賦值時(shí),與一般內(nèi)存變量一樣,可以通過STORE命令或賦值號(hào)“=”來進(jìn)行。 對(duì)數(shù)組的不同元素,可以賦予不同數(shù)據(jù)類型的數(shù)據(jù)。【例】 先定義數(shù)組,然后給數(shù)組元素賦值。DIMENSION abc(3) &abc(1),abc(2),abc(3)DECLARE b(2,3)&b(1,1) b(1,2) b(1,3)b(2,1) b(2,2) b(2,3)

12、STORE 10 TO babc(1)=30abc(2)=TCP/IPabc(3)=.F.【說明】 在定義一維數(shù)組abc和二維數(shù)組b后,對(duì)兩個(gè)數(shù)組賦值。賦值后b中所有元素的值均為10;abc中各元素分別賦予了不同類型的數(shù)據(jù)30、“TCP/IP”和.F.。學(xué) 號(hào)姓 名年 齡計(jì)算機(jī)英 語(yǔ)物 理021101黃 偉18958588021102李 勇19859085021103王 芳18758180021104田 甜17708276021105周希望18907582字段變量屬性(字段)字段變量 字段變量即數(shù)據(jù)表中的字段,它是建立數(shù)據(jù)表時(shí)定義的一類變量。 在數(shù)據(jù)表中,同一字段名下的數(shù)據(jù)值是不同的,每個(gè)字段

13、都稱為字段變量。 字段變量的類型有字符型、數(shù)值型、浮點(diǎn)型、雙精度型、整型、邏輯型、日期型、日期時(shí)間型、備注型、通用型等。學(xué)習(xí)要點(diǎn):2.1 常量與變量2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.2 函數(shù)【定義】系統(tǒng)提供的實(shí)現(xiàn)特定功能的小程序Visual FoxPro提供了豐富的函數(shù)。豆?jié){=豆子+豆?jié){機(jī)(函數(shù))2.2 函數(shù)豆?jié){=豆子+豆?jié){機(jī)(函數(shù))在使用Visual FoxPro的函數(shù)時(shí),應(yīng)注意以下幾點(diǎn): 準(zhǔn)確地掌握函數(shù)功能。 每一個(gè)函數(shù)都有一個(gè)返回值。函數(shù)的返回值有確定的類型,因此在使用函數(shù)時(shí)特別要注意類型匹配。 函數(shù)對(duì)其參數(shù)的類型也有要求,否則將產(chǎn)生類型

14、不匹配的語(yǔ)法錯(cuò)誤。數(shù)值函數(shù)、字符函數(shù)、日期時(shí)間函數(shù)、類型轉(zhuǎn)換函數(shù)數(shù)值運(yùn)算函數(shù)【功能】求數(shù)值表達(dá)式值的絕對(duì)值。1求絕對(duì)值、平方根和求整函數(shù)【格式】 ABS()ABS(10) = 10ABS(-10)= 10數(shù)值運(yùn)算函數(shù)1求絕對(duì)值、平方根和求整函數(shù)【格式】 SQRT()【功能】求數(shù)值表達(dá)式值的平方根【格式】 INT()【注意】不考慮小數(shù)大小?Sqrt(25)&52四舍五入函數(shù)ROUND()【格式】【例】?ROUND(86.6265,0)87?ROUND(86.6265,1)86.6?ROUND(86.6265,-1)90?ROUND(86.6265,-2)100操作對(duì)象ROUND(,)四舍

15、五入的位置(正數(shù)表示小數(shù)位數(shù),負(fù)數(shù)。本函數(shù)按指定的小數(shù)位數(shù)對(duì)數(shù)值進(jìn)行四舍五入處理。3求最大值、最小值函數(shù)【格式】【功能】求多個(gè)數(shù)值表達(dá)式中的最大值或最小值。MAX |MIN(,)【例】 比較值的大小。?MAX(WE,YOU)YOU4取模函數(shù)【格式】MOD(,)【功能】取數(shù)值表達(dá)式1除以數(shù)值表達(dá)式2所得的余數(shù)。【例】 求下列各數(shù)的取模值。? MOD(20,3)2& 顯示20除以3所得的余數(shù)? MOD(20,-3)-1& 顯示20除以-3所得的余數(shù)字符處理函數(shù)1取字符串的長(zhǎng)度函數(shù)【格式】 LEN()【例】 取字符串長(zhǎng)度值。? LEN(“中文Visual FoxPro)& 取

16、出全部字符串的長(zhǎng)度值17【功能】取出字符串表達(dá)式的字符長(zhǎng)度值。【注意】一個(gè)字母、符號(hào)、數(shù)字占1個(gè)字節(jié),一個(gè)漢字占2個(gè)字節(jié)。2取子串函數(shù)【格式】【功能】在字符串表達(dá)式中取出從起始值到指定取出字串長(zhǎng)度值的部分字符。當(dāng)取值長(zhǎng)度缺省時(shí),字符串從起始值一直取到最后一個(gè)字符。SUBSTR(字符串表達(dá)式,起始值,取值長(zhǎng)度)【例】 在下列字符串中取出子串。? SUBSTR(FoxPRO,2,2)* 從第二個(gè)字符開始取出2個(gè)字符ox? SUBSTR(ABCDEF,4)*從第4個(gè)字符開始取到最后DEF遇到中文字符的情況:一個(gè)中文字符占2位,中文字符不按長(zhǎng)度整數(shù)倍取,會(huì)出現(xiàn)不可預(yù)知的情況。?substr(中文vis

17、ual,1,2)* 從第一個(gè)個(gè)字符開始取出2個(gè)字符長(zhǎng)度字符?substr(中文visual,2,1)*從第2個(gè)字符開始取到最后中亂碼3從字符串左端取子串函數(shù)【格式】LEFT(,)【功能】從字符串表達(dá)式的左端開始,取出指定取值長(zhǎng)度的子串。【例】 從字符串左端取出子串。? LEFT(FoxPro,3)& 從字符“FoxPro”左端開始取出3個(gè)字符Fox? LEFT(程序設(shè)計(jì),2) & 從字符“程序設(shè) 計(jì)”左端開始取出2個(gè)字符長(zhǎng)度程4從字符串右端取出子串函數(shù)【格式】RIGHT(,)【功能】從字符串表達(dá)式的右端開始,取出指定取值長(zhǎng)度的子串。【例】 從字符串右端取出子串。& 從字

18、符串右? RIGHT(FoxPro,3)端開始取出3個(gè)字符Pro5求子串的位置函數(shù)【格式】【功能】求子串在字符串表達(dá)式出現(xiàn)的位置,當(dāng)缺省時(shí),求子串首次出現(xiàn)的位置,否則,求子串在字符串表達(dá)式第次出現(xiàn)的位置。AT(, ,)【例】 在字符串中檢索子串的位置。? AT(IS,THIS IS a BOOK)& 求子串“IS”在字符串首次出現(xiàn)的位置3? AT(IS,THIS IS a BOOK,2)& 求子串“IS”在字符串第2次出現(xiàn)的位置6?AT(文,中文)36刪除空格函數(shù)【格式】ALLTRIM()【功能】刪除字符串表達(dá)式中前導(dǎo)和末尾的空格。【例】 刪除字符串前后的空格。?alltrim

19、( visual fox )& 去掉字符串左邊空格visual fox?alltrim( visual fox )+ab“visual foxab注意:只去前導(dǎo)和末尾空格,中間空格保持不變。7字符串替換函數(shù)STUFF()【格式】【功能】用替換中的某部分字符串,對(duì)中進(jìn)行替換的開始位置以及被替換字符的個(gè)數(shù)分別由和確定。STUFF(,)【例】 用含有6個(gè)字符的子串“FoxPro”替換主串“FORTRAN-PASCAL-BASIC”中的字符串“PASCAL”,替換的起始位置為9。?STUFF(FORTRAN-PASCAL-BASIC,9,6,FoxPro)FORTRAN-FoxPro-BASI

20、C【例】 用“全國(guó)”替換“四川計(jì)算機(jī)等級(jí)考試”中的“四川”二字。?stuff(四川計(jì)算機(jī)等級(jí)考試,1,4,全國(guó))全國(guó)計(jì)算機(jī)等級(jí)考試【注意】如果長(zhǎng)度值為0,相當(dāng)于在起始位置之前插入子字符串。?stuff(visual pro,8,0,fox)visual fox pro【注意】如果子串為空串,相當(dāng)于刪除指定的一部分字符串。?stuff(visual fox pro,8,3,)visual pro8字符替換函數(shù)CHRTRAN()【格式】【功能】字符串1中有字符與第2個(gè)字符串相同時(shí),就用第3個(gè)字符串相對(duì)應(yīng)的字符(與字符串2)替換這些字符。如果字符串3中包含的字符數(shù)少于第二個(gè)字符串包含的字符,則第一個(gè)

21、字符串相應(yīng)字符被刪除。CHRTRAN(,)Eg:x1 = CHRTRAN(ACDFGB,ABCD,ac)字符串1: ACDFGB字符串2 :ABCD字符串3: a caFGc9字符串匹配函數(shù)【格式】【功能】比較兩個(gè)字符串對(duì)應(yīng)位置上的字符,若所有對(duì)應(yīng)字符匹配,返回邏輯真(.T.)。否則返回邏輯假(.F.)。字符1中可以包含通配符。LIKE(,)【例】LIKE (a*,abc) .T.LIKE (ac*,abc) .F.10大寫字母轉(zhuǎn)小寫字母函數(shù)【格式】LOWER()【功能】將字符串表達(dá)式中的所有大寫字母轉(zhuǎn)換成小寫字母。【例】 將大寫字母轉(zhuǎn)換成小寫字母。? LOWER(FoxPro)foxpro&

22、amp; 顯示小寫字母11小寫字母轉(zhuǎn)大寫字母函數(shù)【格式】【功能】將字符串表達(dá)式中的所有小寫字母轉(zhuǎn)換成大寫字母。UPPER()【例】 將小寫字母轉(zhuǎn)換成大寫字母。? UPPER(abcABCabc)ABCABCABC & 顯示大寫字母12計(jì)算子串出現(xiàn)函數(shù)【格式】【功能】返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù),返回值為數(shù)值型。OCCURS(,)【例】 s = abcdefhgrabcefabr?occurs(a,s)3理想長(zhǎng)度L應(yīng)是數(shù)值表達(dá)式的長(zhǎng)度。轉(zhuǎn)換長(zhǎng)度L,則字符串加前導(dǎo)空格。數(shù)值整數(shù)部分=轉(zhuǎn)換長(zhǎng)度L,優(yōu)先滿足整數(shù)部分,再調(diào)整小數(shù)部分。轉(zhuǎn)換長(zhǎng)度數(shù)值整數(shù)部分,返回*。轉(zhuǎn)換長(zhǎng)度默認(rèn)為10

23、,小數(shù)位數(shù)默認(rèn)為0。轉(zhuǎn)換函數(shù)(使表達(dá)式的類型一致)1數(shù)值轉(zhuǎn)字符串函數(shù)【格式】 STR( ,,)【功能】將數(shù)值表達(dá)式轉(zhuǎn)換為字符串。【例】 將下列數(shù)值表達(dá)式轉(zhuǎn)換為字符串。?str(123.4567,9,4)123 .4567& 加前導(dǎo)空格?str(123.4567,6,3)123.46& 優(yōu)先滿足整數(shù)部分?str(123.4567,1,0)*2字符串轉(zhuǎn)換為數(shù)值函數(shù)【格式】【功能】將由數(shù)字符號(hào)組成的字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值,小數(shù)點(diǎn)后保留2位小數(shù)。VAL()【例3】 將字符串轉(zhuǎn)換為數(shù)值。?val(123)123.00 & 顯示數(shù)值型結(jié)果?val(123.567)123.57?val

24、(123.ABC),val(AB123)123.00 0.00注意:若字符串內(nèi)出現(xiàn)非數(shù)字字符,那么只轉(zhuǎn)換前面的部分。若字符串首字符不是數(shù)字符號(hào),則返回零。3字符串轉(zhuǎn)日期函數(shù)【格式】【功能】將指定的字符串表達(dá)式轉(zhuǎn)換為日期型數(shù)據(jù)。CTOD()【說明】 在字符串轉(zhuǎn)日期型數(shù)據(jù)時(shí),字符串應(yīng)符合日期型數(shù)據(jù)格式。系統(tǒng)默認(rèn)日期型格式是mm/dd/yy,也可以用SET DATETO命令相配,用SET CENTURYON/OFF設(shè)置世紀(jì)的日期格式。【注意】字符串中日期格式要與set date to格式一致【例】 將字符串轉(zhuǎn)換為日期后,再加上15天。? CTOD(06/15/02)+1506/30/02 &

25、 顯示轉(zhuǎn)換后的日期【例】 將兩個(gè)字符串轉(zhuǎn)換為日期后,可得一個(gè)天數(shù)。? CTOD(06/15/02)-CTOD(05/15/02)31 & 顯示轉(zhuǎn)換后的天數(shù)set date to ymd?ctod(06/3/25)+506/03/304日期轉(zhuǎn)字符串函數(shù)【格式】【功能】將日期(時(shí)間)型數(shù)據(jù)轉(zhuǎn)換為字符型日期數(shù)據(jù),如果選擇,函數(shù)用yyyymmdd格式。( ) DTOC( ,)【例】 將日期型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。? DTOC(06/20/02)& 顯示日期SET STRICTDATE TO 0& 設(shè)置通常的日期格式?DTOC(2008/12/01)12/01/08?DTOC(2

26、008/12/01,1)200812015宏替換函數(shù)【格式】【功能】替換出字符型變量的內(nèi)容,并使用一個(gè)句點(diǎn).來結(jié)束這個(gè)宏替換表達(dá)式。&.【例】 x= hellom=x?&mDATE( )日期型DATETIME()日期時(shí)間型TIME()字符型日期函數(shù)1系統(tǒng)日期函數(shù)【格式】DATE( )DATETIME()TIME()【功能】返回系統(tǒng)的當(dāng)前日期。2取年份函數(shù)【格式】YEAR()日期型日期時(shí)間型字符型【功能】從日期表達(dá)式中取出四位數(shù)字表示年份(數(shù)值型)。Eg :Year(date()-year(出生日期)=實(shí)際年齡3取月函數(shù)【格式】 MONTH()【功能】從日期表達(dá)式中取出月份。4取

27、號(hào)數(shù)函數(shù)【格式】【功能】從日期表達(dá)式中取出號(hào)數(shù)。DAY()例:?year(2001/10/01)2001?month(2001/10/01)10?day(2001/10/01)15星期幾函數(shù)【格式】【功能】從日期表達(dá)式中取出星期幾。【說明】 DOW( )函數(shù)是從日期中取出星期1,2,3,7。其中1表示星期日,2表示星期一,7表示星期六。CDOW( )函數(shù)是從日期中取出英文“Monday”表示星期一、“Tuesday”表示星期二等。DOW|CDOW()【例】 取出當(dāng)前系統(tǒng)日期中的星期幾。?DOW(date()?CDOW(date()學(xué)習(xí)要點(diǎn):2.1 常量與變量2.1.1常 量2.1.2變 量2.

28、2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.3 表達(dá)式 表達(dá)式是由常量、變量、函數(shù)和運(yùn)算符組成的運(yùn)算式。 表達(dá)式有計(jì)算、判斷和數(shù)據(jù)類型轉(zhuǎn)換等作用。 表達(dá)式分為算術(shù)表達(dá)式、字符表達(dá)式、關(guān)系表達(dá)式、日期或日期時(shí)間表達(dá)式和邏輯表達(dá)式。A.運(yùn)算符及其功能B.運(yùn)算符的優(yōu)先級(jí)中間產(chǎn)物1算術(shù)表達(dá)式 算術(shù)表達(dá)式是由算術(shù)運(yùn)算符、數(shù)值型常量、數(shù)值型變量、數(shù)值類型的字段、數(shù)值型數(shù)組和函數(shù)組成。 +- * / % * 算術(shù)表達(dá)式的運(yùn)算結(jié)果是數(shù)值型數(shù)據(jù)。 算術(shù)運(yùn)算時(shí),運(yùn)算的規(guī)則是:( ) * */% + -。*:2*323取余運(yùn)算15%215%-2-15%2規(guī)定:異數(shù)取余,余數(shù)與除數(shù)同號(hào);若不同,與除數(shù)相加.乘方表

29、示2字符表達(dá)式 字符表達(dá)式是由字符運(yùn)算符、字符型常量、字符型內(nèi)存變量、字符型字段變量、字符型數(shù)組和函數(shù)組成。 字符表達(dá)式的運(yùn)算結(jié)果仍然是字符型數(shù)據(jù)。字符運(yùn)算符用于連接字符串。 +:兩個(gè)字符串首尾相連。 -:先把前字符串尾部的空格移到整個(gè)字符串的后面,然后首尾相連。Eg:a=hello B=world!?a+b?a-b?a - b +a& hello world!& helloworld!& helloworld! a3關(guān)系表達(dá)式 關(guān)系表達(dá)式是由關(guān)系運(yùn)算符、算術(shù)表達(dá)式、字符表達(dá)式等組成。 關(guān)系表達(dá)式的運(yùn)算結(jié)果是邏輯值真或假,當(dāng)關(guān)系成立,結(jié)果為.T.(真);當(dāng)關(guān)系不成立,結(jié)

30、果為.F.(假)。 ,=, ,=,!=/#(不等于) ,=/=(字符串設(shè)置比較),$(子串測(cè)試)“=”用作字符串比較,與設(shè)置SET EXACT ON|OFF命令有關(guān)。ON:首先在較短字符串后面補(bǔ)上空格,使之長(zhǎng)度相等,然后比較。OFF:如果右邊字符串是左邊字符串的子串就返回T(以等號(hào)右邊字符結(jié)束為標(biāo)識(shí))。Eg:set exact on“ab”=“abc”“ab”=“ab ”set exact off“abc”=“abc”“abc”=“ab”“acb”=“ab”.f.t.t.t.f.(2) “$”:如果左邊字符串是右邊字符串的子串就返回.T.Eg: “ab”$ “abc” .t.(3) “=”:如

31、果左右兩邊字符串都完全相等,返回.t.補(bǔ)充:比較運(yùn)算時(shí),不同類型數(shù)據(jù)的大小規(guī)定A.數(shù)值型:10B.日期型:越晚的日期越大C.邏輯型:.T.F.D.字符型:字母:abczAB.”王”E.優(yōu)先級(jí):“,=, “= = !=”賦值和比較:?x=y-2x=yy=x=2x=y x1.vfp的表達(dá)式 :是由命令、變量、操作符組成.2.一個(gè)命令行至少有一個(gè)命令。3.分析這樣的語(yǔ)句要選擇命令語(yǔ)句,再找操作符 。這里的=是命令賦值和比較:x=y? x=y-2這里的?是命令,=是運(yùn)算符, x.y是變量顯示 x=y 是真還是假x.y是變量,把y的值賦值 給x? x=y這里的命令是? ,=和-是運(yùn)算符,按照優(yōu)先級(jí)順序,

32、先做算數(shù)運(yùn)算;最后,把x是否等于y-2的值顯示出來? x=y=2x=y=2第一個(gè)=是命令,第二個(gè)=運(yùn)算符把y=2是否為真的結(jié)果賦值給X會(huì)顯示錯(cuò)誤,這是因?yàn)? 是命令,后面的=都是比較,沒有括號(hào)所以按順序運(yùn)算 優(yōu)先級(jí),先運(yùn)算x=y,結(jié)果為邏輯型(L);然后運(yùn)算L= 2, 因?yàn)檫\(yùn)算符二兩類型不一致,所以提示錯(cuò)誤。4日期或日期時(shí)間表達(dá)式 日期或日期時(shí)間表達(dá)式是由算術(shù)運(yùn)算符(+或-)、算術(shù)表達(dá)式、日期或日期時(shí)間型變量、日期或日期時(shí)間型內(nèi)存變量數(shù)組及函數(shù)組成。 日期或日期時(shí)間型的運(yùn)算結(jié)果是日期或日期時(shí)間型或常數(shù)。日期或日期時(shí)間運(yùn)算及表達(dá)式一覽表運(yùn)算符功 能舉例結(jié)果+相加相減日期+數(shù)字 2010-01-1

33、7+102010-01-17 10:20:20+150日期-數(shù)字01/27/1001/27/10 10:22:5001/17/10日期型日期時(shí)間型日期型2010-01-2710日期-日期2010-06-262010-05-2631數(shù)值型兩個(gè)日期不能相加!日期型和日期時(shí)間型數(shù)據(jù)在使用時(shí)有多種環(huán)境,系統(tǒng)默認(rèn)環(huán)境是嚴(yán)格的日期格式,命令如下: SET STRICTDATE TO 1& 系統(tǒng)默認(rèn)嚴(yán)格的日期格式在嚴(yán)格的日期格式下,日期或日期時(shí)間運(yùn)算可以采用如下形式: ? 2002-06-19-10或 ?CTOD(06/19/02)-10輸出結(jié)果為:06/09/02 日期型和日期時(shí)間型數(shù)據(jù)在輸出時(shí),

34、若要輸出是四位年份,應(yīng)使用世紀(jì)的日期格式設(shè)置命令:SET CENTURY ON格式?CTOD(06/19/02)-1006/09/2002& 設(shè)置世紀(jì)的日期& 顯示結(jié)果 若要改為原來的默認(rèn)格式,應(yīng)使用設(shè)置命令:SET CENTURY OFF& 取消世紀(jì)的日期格式?CTOD(06/19/02)06/09/02& 顯示結(jié)果5邏輯表達(dá)式 邏輯表達(dá)式是由邏輯運(yùn)算符、邏輯型常量、邏輯型內(nèi)存變量、邏輯型數(shù)組、函數(shù)和關(guān)系表達(dá)式組成。 在邏輯表達(dá)式中,可以描述復(fù)合條件的多個(gè)關(guān)系表達(dá)式,一般格式為: 邏輯表達(dá)式運(yùn)算的結(jié)果是邏輯值真(.T.)或假(.F.)。邏輯運(yùn)算符及舉例如表所示

35、。邏輯運(yùn)算符及表達(dá)式一覽表運(yùn)算符功 能舉例結(jié)果.NOT.或!邏輯非,取邏輯值相反的值? .NOT.73.F.AND.邏輯與,兩邊的條件都成立,其結(jié)果值為真?5*927.AND.36.T.OR.邏輯或,只要一邊條件成立,其結(jié)果值為真16?7*320.OR.2519.T.邏輯運(yùn)算的規(guī)則A.T.T.F.F.B.T.F.T.F.NOT.B.F.T.F.T.A.AND.B.T.F.F.F.A.OR.B.T.T.T.F.邏輯運(yùn)算的優(yōu)級(jí):.NOT.、.AND.、.OR.學(xué)習(xí)要點(diǎn):2.1 常量與變量2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.4.1 程序文件操作及輸入語(yǔ)

36、句2.4.2 程序基本結(jié)構(gòu)交互式范式適合解決一些簡(jiǎn)單問題3.4.1程序文件的操作及輸入語(yǔ)句2VFP系統(tǒng)三種操作方式:菜單、命令、程序有多條命令組成的文件命令可以不用順序方式執(zhí)行程序文件的操作關(guān)于VFP文件的操作程序、數(shù)據(jù)庫(kù)、表、查詢、視圖、表單、菜單、報(bào)表。前提:提前建立好默認(rèn)目錄。Set default to d:建立:文件-新建-程序-新建文件-編寫程序保存:文件-保存-輸入文件名-保存(點(diǎn)擊保存按鈕)。擴(kuò)展名為.prg。打開:A.文件-打開-文件類型-文件名-確定B.MODIFY COMMAND 運(yùn)行(查看程序運(yùn)行結(jié)果)A.程序-運(yùn)行-選擇文件-運(yùn)行(或直接選紅色嘆號(hào)運(yùn)行)B.DO 文件

37、名此命令既可以在命令窗口發(fā)出,也可以出現(xiàn)在程序文件中,表示調(diào)用執(zhí)行另一個(gè)程序。結(jié)束:A.所有命令被執(zhí)行B.遇到下列語(yǔ)句:(1)CANCEL:終值程序的運(yùn)行(2)DO:轉(zhuǎn)去執(zhí)行另一個(gè)程序(3)RETURN:結(jié)束當(dāng)前程序的執(zhí)行,返回上級(jí)程序(4)QUIT:退出VFP系統(tǒng)關(guān)閉:點(diǎn)擊程序文件右上角文件添加注釋:*或NOTE -添加在開頭代碼行&-添加在命令行尾部注釋不以分號(hào)結(jié)尾,否則下一行仍作為注釋。 每條都以回車鍵結(jié)尾,一行只寫一條命令。若需分行書寫,加續(xù)行符;簡(jiǎn)單的輸入輸出命令1.Accept 提示語(yǔ) to 內(nèi)存變量【注意】:提示語(yǔ)必須加引號(hào)只接受字符型數(shù)據(jù)【功能】:程序暫停運(yùn)行,顯示提示

38、語(yǔ),等待用戶輸入,輸入結(jié)束按回車把輸入內(nèi)容賦值給內(nèi)存變量。2.Input 提示語(yǔ) to 內(nèi)存變量【注意】:接受任何vfp合法數(shù)據(jù)類型,輸入內(nèi)容時(shí)加定界符。【功能】:程序暫停運(yùn)行,等待用戶輸入,輸入結(jié)束按回車把輸入內(nèi)容賦值給內(nèi)存變量。input 請(qǐng)輸入一個(gè)數(shù) to ainput 請(qǐng)輸入另一個(gè)數(shù) to b?a+bEg:Input輸入語(yǔ)句3.Wait 提示語(yǔ) windows timeout 秒數(shù)【功能】:顯示內(nèi)容在屏幕右上角,顯示時(shí)間由秒數(shù)確定。Eg:?馬上開獎(jiǎng),請(qǐng)耐心等待wait 恭喜你中獎(jiǎng)了,礦泉水一瓶!window nowait timeout 5?開獎(jiǎng)結(jié)束,請(qǐng)繼續(xù)學(xué)習(xí)要點(diǎn):2.1 常量與變量

39、2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.4.1程序文件操作及輸入語(yǔ)句2.4.2 程序基本結(jié)構(gòu)2.4.2 程序基本結(jié)構(gòu)1.選擇結(jié)構(gòu)2.循環(huán)結(jié)構(gòu)3.順序結(jié)構(gòu):從上到下,從前到后重點(diǎn)掌握:語(yǔ)句的執(zhí)行過程程序語(yǔ)言現(xiàn)實(shí)語(yǔ)言 讀程序現(xiàn)實(shí)語(yǔ)言程序語(yǔ)言 寫程序(一)選擇結(jié)構(gòu)1.單重選擇語(yǔ)法格式:if 語(yǔ)句Endif首先判斷條件是否成立,就是最終結(jié)果是一個(gè)邏輯值,如果為真,執(zhí)行語(yǔ)句,執(zhí)行后到endif語(yǔ)句;如果為假,不執(zhí)行語(yǔ)句,直接到endif后的語(yǔ)句。(一)選擇結(jié)構(gòu)【Eg】ClearInput “請(qǐng)輸入a:”to aInput “請(qǐng)輸入b:” to bIf ab?

40、“最大值為:”,aEndif? “程序執(zhí)行完畢”2.雙重選擇If 語(yǔ)句1Else語(yǔ)句2Endif執(zhí)行過程:首先判斷條件是否成立,如果成立,就執(zhí)行語(yǔ)句1,否則就執(zhí)行語(yǔ)句2。執(zhí)行后到endif后的語(yǔ)句。提示:(1)else后沒有條件。(2)雙重語(yǔ)句有且只能執(zhí)行一條。 3.多重選擇Do caseCase 條件1語(yǔ)句1Case 條件2語(yǔ)句2Case 條件m語(yǔ)句motherwise 語(yǔ)句m+1Endcase 執(zhí)行過程依次判斷條件是否成立,哪個(gè)成立就執(zhí)行哪個(gè)語(yǔ)句,執(zhí)行后直接到endcase后的語(yǔ)句。如果沒有成立的,就指定otherwise語(yǔ)句,如果沒有otherwise語(yǔ)句,就什么也不執(zhí)行,直接到endc

41、ase后的語(yǔ)句注意:多重選擇最多執(zhí)行一條語(yǔ)句。(二)循環(huán)結(jié)構(gòu)1.while循環(huán)語(yǔ)法格式Do while 循環(huán)體Enddo執(zhí)行過程:首先判斷條件是否成立,如果為真,就執(zhí)行循環(huán)體,執(zhí)行后再次判斷條件是否成立,若成立則再執(zhí)行,直到條件為假,退出循環(huán),到enddo后的語(yǔ)句。Eg:1+2+3+100 = 5050注意:臨界值的變化;用于條件比較明顯的循環(huán)。LOOP命令結(jié)束本次循環(huán),不再執(zhí)行循環(huán)其后的循環(huán)語(yǔ)句,而是轉(zhuǎn)回DO WHILE處重新判斷。EXIT命令結(jié)束循環(huán)體的執(zhí)行,轉(zhuǎn)去執(zhí)行ENDDO后面的語(yǔ)句。2.for循環(huán)For 循環(huán)變量 = 初值 to 終值 step 步長(zhǎng)循環(huán)體Endfor執(zhí)行過程:A.如

42、果步長(zhǎng)為正,判斷條件為循環(huán)變量=終值,如果條件成立,就執(zhí)行循環(huán)體,執(zhí)行后循環(huán)變量按步長(zhǎng)遞減。然后再次判斷條件,如果成立,再執(zhí)行,再判斷,直到條件為假,退出循環(huán),到endfor 后語(yǔ)句。C.默認(rèn)步長(zhǎng)是1.2.for循環(huán)For 循環(huán)變量 = 初值 to 終值step 步長(zhǎng)循環(huán)體EndforD.、都可以是數(shù)值表達(dá)式,但是這些表達(dá)式僅在循環(huán)開始時(shí)執(zhí)行一次,在循環(huán)體執(zhí)行過程中,初值、終值、步長(zhǎng)不會(huì)改變。E.LOOPEXIT語(yǔ)句同樣適用于for語(yǔ)句。2.for循環(huán)For 循環(huán)變量 = 初值 to 終值step 步長(zhǎng)循環(huán)體EndforEg:編寫程序,判斷一個(gè)大于3的自然數(shù)是否為素?cái)?shù)學(xué)習(xí)要點(diǎn):2.1 常量與變

43、量2.1.1常 量2.1.2變 量2.2 函數(shù)2.3 表達(dá)式2.4 程序與程序文件2.4.1程序文件操作及輸入語(yǔ)句2.4.2 程序基本結(jié)構(gòu)2.5 多模塊程序設(shè)計(jì)主程序、子程序變量:全局變量、私有變量、局部變量2.5 多模塊程序設(shè)計(jì)一.過程的概念在程序設(shè)計(jì)中,為了有效地解決有些運(yùn)算或程序段落重復(fù)調(diào)用的情況,可以設(shè)計(jì)相對(duì)獨(dú)立并能完成特定功能的程序段,這種程序段稱為過程或子程序,用于調(diào)用程序段的程序稱為主程序。在應(yīng)用系統(tǒng)的開發(fā)中,一般會(huì)根據(jù)實(shí)際需要將整個(gè)系統(tǒng)劃分成若干模塊,通常將這些可以調(diào)用的功能模塊也設(shè)計(jì)成過程或子程序。模塊是一個(gè)相對(duì)獨(dú)立的程序段,它可以被其它模塊所調(diào)用,也可以去調(diào)用其它的模塊。循

44、環(huán)結(jié)構(gòu)實(shí)現(xiàn)在一個(gè)程序中多次執(zhí)行的某段程序。過程實(shí)現(xiàn)在同一程序的不同位置,或在不同程序中執(zhí)行相同程序段。在應(yīng)用系統(tǒng)開發(fā)中,通常將系統(tǒng)劃分成若干個(gè)模塊,系統(tǒng)在主模塊控制下,調(diào)用各個(gè)功能模塊以完成系統(tǒng)的各種功能操作。通常將這些可調(diào)用的功能模塊設(shè)計(jì)為過程或者子程序。可以在程序末尾加 return TO MASTER|TO 【說明】:RETURN返回調(diào)用該過程的主程序,并執(zhí)行主程序中調(diào)用命令的下一條命令;TO MASTER直接返回最高級(jí)程序。1.子程序的建立于調(diào)用(1)建立子程序選擇:將表達(dá)式的值返回給調(diào)用程序。選擇TO MASTER:不論前面有多少級(jí)調(diào)用,直接返回第一級(jí)主程序。選擇TO 程序文件名:可

45、以直接返回指定的程序文件。缺省return命令:在過程結(jié)束處自動(dòng)執(zhí)行一條隱含的return命令,并返回邏輯真。(2)調(diào)用子程序格式1: do 格式2: ()【功能】:執(zhí)行DO調(diào)用命令時(shí),將指定的過程調(diào)入內(nèi)存并執(zhí)行。【說明】:格式2中的子程序名不加擴(kuò)展名補(bǔ)充:輸出命令(1)非格式輸出命令【格式】?或 ?【功能】顯示內(nèi)存變量、常量或表達(dá)式的值。【說明】?是在光標(biāo)所在行的下一行開始顯示?則是在當(dāng)前光標(biāo)位置開始顯示。(2)格式輸出命令【格式】【功能】按指定的坐標(biāo)位置在屏幕上輸出表達(dá)式的值。 SAY 【說明】輸出的位置由指定,的內(nèi)容可以是數(shù)值、字符、內(nèi)存變量和字段變量。 2,10 say 電話號(hào)碼簿 4

46、,10 say A:按姓名查詢 6,10 say B:按記錄號(hào)刪除 8,10 say C:插入新紀(jì)錄(3)文本輸出命令【格式】TEXTENDTEXT【功能】將TEXT和ENDTEXT之間的文本信息照原樣輸出。【說明】TEXT與ENDTEXT在程序中必須配對(duì)。補(bǔ)充:環(huán)境設(shè)置命令系統(tǒng)提供SET命令組用來設(shè)置程序運(yùn)行的環(huán)境。(1)關(guān)閉對(duì)話命令【命令】 SET TALK ON|OFF【功能】 控制非輸出性的執(zhí)行結(jié)果是否在屏幕上顯示或打印出來。【說明】 系統(tǒng)默認(rèn)值為ON。(2)設(shè)置跟蹤命令【命令】 SET ECHO ON|OFF【功能】 控制程序文件執(zhí)行過程中的每條命令是否顯示或打印出來。【說明】 系統(tǒng)

47、默認(rèn)值為OFF。【例】 編寫程序P1.PRG,其程序功能是計(jì)算 S=X!+Y!+Z! 。程序P1 .PRG主程序和子程序編寫窗口2.過程文件過程是作為一個(gè)文件獨(dú)立地存儲(chǔ)在磁盤上,為減少磁盤文件的打開次數(shù),可以把多個(gè)過程寫入一個(gè)過程文件中,過程文件中包含的過程數(shù)量不限。過程文件的擴(kuò)展名仍然是.PRG。(1)建立過程文件【功能】建立過程文件。MODIFY COMMAND RETURNRETURNRETURNPRO.prgRETURNRETURNRETURNPROCEDURE RETURNPROCEDURE RETURNPROCEDURE RETURN過程文件的基本書寫格式:過程文件也可以放在命令文

48、件中,但必須放置在正常代碼后面:PRO.prgPROCEDURE RETURNPROCEDURE RETURNPROCEDURE RETURN(2)執(zhí)行過程當(dāng)程序執(zhí)行到調(diào)用子程序的語(yǔ)句時(shí),系統(tǒng)將外存中的子程序調(diào)入內(nèi)存,程序自動(dòng)轉(zhuǎn)到相應(yīng)的子程序去執(zhí)行。子程序執(zhí)行完畢,程序返回調(diào)用子程序語(yǔ)句的下一語(yǔ)句繼續(xù)執(zhí)行。【功能】調(diào)用過程文件中的指定過程。后加()表示帶參調(diào)用DO ()(3)打開過程文件SET PROCEDURE TO 【功能】打開指定的過程文件,將過程文件中所包含的子程序全部調(diào)入內(nèi)存。【說明】若修改了過程文件的內(nèi)容,一定要重新打開過程文件,再進(jìn)行過程文件的調(diào)用。系統(tǒng)在同一時(shí)刻只能打開一個(gè)過程

49、文件,打開新過程文件的同時(shí)將關(guān)閉原來打開的過程文件。(4)關(guān)閉過程文件SET PROCEDURE TO【功能】關(guān)閉已打開的過程文件。RELEASE PROCEDURE,【功能】關(guān)閉指定過程文件。【例】 編寫程序P2.PRG,其程序功能是求3100之間的所有素?cái)?shù)。注意:對(duì)一個(gè)自然數(shù)M(取值在3100之間的奇數(shù))求素?cái)?shù)的方法是:將M依次除以3到M的算數(shù)平方根之間的數(shù),若均不能被整除,則M即為素?cái)?shù),否則,M不是素?cái)?shù)。3100之間的所有素?cái)?shù):133153733173759795194161837234367891129477197圖 程序P2 .PRG主程序和過程文件編寫窗口二.變量的作用域和參數(shù)調(diào)用

50、1變量的作用域在程序設(shè)計(jì)中,內(nèi)存變量的這些作用范圍稱為內(nèi)存變量的作用域。內(nèi)存變量的作用域根據(jù)作用范圍可分為全局變量、私有變量和局部變量。(1)全局變量全局變量是指在程序的任何嵌套中及在程序執(zhí)行期間始終有效的變量。程序執(zhí)行完畢,它們不會(huì)在內(nèi)存自動(dòng)釋放。全局變量的定義如下:PUBLIC 【功能】將內(nèi)存變量名表中的變量聲明為全局變量。【說明】全局變量初值為邏輯假(.f.)簡(jiǎn)單變量和數(shù)組變量都可以定義為全局變量命令窗口中直接使用而由系統(tǒng)建立的變量也為全局變量(2)局部變量局部變量是指用LOCAL命令定義的,只在建立它的過程中有效的內(nèi)存變量。建立局部變量的程序執(zhí)行完畢,局部變量的值將被自動(dòng)清除。局部變量

51、的定義方式:LOCAL(3)私有變量私有變量是指在程序中直接使用而未通過PUBLIC和LOCAL命令聲明,而由系統(tǒng)自動(dòng)隱含建立的變量。私有變量的作用域是建立它的模塊和其下屬各模塊。一旦建立它的模塊程序運(yùn)行結(jié)束,私有變量將自動(dòng)清除。開發(fā)程序是模塊化開發(fā)的,主程序和子程序很可能不是同一個(gè)人建立的,對(duì)于其他程序模塊中變量的使用,編程者并不是很清楚。可能出現(xiàn)如下情況:子程序中用到的變量是主程序中已經(jīng)建立的,子程序的運(yùn)行會(huì)改變主程序中變量的值。在此,PRIVATE命令可以解決這些問題:PRIVATE命令可以隱藏主程序中可能存在的變量,使得這些變量在子程序中暫時(shí)無效。PRIVATE PRIVATE ALL

52、 LIKE |EXCEPT【注意】PRIVATE命令不是建立內(nèi)存變量,而是隱藏在上層模塊中可能已經(jīng)存在的內(nèi)存變量,使得這些變量在當(dāng)前模塊暫時(shí)無效。圖 程序P16 .PRG主程序和調(diào)用過程編寫窗口【例】編寫程序P16.PRG,其程序功能說明過程中全局變量和局部變量的應(yīng)用。輸出結(jié)果:在主程序中:A=1在過程中:A=11B=2B=12 C=13 D=14返回主程序后:A=11 B=2 C=13 D= List memo like ?List memo like ?List memo中l(wèi)ike初?始變量:”?List memo like ?后的變量:” ?List memo like始?變量”*p1.prg*Public a,bA = 1B = “good”?”程序p1中的初始變量:”Do p2?”程序p1中執(zhí)行p2后變量:”return*p2.prg*Private aC = 12Store date() to a,b”程序p2 的Do p3”程序p2執(zhí)行p3return*p3.prg*Private aA = “12345”B = year(b)C = str(c,1)Private cStore 5 to a,b,c”程序p3中初return3、過程的帶參調(diào)用過程的帶參調(diào)用方法:在調(diào)用過程的命令和被調(diào)用過程的相關(guān)語(yǔ)句中,分別設(shè)置數(shù)量相同、數(shù)據(jù)類型一致且

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論