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