《《VFP語言基礎(chǔ)》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《VFP語言基礎(chǔ)》PPT課件.ppt(67頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第四章 VFP 語言基礎(chǔ),掌握的VFP基本數(shù)據(jù)類型 掌握VFP常量和變量 掌握VFP的數(shù)組 掌握VFP的常見函數(shù) 掌握VFP的運算符和表達式,學(xué)習(xí)目標,4.1 VFP基本數(shù)據(jù)類型,4.2 VFP常量和變量,目錄,4.3 VFP的數(shù)組,4.4 VFP的常見函數(shù),4.5 運算符和表達式,數(shù)據(jù)類型決定數(shù)據(jù)的存在形式、存儲方式和運算規(guī)則。VFP提供11常見的數(shù)據(jù)類型:字符型、數(shù)值型、邏輯型、浮點型、整型、日期型、日期時間型、雙精度型、備注型、通用型和貨幣型。,4.1 VFP的數(shù)據(jù)類型,字符型是用單、雙引號或者方括號等定界符括起來的字符串,包括字母、漢字、數(shù)字、標點、空格等。 字符型數(shù)據(jù)的最大長度為25
2、4個字符,每個字符占一個字節(jié),每個漢字占兩個字節(jié)。如“VFP9.0管理系統(tǒng)”,字符型(C),數(shù)值型數(shù)據(jù)是表示數(shù)量的一種數(shù)據(jù)類型,包括整數(shù)、小數(shù)或者科學(xué)計數(shù)法表示的數(shù),占用8個字節(jié)的存儲空間,值介于-0.999,999,999,9E+19-0.999,999,999,9E+20之間。如21,3.14,3E4 在數(shù)據(jù)表中,數(shù)值型的長度介于120字節(jié)。 如21,3.14,3E4,數(shù)值型(N),日期型數(shù)據(jù)用于存放有關(guān)年月日等信息的一種數(shù)據(jù)類型。通常格式為默認格式為mm/dd/yy,嚴格日期格式格式y(tǒng)yyy-mm-dd。 日期型數(shù)據(jù)占用8個字節(jié)的存儲空間。 最小的日期值為0001-01-01,最大的日期
3、值為9999-12-31,日期型(D),用于存儲日期時間數(shù)據(jù)。通常格式為mm/dd/yy hh:mm:ss a/p。 嚴格的時間日期格式為yyyy-mm-dd hh:mm:ss a/p 日期時間型數(shù)據(jù)占用8個字節(jié)。,日期時間型,邏輯型數(shù)據(jù)通常表示只有兩種不狀態(tài)的一種數(shù)據(jù)類型,邏輯型數(shù)據(jù)只有真(.T./.Y.)和假(.F./.N.)兩種可能值。 邏輯型數(shù)據(jù)占一個字節(jié)。,邏輯型(L),該類型與數(shù)值型類似,但浮點型要求存放的數(shù)據(jù)有較高的精度。,浮點型(F),通常來存放OLE(對象鏈接嵌入)對象的數(shù)據(jù)類型,OLE對象可以是圖形圖像、文檔、電子表格等數(shù)據(jù)。通用型包含一個4字節(jié)的引用,該引用指向真正內(nèi)容。
4、,通用型(G),可以看作是字符型數(shù)據(jù)的特殊形式,它是利用數(shù)據(jù)庫中的備注文件來存放長文本數(shù)據(jù)的一種特殊的數(shù)據(jù)類型。 通常,在表中備注型字段包含一個4字節(jié)的引用,相當于指針的作用,指向真正的備注內(nèi)容,備注內(nèi)容存放在與表名同名的備注文件(.FPT)中。,備注型(M),是存放不含小數(shù)部分的數(shù)值。占用4個字節(jié),其值介于-21474836482147483647(-232232-1)。,整型(Integer),是取代數(shù)值數(shù)據(jù),以提供更高的精度,占8個字節(jié),取值介于4.940 656 458 412 47E-324 8.988 465 674 311 5E307。,雙精度(Double),是存放以$開頭的貨
5、幣數(shù)據(jù)。貨幣數(shù)據(jù)最多只能有4位小數(shù)位,占8個字節(jié),其值介于-922 337 203 685 477.5808 922 337 203 685 477.5807,貨幣型(Currency),數(shù)據(jù)類型決定數(shù)據(jù)如何存儲和使用,而變量和常量來存放數(shù)據(jù),可稱為數(shù)據(jù)容器。,4.2 常量和變量,常量是指在運算中固定不變的量,以直觀的數(shù)據(jù)形態(tài)和意義出現(xiàn),也稱為字面量。命令或程序中可以直接引用的具有具體值的命名數(shù)據(jù)項。,常量,按數(shù)據(jù)類型不同將常量分為6種類型:數(shù)值型、字符型、日期型、日期時間型、邏輯型、貨幣型。,通常是數(shù)學(xué)中的的整數(shù)、實數(shù)、浮點數(shù)的常量。如8(整型常量)、3.14159(實型常量)、2.5E2(
6、浮點型常量),數(shù)值型常量,用單、雙引號或方括號(定界符)括起來的量。如數(shù)據(jù)庫管理系統(tǒng),“V=”,Dont smoking。注意:字符串長度為定界符內(nèi)(不含定界符)的字符的個數(shù)。,字符型常量,邏輯型常量來表示邏輯真或邏輯假。 邏輯真用.T.或.Y.,邏輯假用.F.或. .N.。,邏輯型常量,日期型常量是用花括號括起來的表示日期的一種數(shù)據(jù)類型。常用MM/DD/YY表示,如11/01/98,和嚴格格式y(tǒng)yyy-mm-dd,如2013-03-20,日期型常量,貨幣型常量是以以$開頭的一種數(shù)據(jù)。 如$789.456,貨幣型常量,日期型常量是用花括號括起來的表示日期時間的一種數(shù)據(jù)類型。常用格式mm/dd/
7、yy hh:mm:ss a/p 和嚴格格式y(tǒng)yyy-mm-dd hh:mm:ss a/p,日期時間型常量,變量,變量是用于存放數(shù)據(jù)值的計算機內(nèi)存單元,在操作過程中可以改變其值或數(shù)據(jù)類型的數(shù)據(jù)項。 變量的值發(fā)生變化是以現(xiàn)行值取代原來值。 在VFP中有4種形式的變量:內(nèi)存變量、字段變量、系統(tǒng)變量和數(shù)組變量,內(nèi)存變量是在內(nèi)存中定義的獨立于表文件的臨時性存儲單元,通常存放中間結(jié)果。 需要時可以定義,不用可以釋放,還可以作為內(nèi)存文件保存。 內(nèi)存變量的數(shù)據(jù)類型包括:數(shù)值型、字符型、邏輯型、日期型和日期時間型。,內(nèi)存變量,內(nèi)存變量的命名規(guī)則:以字母開頭,由字母、漢字、數(shù)字和下劃線組成,長度不超過128字符。
8、且不能與系統(tǒng)提供保留字沖突。 如NAME、X、Y、學(xué)號等都是合法的變量名,2X,A*B等是不合法的變量名; 內(nèi)存變量的賦值: 內(nèi)存變量名= 或STORE TO ,例如: A3 &A的值為3 B=6 &B的值為6 X=A*B &X的值為18,或 STORE 3 to A STORE 6 to B STORE A*B to X,內(nèi)存變量的顯示 命令格式1: ?/? 內(nèi)存變量名/表達式 命令格式2: LIST/DISPLAY MEMORY LIKE TO PRINTERPROMPT TO FILE ,例如: A3 &A的值為3 B=6 &B的值為6 X=A*B &X的值為18,?A ?B ?A*B
9、List/Display MEMORY Like B*,內(nèi)存變量的保存 SAVE TO ALL LIKE /ALL EXCEPT 說明:ALL LIKE :只保存符合通配符條件的所有變量。ALL EXCEPT :只保存不符合通配符條件的所有變量。,例如: STORE 3 TO A STORE 10 TO X1,X2,X3 SAVE TO M1 /將所有的內(nèi)存變量都保存到變量文件M1中,內(nèi)存變量的清除 CLEAR MEMORY RELEASE RELEASE ALL LIKE / EXCEPT ,例如: RELEASE ALL LIKE S* &表示只清除以S開頭的所有內(nèi)存變量 RELEASE
10、ALL EXCEPT A? &表示清除現(xiàn)有內(nèi)存變量中以A開頭兩字符變量之外的變量,內(nèi)存變量的恢復(fù) RESTORE FROM ADDITIVE,字段變量是在建立數(shù)據(jù)表結(jié)構(gòu)時定義的變量,隨表的存取而存取,是永久性變量。 字段變量的值隨記錄指針的移動而改變。 字段變量的類型包括字符型、數(shù)值型、貨幣型、日期型、邏輯型、整型、雙精度型、備注型及通用型等。,字段變量,系統(tǒng)變量是系統(tǒng)自動建立并維護的變量,一般用來控制如屏幕輸出格式、外部設(shè)備或剪貼板、計算器等附件的信息。系統(tǒng)變量有固定變量名,且系統(tǒng)變量都是以下劃線開頭的。,系統(tǒng)變量,數(shù)組是一組有序的數(shù)據(jù)的集合,用于存放類型相同的一批相關(guān)數(shù)據(jù)。數(shù)組實質(zhì)上是一個
11、內(nèi)存變量組。,4.3 數(shù) 組,組中的每個數(shù)據(jù)稱為數(shù)組元素,數(shù)組元素在數(shù)組中的位置都是固定的,可以通過稱為下標的編號來進行訪問。 表示形式:(,) 根據(jù)數(shù)組的下標個數(shù)不同,可將數(shù)組分為以一維數(shù)組、二維數(shù)組,數(shù)組的表示形式,DIMENSION (,),(,) DECLARE (,),(,) 如:DIMENSION A(5),X(3,4),數(shù)組的定義,數(shù)組的定義, 數(shù)組必須先定義后使用,且使用 時下標不能超界。 每個數(shù)組元素通過數(shù)組名和相應(yīng) 的索引編號被引用。 VFP中,最多可定義65000個數(shù)組, 每個數(shù)組元素的個數(shù)最多不能超過 65000個。 VFP中數(shù)組的下標的初值為1。 數(shù)組元素的初值.F.
12、。,給數(shù)組的單個元素賦值 DIMENSION A(5),X(3,4) STORE 3 TO A(1) STORE -2 TO A(3) STORE 8 TO X(1,1),X(1,2) 給數(shù)組的所有元素賦值 DIMENSION A(5) STORE 0 TO A 或者 A=0,數(shù)組的賦值,數(shù)組變量與內(nèi)存變量同屬于一類變量,其顯示、保存、清除等基本操作與內(nèi)存變量相同。,數(shù)組的其他操作,函數(shù)是一段具有特定功能的程序代碼。 一個函數(shù)可以接受一個或多個參數(shù),并通過特定的運算返回一個值。,4.4 函數(shù),格 式:函數(shù)名(,) 函數(shù)值:函數(shù)的運算結(jié)果 說 明:任何可以使用表達式的地方都可以使用函數(shù)。,函數(shù)的
13、調(diào)用形式,?INT(3.5) & 顯示函數(shù)值3 ?SQRT(4) & 顯示函數(shù)值2,1、調(diào)用函數(shù)時,自變量的個數(shù)、順序、數(shù)據(jù)類型一定要與函數(shù)要求的一致; 2、每個調(diào)用函數(shù)必然有一個返回值,返回值也有一定的類型,要明確返回值類型;,函數(shù)的調(diào)用的注意,按函數(shù)所提供的方式,可分為: 自定義函數(shù):由用戶自己定義的函數(shù)。 系統(tǒng)函數(shù):由VFP提供的內(nèi)部函數(shù),它有14類380多個系統(tǒng)函數(shù),常用的函數(shù)有數(shù)值函數(shù)、字符函數(shù)、日期時間函數(shù)、類型轉(zhuǎn)換函數(shù)、測試函數(shù)等5類。,函數(shù)的類型,數(shù)值函數(shù),常用函數(shù),字符函數(shù):用于對字符或字符串操作的函數(shù),返回值可以是字符型、數(shù)值型或邏輯型。,日期時間函數(shù):用于對日期或日期時間
14、型數(shù)據(jù)進行操作的函數(shù)。,轉(zhuǎn)換函數(shù):用于不同類型數(shù)據(jù)之間的轉(zhuǎn)換函數(shù)。,測試函數(shù)與數(shù)據(jù)庫函數(shù),運算是對數(shù)據(jù)加工的過程,描述各種不同運算的符號成為運算符,而參與運算的數(shù)據(jù)成為運算對象或者操作數(shù),運算符和操作數(shù)組成的有意義的式子,稱為表達式。 其中操作數(shù)可以是常量、變量、函數(shù)、表達式等。,4.5 運算符與表達式,表達式的類型由運算符的類型決定,每個表達式按照規(guī)定的運算規(guī)則都產(chǎn)生一個惟一的值。 按照運算符的不同表達式可分為:,算術(shù)表達式是由數(shù)值型常量、變量、函數(shù)和算術(shù)運算符組成,其運算結(jié)果是數(shù)值型的。,算術(shù)表達式,常見的算術(shù)運算符:()括號、*(或)乘方 、* 乘 除 、 % 取模(求余數(shù))、 + -
15、。,算術(shù)表達式,F=A+B D=B*2-4*A*C X1=(-B+SQRT(D)/(2*A) X2=(-B-SQRT(D)/(2*A) 其中 A,B,C,D為數(shù)值型,書寫算術(shù)表達式應(yīng)注意問題: 1、每個字符占一格,所有符號都必須寫在同一行上;如a除以b,必須寫成a/b, X的平方必須寫成X(2)或者X*(2) 2、所有的運算符都不能省略。如a乘以b,不能寫ab,必須寫成a*b; 3、要把數(shù)學(xué)表達式中一些符號改寫成VFP表示的符號;如改寫成數(shù)值常量。 4、數(shù)學(xué)表達式中,大中小括號在算術(shù)表達式中一律用圓括號,并且括號一定要配對。,字符表達式是由字符型常量、變量、函數(shù)和字符運算符組成,其運算結(jié)果是字
16、符型的。,字符表達式,常見的字符運算符:,關(guān)系表達式是由關(guān)系運算符、數(shù)值表達式、字符表達式、日期型表達式組成的一種表達式,結(jié)果為邏輯型數(shù)據(jù)。(運算對象的數(shù)據(jù)類型必須一致的即同種類型),關(guān)系表達式,常見的關(guān)系運算符:,各種數(shù)據(jù)類型的比較原則: 1、數(shù)值型數(shù)據(jù)按數(shù)值大小進行比較; 2、字符型數(shù)據(jù): 對于單個字符,是按照其ASCII碼值進行比較; 對于字符串是將兩個字符串從左至右逐個字符進行比較,最先不一樣的字符的關(guān)系即為兩字符串的關(guān)系。若字符串長度不等可在短字符串的尾部補空格使其長度相等,再進行比較。 常見的字符的碼值的大小關(guān)系: 空格“0”“1”“9”“A”“Z”“a”“z”漢字,3、漢字按其所
17、對應(yīng)的拼音碼進行比較; 4、當?shù)忍枴?”比較兩個字符串是否相等時,并不能確定左右的兩個字符串完全一樣,在逐個字符比較過程中,當右邊字符串的所有字符比較完后,還沒有發(fā)現(xiàn)不同的字符,則認為兩者相等; 5、當“=”為字符串精確比較運算符時,只有兩邊的字符串完全相等(包括尾部空格),才認為相等; 6、日期型數(shù)據(jù)比較是將日期看成“YYYYMMDD”的八位整數(shù),然后按其值進行比較;,邏輯運算符專門用于邏輯型數(shù)據(jù)的一種運算符。邏輯型表達式是由邏輯表達式、關(guān)系表達式、邏輯型常量、變量和函數(shù)組成;邏輯型表達式返回邏輯型結(jié)果。,邏輯表達式,常見的邏輯運算符:,例 A=.T. B=.F. ? .NOT. A & .
18、F. ? A .AND. B & .F. ? A .OR. B &.T. ? A .OR. B .AND. .F. .OR. .T. & .T.,例:求下列邏輯表達式的值 32 .AND.5+22 .NOT.12*45 25.OR.3*2020 在學(xué)生信息表(學(xué)號,姓名,年齡,性別,)中查找年齡為22的女同學(xué),可用邏輯表達式表示: 性別=女.AND.年齡=20,日期時間型表達式對日期時間型數(shù)據(jù)進行加工處理的表達式。 常見的日期時間型運算符: + :在某一日期基礎(chǔ)上增加指定天數(shù) - :在某一日期基礎(chǔ)上減去指定天數(shù)或者計算兩個日期型數(shù)據(jù)之間天數(shù)差,日期時間表達式,例: RQ=2001-08-31 ? RQ+100 & 12/09/01 ? RQ-100 & 05/23/01 ?09/01/97-05/01/97 & 123,原則1:括號函數(shù)算術(shù)運算字符運算關(guān)系運算邏輯運算 原則2:同級同優(yōu)先級的運算符運算從左至右順序進行。 原則3:同級不同優(yōu)先級運算符按運算符的優(yōu)先級進行。,運算符優(yōu)先級,例:A=1,B=0,A1=DE,B1=.T. 計算表達式,例:求下列邏輯表達式的值 32 .AND.5+22 .NOT.12*45 25.OR.3*2020 在學(xué)生信息表(學(xué)號,姓名,年齡,性別,)中查找年齡為22的女同學(xué),可用邏輯表達式表示: 性別=女.AND.年齡=20,