




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 Visual FoxPro的常量、變量、表達式和函數31 Visual FoxPro的常量一、常量的認識1、常量是表示一個確定的數據,如65.8等。2、Visual FoxPro中,常量的類型有數值型、貨幣型、字符型、邏輯型、日期型、日期時間型6種。二、數值型常量1、數值型常量表示的是一個具體的數,因此,數值型常量也稱為常數。2、數值型常量的表示日常表示法如12、+56、-64.8等。科學表示法1.6E12表示1.61012;1.6E-12表示1.610-12;-1.6E12表示-1.61012;-1.6E-12表示-1.610-12。三、貨幣型常量1、貨幣型常量用來表示一個具體的貨幣
2、值。貨幣型常量的小數位數最多4位。2、貨幣型常量的表示如$12,$12.68,-$12.68等。四、字符型常量1、字符型常量用來表示一串字符(數字、符號、漢字統稱為字符),因此,字符型常量也稱為字符串。2、字符型常量的表示如abcd、abcd、abcd均表示字符串abcd。3、說明表示字符型常量前后的、或稱為字符型常量的定界符,它表示字符串的開始和結束,不是字符串的組成內容。字符串的前后定界符必須一致,如abcd等是錯誤的。當字符串中包含定界符時,必須使用與之不同的定界符作為字符串的定界符,如字符串abcd應表示為abcd或abcd。字符型常量中的字母大小寫是區分的,比如abcd和ABCD是不
3、同的兩個字符串。注意:其他場合,字母的大小寫是不區分的。組成字符串的內容中可以有空格,如ab cd、a bc d、 等都是正確的字符串。定界符中沒有任何內容時,也是正確的字符串,這樣的字符串稱為空串。注意:空串并不是指全部由空格組成的字符串。五、邏輯型常量1、邏輯型常量用來表示一個邏輯值。邏輯值只有兩個:真值和假值。2、邏輯型常量的表示真值:.T. 、.t. 、.Y. 、.y.假值:.F. 、.f. 、.N. 、.n.六、日期型常量1、日期型常量用來表示一個日期。2、日期型常量的表示如2010年12月9日可表示為:2010-12-9、2010.12.9、2010/12/9、2010 12 9。
4、說明:這種表示格式不受系統當前日期格式的影響。七、日期時間型常量1、日期時間型常量用來表示一個日期和時間。2、日期時間型常量的表示格式:日期,時間其中,日期的書寫格式與日期型常量中的日期格式相同,時間的書寫格式有:8:30:30、18:15:25、8:10:30A、8:10:30AM、8:10:30P、8:10:30PM。練習通過顯示命令顯示你的姓名、所在專業、年齡、月消費金額、出生日期、是否黨員(假設真值表示是黨員、假值表示不是黨員)、我們下次課的日期及時間。32 Visual FoxPro的變量一、變量的認識1、變量是一個用名稱(稱為變量名)來表示的量,它的值是可改變的。2、變量名一般以字
5、母或漢字開始,其后可以是字母、漢字、數字及某些符號(如下劃線)。思考a,aa,b12,c_1,a1B2,2d4,同學們,“同學們”,同學們以上哪些可以作為變量名?3、變量的類型由其值的類型決定。二、給變量賦值1、賦值命令的格式變量=表達式store 表達式 to 變量1,變量2,2、賦值命令舉例例1:下列賦值命令是否正確?正確的說出含義,錯誤的說出原因。Store 88 to a1,a2,a3Store 8+8 to b1,b2,b3Store 8,9,10 to c1,c2,c3d1=d2=d3=55p=10p=”生物工程和環境科學”例2:為變量a賦一個值12,為變量x、y、z賦值34.2,
6、并驗證。三、數組變量的另一種使用形式1、數組的認識1普通變量(簡稱變量)的情況是:一個變量里只能“放”一個值。數組變量(簡稱數組)的情況是:一個變量里可以“放”多個值。2、數組的認識2數組中,之所以能“放”多個值,是因為它有多個元素。如,假設a是一個數組,其有兩個元素,則兩個元素分別表示為a(1)、a(2)。假設b是一個有兩行兩列4個元素的數組,則4個元素分別表示為b(1,1)、b(1,2)、b(2,1)、b(2,2)。3、數組的認識3如果一個數組,其元素不分“行”、“列”,則該數組稱為一維數組;如果一個數組,其元素按“行”、“列”排列,則該數組稱為二維數組。4、數組的使用數組必須先定義,然后
7、才能使用。說明:普通變量在第一次賦值時被自動定義,即無需預先定義。5、數組的定義一維數組的定義:dimension|declare 數組名(下標上限)二維數組的定義:dimension|declare 數組名(第一個下標上限,第二個下標上限)說明:下標上限指下標的最大值。下標下限指下標的最小取值。VFP中,下標的下限規定為1。一個命令可同時定義多個數組,之間用逗號分隔。例:定義一維數組A,有4個元素;定義二維數組B,有3行4列元素。6、有關說明數組定義后,如果未對其賦值,則各元素為假值;給數組賦一個值時,其元素均得到該值,但通常都是為其元素分別賦值(因為各元素值往往不同);數組不直接參加運算,
8、參加運算的是它的元素;二維數組元素也可以只用一個下標來表示。四、變量的有關命令1、list memory命令格式:LIST MEMORY LIKE 通配名 TO PRINTER TO FILE 文件名。功能:顯示變量信息。說明:變量信息包括變量名、類型、值等內容。命令格式中,中括號項表示中括號里的內容不是必須有的,看實際情況。這樣的項稱為選項。思考使用選項時,中括號要否?“LIKE 通配名”選項解釋表示只顯示和通配名一致的變量信息。沒有該選項時,表示顯示全部的變量信息。說明:通配名是指包含?或*的變量名,其中,?表示該位置可以是任意的某個符號,*表示該位置可以是任意多的符號。比如a?c表示這樣
9、的一些變量:第一位是a,第二為任意,第三位是c;a*c表示這樣的一些變量:第一位是a,最后一位是c,中間內容任意。“TO PRINTER”選項解釋表示將變量信息同時送打印機打印。“TO FILE 文件名”選項解釋表示將變量信息同時存入到指定的文件中。顯示全部變量信息時,不僅有我們自己使用的變量,而且包括VFP本身所固有的變量(這些變量稱為系統變量,系統變量名均以下劃線開始)。當顯示的變量信息超出一個屏幕時,前面的信息會滾出屏幕。2、display memory命令格式:DISPLAY MEMORY LIKE 通配名 TO PRINTER TO FILE 文件名。功能:顯示變量信息。說明:與li
10、st memory命令的唯一區別在于:當顯示的變量信息超出一個屏幕時,該命令能做到一個屏幕一個屏幕地顯示。3、clear memory命令格式:clear memory功能:清除所有變量。說明:系統變量是我們清除不掉的。4、release命令格式1:release 變量1,變量2,功能:清除指定的變量。格式2:release all功能:清除所有變量。格式3:release all like 通配名功能:清除和通配名一致的變量。格式4:release all except 通配名功能:清除和通配名不一致的變量。練習一、試用二維數組表示如下矩陣并予以顯示:1000010000100001二、用一
11、個下標方式表示上題對角線上各元素,并通過顯示命令顯示出他們的值。三、分別為變量abc,xb,mbn賦值2012-12-15,.f.,25,然后顯示:1、這三個變量的值;2、這三個變量的信息。四、VFP中,能否使用三維數組?五、練習其他有關內容。33 Visual FoxPro的函數一、認識可以通過VFP提供的函數對數據進行運算。通過函數對數據進行運算時,參加運算的叫自變量或參數,運算結果就是函數值。函數的一般使用格式:函數名(自變量,自變量,)注意:VFP中,當一個函數不需要自變量時,圓括號也要寫上,如DATE()等。二、常用數值函數1、ABS函數功能:求一個數的絕對值。例1:ABS(67)例
12、2:ABS(-67+89)例3:ABS(-82)思考:如何驗證函數值?2、SIGN函數功能:當自變量值正時,返回1;當自變量值負時,返回-1;當自變量值為0時,返回0。例:SIGN(56-73)思考:試用SIGN函數寫出為變量B賦值的賦值命令,要求:當變量A的值為正時,B賦以值8+20;當變量A的值為負時,B賦以值8-20;當變量A的值為0時,B賦以值8。3、SQRT函數功能:求正數的平方根。例:SQRT(2)說明:默認計算結果為2位小數。SET DECIMALS TO命令可設置運算結果的小數位數。4、PI函數功能:函數值為圓周率的值。例:PI()5、INT函數功能:返回自變量的整數部分。例1
13、:INT(1.3)例2:INT(1.6)例3:INT(-1.3)例4:INT(-1.6)6、CEILING函數功能:返回大于或等于自變量的最小整數。俗稱天花板函數。例1:CEILING(1.3)例2:CEILING(2)例3:CEILING(-1.3)例4:CEILING(-2)7、FLOOR函數功能:返回小于或等于自變量的最大整數。俗稱地板函數。例1:FLOOR(1.3)例2:FLOOR(2)例3:FLOOR(-1.3)例4:FLOOR(-2)8、ROUND函數功能:對自變量的值進行四舍五入運算。運算時,第二個自變量表示精確到哪一位。例1:ROUND(345.345,2)例2:ROUND(3
14、45.345,1)例3:ROUND(345.345,0)例4:ROUND(345.345,-1)9、MOD函數功能:求兩個整數相除以后的余數。例1:MOD(10,3)例2:MOD(9,3)例3:MOD(11,3)說明:有負數的求余不考慮。10、MAX函數功能:從多個自變量中挑出最大的值。例:MAX(1,2,7,4,5) 說明:自變量也可以是非數值型的,但自變量的類型應一致。如:MAX(“A”,”ABC”,”BC”)11、MIN函數功能:從多個自變量中挑出最小的值。例:MIN (1,2,7,4,5) 說明:自變量也可以是非數值型的,但自變量的類型應一致。如:MIN (“A”,”ABC”,”BC”
15、)三、常用字符處理函數1、LEN函數功能:求字符串的長度。說明:一個漢字長度為2,一個英文字符(包括空格)長度為1。例:LEN(Visual FoxPro教程)2、LOWER函數功能:將自變量中的所有字母轉化為小寫字母。例:LOWER(Visual FoxPro教程)3、UPPER函數功能:將自變量中的所有字母轉化為大寫字母。例:UPPER(Visual FoxPro教程)4、TRIM或RTRIM函數功能:將字符型自變量右邊空格去掉。例:TRIM( Visual FoxPro )5、LTRIM函數功能:將字符型自變量左邊空格去掉。例:LTRIM( Visual FoxPro )6、ALLTRI
16、M函數功能:將字符型自變量左、右兩邊的空格均去掉。例:ALLTRIM( Visual FoxPro )7、LEFT函數功能:從一個字符串左邊開始取子串。例1:LEFT(下午好!,2)例2:LEFT(下午好!,4)8、RIGHT函數功能:從一個字符串右邊取子串。例1:RIGHT(下午好!,2)例2:RIGHT(下午好!,4)9、SUBSTR函數功能:從一個字符串中取子串。例1:SUBSTR(下午好!,3,4)例2:SUBSTR(下午好!,3)10、SPACE函數功能:產生指定個數空格組成的字符串。例:SPACE(10)11、REPLICATE函數功能:由指定字符串重復組合產生字符串。例1:REP
17、LICATE(*,10)例2:REPLICATE(ABCD,5)12、AT函數功能:求第一個字符串在第二個字符串中出現的位置。例1:AT(ab,huABygabhgtabagf)例2:AT(ab, huABygabhgtabagf ,2)13、ATC函數功能:求第一個字符串在第二個字符串中出現的位置,但不區分字母大小寫。例1:ATC(ab, huABygabhgtabagf )例2:ATC(ab, huABygabhgtabagf ,2)14、OCCURS函數功能:求第一個字符串在第二個字符串中出現的次數。例1:OCCURS(a,abScaBdA)例2:OCCURS(ab,abScaBdA)例
18、3:OCCURS(abc,abScaBdA)15、STUFF函數功能:字符串內容替換。例:STUFF(gtyabku,3,4,AA)思考:在ab的a、b之間插入和。“淮北煤炭師范學院”已改名為“淮北師范大學”了,淮北師范大學的你,能通過STUFF函數,將“淮北煤炭師范學院”中的“煤炭”二字刪除、“學院”二字改為“大學”,使得結果是“淮北師范大學”嗎?16、CHRTRAN函數功能:字符串內容替換。例1:CHRTRAN(aBCAAC,AC,”12”)例2:CHRTRAN(aBCAAC,AC,”1”)例3:CHRTRAN(aBCAAC,AC,”123”)說明:該函數對漢字進行替換時,會出現異常。例4
19、:CHRTRAN(大家好!,大家,你)例5:CHRTRAN(淮北煤炭師范學院,學院煤炭,大學)17、LIKE函數功能:如果兩個字符串一樣,則函數值為真值,否則是假值。例1:LIKE(abc,ABC)例2:LIKE(abc,ab)例3:LIKE(abc,abc)說明:前一個字符串中可以出現通配符?和*。?表示該位置可以是任意的某個符號,*表示該位置可以是任意多的符號。例4:LIKE(ab*,ab)例5:LIKE(ab,ab*)四、常用日期、時間函數1、DATE函數功能:返回當前系統日期。例:DATE()2、TIME函數功能:返回當前系統時間。例:TIME()說明:函數值為字符型。3、DATETI
20、ME函數功能:返回當前系統日期及時間。例:DATETIME()思考:函數值什么類型?4、YEAR函數、MONTH函數、DAY函數功能:分別返回日期或日期時間型自變量中的年份、月份和日子。例:分別求出今天的年、月、日。5、HOUR函數、MINUTE函數、SEC函數功能:分別返回日期時間型自變量中的時、分、秒。例:分別求出現在的時、分、秒。五、常用轉換函數1、STR函數功能:將數值型自變量轉換為字符型。例:STR (123.456)說明:函數值默認10位,不帶小數部分。可以加上第2、第3個參數,用來分別表示總位數和小數位數。默認或指定位數比實際位數多時,函數值的左邊補以相應個數的空格,以保證總位數
21、;默認或指定位數比實際位數少時,先減少小數位數,還不夠時,只好返回默認或指定位數個*。練習:驗證以下函數值,看看和自己預想的是否一致。STR (123.456,5)STR (123.456,5,1)STR (123.456,5,2)STR (123.456,6,2)STR (123.456,3,2)STR (123.456,2)2、VAL函數功能:將字符型自變量轉換為數值型。例1:VAL(1234.56)例2:VAL(123a)例3:VAL(上午好!)3、DTOC函數功能:將日期型或日期時間型自變量轉換為相應的日期字符串。例:DTOC(DATE()說明:轉換后的字符串組成和當前日期格式有關,若
22、加上1參數,將轉化為YYYYMMDD這種固定格式的字符串,如:DTOC(DATE(),1)4、TTOC函數功能:將日期時間型自變量轉換為相應的字符串。例:TTOC(DATETIME()說明:轉換后的字符串組成和當前日期時間格式有關,若加上1參數,將轉化為YYYYMMDDHHMMSS這種固定格式的字符串,如:TTOC(DATETIME(),1)5、CTOD函數功能:將日期形式的字符串轉化為日期型。說明:字符串的日期形式應和當前日期格式一致,否則將轉化為空日期。例:CTOD (2010/5/1)6、CTOT函數功能:將日期時間形式的字符串轉化為日期時間型。說明:字符串的日期時間形式應和當前日期時間
23、格式一致,否則將轉化為空日期時間。例:CTOT (2010/5/1 10:8:30)7、ASC函數功能:求字符型自變量中第一個字符的ASCII碼。例:ASC(A)8、CHR函數功能:根據ASCII碼求對應的字符。例:CHR(65)六、常用測試函數1、EMPTY函數功能:判斷一個數據是否空值,是為真,否則為假。例:EMPTY (0),EMPTY (0),EMPTY (),EMPTY ( ),EMPTY ()2、VARTYPE函數功能:判斷自變量的數據類型,返回相應的字母。例:VARTYPE(23),VARTYPE(23)3、BETWEEN函數功能:判斷第一個自變量的值是否在后兩個自變量之間,是,
24、函數值為真值;不是,函數值為假值。例:BETWEEN(3,1,6),BETWEEN(3,6,1),BETWEEN(3,3,6),BETWEEN(3,4,6),BETWEEN(“e”,”a”,”x”)七、其它常用函數1、條件函數用法:IIF(邏輯型表達式,表達式1,表達式2)功能:如果邏輯型表達式的值為真,則表達式1的值作為函數值,否則,表達式2的值作為函數值。例:函數IIF(X10,AAA,BBB)思考:當變量X分別取值10、0、100時,函數IIF(X10,AAA,IIF(X10,BBB,CCC)的值。2、宏替換函數用法:&字符型變量.功能:用字符型變量的值(不帶定界符)替換整個宏替換函數。
25、例:假設A=76+28,問A和&A.分別等價于什么?說明:1)該函數是一個十分有用又十分特殊的函數。2)宏替換函數出現在字符串中時也還有效,而其它函數出現在字符串中時被當作一個個字符處理。如:若A=ABC,則X&A.Y等價于XABCY;而XABS(-86)Y卻不等價于X86Y。3)宏替換函數最后的小數點是宏替換函數的結束標記。當宏替換函數和其后的內容能夠明確區分清楚時,該結束標記可以省略。思考:下面的表達式中,哪些宏替換函數的結束標記可以省略?&A.+52 ,&A.6-285 ,&A.BCDEFG。練習一、STR函數將數值型自變量轉換為字符型時,函數值默認10位,試予以驗證。二、試通過VART
26、YPE函數了解下列函數值的類型:LEN函數、AT函數、OCCURS函數、DATE函數、TIME函數、DATETIME函數、STR函數、VAL函數、DTOC函數、TTOC函數、CTOD函數、CTOT函數、EMPTY函數、BETWEEN函數、VARTYPE函數。三、試用IIF函數寫出為變量B賦值的賦值命令,要求:當變量A的值為正時,B賦以值8+20;當變量A的值為負時,B賦以值8-20;當變量A的值為0時,B賦以值8。四、先在命令窗口進行如下賦值:A=CLEB=XC=&B+YX=10Y=20然后在命令窗口輸入下列各行并回車,看看現象或結果和自己預想的是否一致:?A,&A?B,&B?C,&C&AAR
27、&A.AR五、練習其他函數。34 Visual FoxPro的表達式一、認識表達式即運算對象(常量、變量、函數)通過運算符號進行運算的式子。不同的運算符號有不同的優先級,運算時,優先級高的運算符號先算,優先級低的運算符號后算,同等優先級的自左至右進行運算。如10+30-20/5。為了讓優先級低的運算符先算,應使用圓括號。注意:只能使用圓括號。表達式中的所有符號應并列書寫,不能像數學中那樣書寫。單個運算對象,也認為是表達式(表達式特例)。二、數值表達式1、認識對數值型、貨幣型數據進行運算的式子,其值為數值型或貨幣型。2、運算符及優先級*或:乘方運算;*:乘法運算;/:除運算;%:求余運算;+:加
28、運算;-:減運算。例:試寫出下列算式的VFP表達式。三、字符表達式1、認識對字符型數據進行運算的式子,其結果仍為字符型。2、運算符及優先級+:將前后兩個字符串進行合并,如abc +def,其結果為字符串abc def。-:將前后兩個字符串進行合并,但將前面字符串尾部的空格挪到合并后的字符串尾部。如abc -def,其結果為字符串abcdef 。四、日期時間表達式1、認識有日期時間型數據參加運算的式子,其結果類型依情況而定。2、表達式實例日期+數值 或 數值+日期日期-數值注意:不能數值-日期日期-日期日期時間+數值 或 數值+日期時間日期時間-數值注意:不能數值-日期時間日期時間-日期時間五、
29、關系表達式1、認識對類型一致的數據進行比較的式子,如A56,春節圣誕節等。如果比較成立,結果為邏輯值真,否則為假。2、比較符號比較符號又叫關系運算符。關系運算符:(見關系運算符)思考:關系表達式“1 2 3”的值是什么?3、VFP中數據大小的規定除使用$(屬于)關系運算符的關系表達式外,關系表達式的運算結果和關系運算符兩邊數據的大小密切相關,因此,必須清楚VFP中關于數據大小的規定。1)數值型、貨幣型的大小同算術中大小。2)日期型、日期時間型的大小靠后的日期、時間大。3)邏輯型的大小真大于假。4)字符型的大小單個字符大小的規定當設置為Machine(機器)順序時字符大小:空格數字字符(0到9)
30、大寫字母小寫字母;漢字大小:常用漢字以拼音順序排大小,如李小于張。當設置為PinYin(拼音)順序時字符大小:空格數字字符(0到9) aAbB;漢字大小:以拼音順序排大小,如李小于張。當設置為Stroke(筆畫)順序時字符大小:空格數字字符(0到9)aAbB;漢字大小:以書寫筆畫多少確定大小,筆畫多的大。三種順序的設置方法一:“選項”對話框中設置。方法二:用命令設置:set collate to Machineset collate to PinYinset collate to Stroke字符串大小的規定基本規則自左至右,逐個字符進行比較,直到某個字符能分辨出大小為止。非精確比較方式(默認方式)在前面字符沒能區分出大小的情況下,兩個字符串的比較以右邊字符串的結束而結束。精確比較方式在前面字符沒能區分出大小的情況下,兩個字符串的比較以最長字符串的結束而結束。說明:關系運算符“=”按當
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- MY銀行供應鏈金融保理業務流程優化研究
- 全GFRP筋增強混凝土剪力墻抗震性能研究
- 故事力法則下鄉村文旅景觀規劃設計研究-以浙江新昌縣棠村村為例
- 環境安全健康之間關系
- 護理質量管理人員培訓大綱
- 肺炎性心臟病護理
- 甲狀腺結節健康教育及指導
- 在線教育社群運營策劃方案
- 護理心臟驟停的急救與后續管理
- 結腸腫瘤科普
- 2024年梅州市大埔縣重點中學小升初語文入學考試卷含答案
- (正式版)JBT 14449-2024 起重機械焊接工藝評定
- 2022-2023學年北京市東城區高二(下)期末化學試卷(含解析)
- 防溺水老師培訓課件
- 《植物生長與環境》課程標準(含課程思政)
- 鐵路行車組織(高職)全套教學課件
- 注塑標準成型條件表電子表格模板
- 道閘系統施工方案
- 配置管理與漏洞修復
- 新版中國復發難治性急性髓系白血病診療指南
- 保潔巡查記錄表
評論
0/150
提交評論