




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 Visual FoxPro程序設(shè)計(jì)基礎(chǔ)數(shù)據(jù)類(lèi)型之一:數(shù)據(jù)類(lèi)型之一:字符型字符型v字符型數(shù)據(jù)(CharacterCharacter)是由漢字和ASCII字符集中可打印字符(英文字符、數(shù)字字符、空格及其他專(zhuān)用字符)組成,長(zhǎng)度范圍是0-254個(gè)字符,使用時(shí)必須用定界符雙引號(hào)(“”)或單引號(hào)( )或 方括號(hào)( )括起來(lái),它不具有計(jì)算能力。v 如: “你好”2.1.1 數(shù)據(jù)類(lèi)型及常量數(shù)據(jù)類(lèi)型及常量 字符型常量字符型常量(字符串字符串): 用定界符用定界符(單引號(hào)單引號(hào)、雙引號(hào)雙引號(hào)或或方括號(hào)方括號(hào))括起來(lái)的字母括起來(lái)的字母,空格空格,數(shù)字?jǐn)?shù)字,漢字或其它特殊字符漢字或其它特殊字符,稱(chēng)為字符型常稱(chēng)
2、為字符型常量或字符串量或字符串. 如如: “A”表示字符常量表示字符常量A. 23.5 表示字符型常量表示字符型常量23.5,而不是數(shù)值而不是數(shù)值23.5,這個(gè)這個(gè)23.5不能參加算術(shù)運(yùn)算不能參加算術(shù)運(yùn)算. 成都成都十一十一慶祝會(huì)慶祝會(huì). 當(dāng)字符本身包含了一種定界符當(dāng)字符本身包含了一種定界符, ,則在外層必須用另一種定界則在外層必須用另一種定界符括起來(lái)符括起來(lái), ,以示區(qū)別以示區(qū)別. . 再如再如: “: “多媒體影碟多媒體影碟 手機(jī)手機(jī)” ” 注意注意:v 定界符必須配對(duì)使用定界符必須配對(duì)使用v 定界符必須在英文狀態(tài)下輸入定界符必須在英文狀態(tài)下輸入v VFPVFP字符常量有字符常量有“任何字
3、符均合法任何字符均合法”的特點(diǎn)的特點(diǎn)數(shù)據(jù)類(lèi)型之二數(shù)據(jù)類(lèi)型之二:數(shù)值型數(shù)值型 數(shù)值型數(shù)據(jù)通常分為以下五種類(lèi)型: (1)(1)數(shù)值型數(shù)值型 數(shù)值型數(shù)據(jù)(Numeric)是由數(shù)字(0-9)、小數(shù)點(diǎn)和正負(fù)號(hào)組成。最大長(zhǎng)度為20位(包括、和小數(shù)點(diǎn)),8B存儲(chǔ)。 (2)(2)浮點(diǎn)型浮點(diǎn)型 浮點(diǎn)型數(shù)據(jù)(Float)是數(shù)值型數(shù)據(jù)的一種,與數(shù)值型數(shù)據(jù)完全等價(jià)。浮點(diǎn)型數(shù)據(jù)只是在存儲(chǔ)形式上采取浮點(diǎn)格式。 (3) (3)雙精度型雙精度型 雙精度型數(shù)據(jù)(Double)是更高精度的數(shù)值型數(shù)據(jù)。它只用于數(shù)據(jù)表中的字段類(lèi)型的定義,并采用固定長(zhǎng)度浮點(diǎn)格式存儲(chǔ)。 (4)(4)整型整型 整型數(shù)據(jù)(Integer)是不包含小數(shù)點(diǎn)部分
4、的數(shù)值型數(shù)據(jù)。它只用于數(shù)據(jù)表中的字段類(lèi)型的定義。整型數(shù)據(jù)以二進(jìn)制形式存儲(chǔ)。數(shù)據(jù)類(lèi)型之二:貨幣型數(shù)據(jù)類(lèi)型之二:貨幣型 在數(shù)據(jù)的第一個(gè)數(shù)字前加”$”,最大長(zhǎng)度4個(gè)字符,小數(shù)部分超過(guò)4個(gè),四舍五入。如:$123.456789,將存儲(chǔ)為:$123.4568. 日期型數(shù)據(jù)(Date)是是用于表示日期的數(shù)據(jù),用默認(rèn)格式y(tǒng)yyy/mm/dd/來(lái)表示。其中mm代表月,dd代表日,yyyy代表年,分隔符可以是/,-,.,空格,長(zhǎng)度固定為8B。嚴(yán)格日期格式與傳統(tǒng)日期格式設(shè)置日期格式的命令: SET MARK TO SET DATE TO SET CENTURY ON/OFF SET STRICTDATE TO 數(shù)
5、據(jù)類(lèi)型之三:日期型數(shù)據(jù)類(lèi)型之四:日期時(shí)間型:日期時(shí)間型 日期時(shí)間型數(shù)據(jù)(Date Time)是描述日期和時(shí)間的數(shù)據(jù)。 其默認(rèn)格式為yyyy/mm/dd hh:mm:ss。 其中yyyy代表年,前兩個(gè)mm代表月,dd代表日,hh代表小時(shí),后兩個(gè)mm代表分鐘,ss代表秒,長(zhǎng)度固定為8B。 邏輯型數(shù)據(jù)(Logic)是描述客觀事物真假的數(shù)據(jù),用于表示邏輯判斷結(jié)果。邏輯型數(shù)據(jù)只有真(.T. 、 .Y. )和假(.F.、 .N. )兩種值(大小寫(xiě)均可),長(zhǎng)度固定為1B。 邏輯常量邏輯常量“真真”用用.T.(.t.T.(.t .) .)或或.Y.(.y.Y.(.y.).)表示表示, , “假假”用用.F.(
6、.f.F.(.f.).)或或.N.(.n.N.(.n.).)表示表示. . 大小寫(xiě)字母不區(qū)別大小寫(xiě)字母不區(qū)別, .T., .T.與與.t .t .等效等效, ,但但字母前后的圓點(diǎn)是必需的字母前后的圓點(diǎn)是必需的. . 數(shù)據(jù)類(lèi)型之五:邏輯型 數(shù)據(jù)類(lèi)型之六:備注型 備注型數(shù)據(jù)(Memo)用于存放較長(zhǎng)的字符型數(shù)據(jù)類(lèi)型??梢园阉闯墒亲址蛿?shù)據(jù)的特殊形式。 備注型數(shù)據(jù)沒(méi)有數(shù)據(jù)長(zhǎng)度限制,僅受限于現(xiàn)有的磁盤(pán)空間。它只用于數(shù)據(jù)表中的字段類(lèi)型的定義,其字段長(zhǎng)度固定為4B,而實(shí)際數(shù)據(jù)被存放在與數(shù)據(jù)表文件同名的備注文件中,長(zhǎng)度根據(jù)數(shù)據(jù)的內(nèi)容而定。數(shù)據(jù)類(lèi)型之七:通用型 通用型數(shù)據(jù)(General)是用于存儲(chǔ)OLE對(duì)象
7、的數(shù)據(jù)。通用型數(shù)據(jù)中的OLE對(duì)象可以是電子表格、文檔、圖片等。它只用于數(shù)據(jù)表中的字段類(lèi)型的定義。 通用型數(shù)據(jù)長(zhǎng)度固定為4B,實(shí)際數(shù)據(jù)長(zhǎng)度僅受限于現(xiàn)有的磁盤(pán)空間。2.1.2 變量變量 變量就是其值可以改變的數(shù)據(jù)項(xiàng).變量可以在命令行和表達(dá)式中反復(fù)使用,而且同一變量名可以隨時(shí)賦予不同的數(shù)據(jù). 變量的類(lèi)型 數(shù)值型、字符型、邏輯型、日期型、備注型、通用型等變量包括字段變量和內(nèi)存變量?jī)纱箢?lèi),內(nèi)存變量有簡(jiǎn)單內(nèi)存變量,數(shù)組變量和系統(tǒng)變量.1) 內(nèi)存變量 內(nèi)存變量是用內(nèi)存單元存儲(chǔ)的變量,是用于存儲(chǔ)在命令或程序運(yùn)行過(guò)程中臨時(shí)用到的輸入、輸出或中間變量. 內(nèi)存變量在程序運(yùn)行中可以隨時(shí)定義或釋放,它實(shí)際上是一種臨時(shí)工
8、作單元。 每一個(gè)內(nèi)存變量都有自己的名稱(chēng),通過(guò)賦值語(yǔ)句實(shí)現(xiàn)定義. 內(nèi)存變量的屬性:內(nèi)存變量名,類(lèi)型a)內(nèi)存變量名內(nèi)存變量名 命名規(guī)則:由命名規(guī)則:由字母字母、數(shù)字?jǐn)?shù)字或或下劃線下劃線( ( _ _ ) )組成組成, ,必須由字母或漢字開(kāi)頭必須由字母或漢字開(kāi)頭, ,大小寫(xiě)字母等大小寫(xiě)字母等效效. . 不應(yīng)是保留字不應(yīng)是保留字, ,或保留字和或保留字和VFPVFP命令的前命令的前四個(gè)字符四個(gè)字符. . b)內(nèi)存變量類(lèi)型內(nèi)存變量類(lèi)型 內(nèi)存變量類(lèi)型是內(nèi)存變量類(lèi)型是“動(dòng)態(tài)型動(dòng)態(tài)型”, ,即在程序執(zhí)即在程序執(zhí)行期間行期間, ,當(dāng)變量建立時(shí)才賦予當(dāng)變量建立時(shí)才賦予. . 內(nèi)存變量的內(nèi)存變量的類(lèi)型可以在程序中變
9、化類(lèi)型可以在程序中變化, ,但在任一瞬間一個(gè)但在任一瞬間一個(gè)標(biāo)志的對(duì)象僅有一個(gè)型標(biāo)志的對(duì)象僅有一個(gè)型. . c) 建立內(nèi)存變量建立內(nèi)存變量 賦值、執(zhí)行一個(gè)操作內(nèi)存變量的命令或者通過(guò)規(guī)賦值、執(zhí)行一個(gè)操作內(nèi)存變量的命令或者通過(guò)規(guī)定一個(gè)內(nèi)存變量的級(jí)來(lái)建立內(nèi)存變量定一個(gè)內(nèi)存變量的級(jí)來(lái)建立內(nèi)存變量. VFP默認(rèn)可默認(rèn)可以建立以建立1024個(gè)內(nèi)存變量個(gè)內(nèi)存變量.v使用等號(hào)使用等號(hào) “=” 格式格式: = 如如: a = 25 WER= “數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)” vSTORE命令命令 格式格式: STORE TO 如如: STORE 123 TO AB 再如再如: STORE 16 TO X, Y, Zd) 輸出內(nèi)
10、存變量的值輸出內(nèi)存變量的值 格式格式: ? | ? 作用作用: 計(jì)算計(jì)算?|?后的表達(dá)式值并顯示出來(lái)后的表達(dá)式值并顯示出來(lái). 說(shuō)明:說(shuō)明: (1)單個(gè)單個(gè)?命令表示從當(dāng)前光標(biāo)所在行的下一命令表示從當(dāng)前光標(biāo)所在行的下一行起始位置顯示行起始位置顯示, ?命令從當(dāng)前光標(biāo)所在位置開(kāi)命令從當(dāng)前光標(biāo)所在位置開(kāi)始顯示始顯示. (2)不帶任何選項(xiàng)的不帶任何選項(xiàng)的?將產(chǎn)生一個(gè)換行將產(chǎn)生一個(gè)換行. 如:如:? AB ?X , Y , Z ? “3*7=” ,3*7e). 內(nèi)存變量的顯示內(nèi)存變量的顯示 命令格式命令格式: LIST | DISPLAY MEMORY LIKE TO PRINTER | TO FILE
11、 說(shuō)明說(shuō)明: (1) LIKE 子句表示選出與通配符相匹配的子句表示選出與通配符相匹配的內(nèi)存變量?jī)?nèi)存變量. 缺省該選項(xiàng)則選出全部?jī)?nèi)存變量缺省該選項(xiàng)則選出全部?jī)?nèi)存變量(包括包括系統(tǒng)內(nèi)存變量系統(tǒng)內(nèi)存變量). (2) TO PRINTER 能將屏幕顯示內(nèi)容輸出到打能將屏幕顯示內(nèi)容輸出到打印機(jī)印機(jī); TO FILE 將顯示內(nèi)容存人文件將顯示內(nèi)容存人文件.f)內(nèi)存變量的保存與恢復(fù)內(nèi)存變量的保存與恢復(fù)保存命令:保存命令: SAVE TO ALL LIKE /ALL EXCEPT 功能功能: : 將當(dāng)前內(nèi)存中的變量放到內(nèi)存變量文件中將當(dāng)前內(nèi)存中的變量放到內(nèi)存變量文件中. . 說(shuō)明說(shuō)明: :內(nèi)存變量名的擴(kuò)展名
12、為內(nèi)存變量名的擴(kuò)展名為.MEM.MEM恢復(fù)命令恢復(fù)命令: RESTORE FROM ADDITIVE 功能:功能:將內(nèi)存文件中的內(nèi)存變量恢復(fù)到內(nèi)存中。 說(shuō)明:說(shuō)明:ADDITIVE 選項(xiàng) 決定恢復(fù)前是否清除內(nèi)存中的所有內(nèi)存變量。v 使用使用ADDITIVEADDITIVE保留當(dāng)前的變量保留當(dāng)前的變量, ,v 缺省缺省ADDITIVEADDITIVE將清除當(dāng)前變量將清除當(dāng)前變量g) 內(nèi)存變量的刪除內(nèi)存變量的刪除i) CLEAR MEMORY 功能: 清除所有的內(nèi)存變量ii) RELEASE 功能:清除指定的內(nèi)存變量如如: RELEASE a , b &清除內(nèi)存變量清除內(nèi)存變量a和和bii
13、i) RELEASE ALL EXTENDED 功能: 清除所有內(nèi)存變量 EXTENDED 決定用在程序中能否清除公共內(nèi)存變量.iv) 命令格式命令格式: RELEASE ALL LIKE|EXCEPT 功能功能:從內(nèi)存清除指定的內(nèi)存變量從內(nèi)存清除指定的內(nèi)存變量. 如如: RELEASE all &用戶定義的所有內(nèi)用戶定義的所有內(nèi)存變量存變量 release all like a* &清除所有首字母為清除所有首字母為a的內(nèi)存變量的內(nèi)存變量 release all except ?b* &清除第二個(gè)字符為清除第二個(gè)字符為b以外的所有以外的所有變量變量2) 數(shù)組變量數(shù)組變量
14、數(shù)組是按一定順序排列的一組內(nèi)存變量數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)數(shù)組中的各個(gè)變量稱(chēng)為數(shù)組元素組中的各個(gè)變量稱(chēng)為數(shù)組元素. 數(shù)組元素通過(guò)數(shù)組名和下標(biāo)來(lái)訪問(wèn)數(shù)組元素通過(guò)數(shù)組名和下標(biāo)來(lái)訪問(wèn) 數(shù)組必須先定義后使用數(shù)組必須先定義后使用. a. 數(shù)組的定義數(shù)組的定義: DIMENSION | DECLARE ( ,) , ( ,) 功能功能:定義一維或二維數(shù)組定義一維或二維數(shù)組. 如:如:DECL A(5) | dime b(2,3) DECL B1(3,4) , MM(10) 說(shuō)明說(shuō)明: a)系統(tǒng)規(guī)定各下標(biāo)的下界為系統(tǒng)規(guī)定各下標(biāo)的下界為1. b) 對(duì)于二維數(shù)組對(duì)于二維數(shù)組,常將第一個(gè)下標(biāo)稱(chēng)為行標(biāo)
15、,第常將第一個(gè)下標(biāo)稱(chēng)為行標(biāo),第二個(gè)下標(biāo)稱(chēng)為列標(biāo)二個(gè)下標(biāo)稱(chēng)為列標(biāo). b. 數(shù)組的賦值數(shù)組的賦值 a) VFP允許同一數(shù)組的元素取不同類(lèi)型允許同一數(shù)組的元素取不同類(lèi)型,而且同一個(gè)而且同一個(gè)元素的前元素的前,后類(lèi)型也允許改變后類(lèi)型也允許改變. b) 用賦值命令可為數(shù)組元素單個(gè)賦值用賦值命令可為數(shù)組元素單個(gè)賦值,也可為整個(gè)數(shù)也可為整個(gè)數(shù)組的各個(gè)元素賦以相同的值組的各個(gè)元素賦以相同的值. 如:如: decl a (2,3) & 系統(tǒng)將各數(shù)組元素的初值設(shè)置為系統(tǒng)將各數(shù)組元素的初值設(shè)置為.F. Store 8 to a 或或 a=8 &為二維數(shù)組為二維數(shù)組a的的6個(gè)元素都賦以相同的初值個(gè)元素
16、都賦以相同的初值8 a(1)=20 a(2)=.T. &為二維數(shù)組為二維數(shù)組a的第的第1個(gè)元素賦值為個(gè)元素賦值為20,為第,為第2個(gè)元素個(gè)元素賦值為賦值為.T. c. 二維數(shù)組可用一維數(shù)組的形式來(lái)表示二維數(shù)組可用一維數(shù)組的形式來(lái)表示 二維數(shù)組各元素在內(nèi)存中按行的順序二維數(shù)組各元素在內(nèi)存中按行的順序存儲(chǔ)存儲(chǔ),而且也可按一維數(shù)組來(lái)表示其數(shù)組元素而且也可按一維數(shù)組來(lái)表示其數(shù)組元素.如二維數(shù)組如二維數(shù)組a中的元素中的元素a(2,2)排在第排在第2行第行第2列列,該元素也可用該元素也可用a(5)來(lái)表示來(lái)表示.3) 字段變量字段變量 表中的每一個(gè)字段就是一個(gè)表中的每一個(gè)字段就是一個(gè)字段變字段變量量
17、,字段名就是字段名就是字段變量的變量名字段變量的變量名. 字段變量的類(lèi)型字段變量的類(lèi)型與變量的類(lèi)型相同具與變量的類(lèi)型相同具有七種有七種 字段變量的當(dāng)前值字段變量的當(dāng)前值等于當(dāng)前記錄中等于當(dāng)前記錄中該字段所對(duì)應(yīng)的內(nèi)容該字段所對(duì)應(yīng)的內(nèi)容.字段變量是多值變字段變量是多值變量量,一個(gè)表中有多少個(gè)記錄一個(gè)表中有多少個(gè)記錄,字段變量就有字段變量就有多少個(gè)值多少個(gè)值.字段變量更進(jìn)一步的值隨著當(dāng)字段變量更進(jìn)一步的值隨著當(dāng)前記錄號(hào)的改變而改變前記錄號(hào)的改變而改變. a. 字段在一個(gè)特定的表文件中有固定的字段在一個(gè)特定的表文件中有固定的寬度和型寬度和型, 內(nèi)存變量的型是內(nèi)存變量的型是“動(dòng)態(tài)型動(dòng)態(tài)型”,即在程序即在
18、程序執(zhí)行期間執(zhí)行期間,當(dāng)變量建立時(shí)才賦予當(dāng)變量建立時(shí)才賦予. b. 打開(kāi)表打開(kāi)表,該表的所有字段變量產(chǎn)生該表的所有字段變量產(chǎn)生; 關(guān)閉關(guān)閉表表,該表的所有字段變量同時(shí)從內(nèi)存消失該表的所有字段變量同時(shí)從內(nèi)存消失,但隨著但隨著表表,記錄的字段仍存在于磁盤(pán)中記錄的字段仍存在于磁盤(pán)中. 而內(nèi)存變量通常而內(nèi)存變量通常在在VFP程序執(zhí)行時(shí)建立程序執(zhí)行時(shí)建立,程序完成后又消失程序完成后又消失.不象不象字段在表中具有永久性字段在表中具有永久性. 字段變量與內(nèi)存變量的區(qū)別字段變量與內(nèi)存變量的區(qū)別 c. 內(nèi)存變量名一般不要與正打開(kāi)的表的字內(nèi)存變量名一般不要與正打開(kāi)的表的字段名同名段名同名; 否則否則,使用該內(nèi)存變
19、量時(shí)應(yīng)在變量名前使用該內(nèi)存變量時(shí)應(yīng)在變量名前冠以冠以“M ”或者或者 “ M. ” ,但在對(duì)該內(nèi)存變量但在對(duì)該內(nèi)存變量賦值時(shí)不能加前綴賦值時(shí)不能加前綴. 字段變量的級(jí)高于內(nèi)存變量字段變量的級(jí)高于內(nèi)存變量. 例:例: USE NEW ?NAME &羅丹羅丹 NAME=“劉炎劉炎” ?NAME &羅丹羅丹 ? MNAME &劉炎劉炎 4)系統(tǒng)變量系統(tǒng)變量 由由VFP自動(dòng)生成和維護(hù)的變量,自動(dòng)生成和維護(hù)的變量,通過(guò)一個(gè)前導(dǎo)下劃線來(lái)識(shí)別通過(guò)一個(gè)前導(dǎo)下劃線來(lái)識(shí)別 ,它的屬性它的屬性是固定的是固定的(即它的類(lèi)型是不能被改變的即它的類(lèi)型是不能被改變的). 2.2 表達(dá)式表達(dá)式 由由常
20、量、變量、函數(shù)和運(yùn)算符常量、變量、函數(shù)和運(yùn)算符組成的運(yùn)算式。組成的運(yùn)算式。表達(dá)式的類(lèi)型根據(jù)運(yùn)算符的類(lèi)型確定,表達(dá)式的類(lèi)型根據(jù)運(yùn)算符的類(lèi)型確定,VFPVFP中具有中具有的的運(yùn)算符有:運(yùn)算符有:算術(shù)運(yùn)算符、日期與日期時(shí)間運(yùn)算符、算術(shù)運(yùn)算符、日期與日期時(shí)間運(yùn)算符、字字 符運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符符運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符2.2.1 2.2.1 數(shù)值、字符與日期時(shí)間表達(dá)式數(shù)值、字符與日期時(shí)間表達(dá)式 一、一、 數(shù)值表達(dá)式數(shù)值表達(dá)式 / * (乘方乘方) 如如: ? 32 &9 %(取模取模): 取兩數(shù)相除的余數(shù)。取兩數(shù)相除的余數(shù)。 如如: ?15%4 &3 ?50%5 &am
21、p;0 二、字符表達(dá)式二、字符表達(dá)式 1、+ 運(yùn)算符運(yùn)算符 : 用于順次連接兩個(gè)字符串用于順次連接兩個(gè)字符串如如: ?“ms”+”Windows” &”msWindows” ?“v ”+” i”+” p ” &”v i p ” ?”1”+”2”+”3” ?“123”+”456” 2、 運(yùn)算符運(yùn)算符 :用于連接兩個(gè)字符串用于連接兩個(gè)字符串,并將前一個(gè)字符串尾部并將前一個(gè)字符串尾部的空格移到結(jié)果字符串的尾部的空格移到結(jié)果字符串的尾部. 如如: ?“信息信息 ”+“技術(shù)技術(shù)” &顯示顯示“信息信息 技術(shù)技術(shù)” ?“信息信息 ” “技術(shù)技術(shù)” &顯示顯示“信息技術(shù)信息技
22、術(shù) ” ?“v ” ” i” & ”v i ” 三、日期與日期時(shí)間表達(dá)式三、日期與日期時(shí)間表達(dá)式 1 1、 日期或日期時(shí)間的運(yùn)算日期或日期時(shí)間的運(yùn)算, ,以運(yùn)算符以運(yùn)算符+ +表示數(shù)據(jù)相表示數(shù)據(jù)相加加, ,以運(yùn)算符以運(yùn)算符表示數(shù)據(jù)相減表示數(shù)據(jù)相減. . 如:如:?06/30/98 ?06/30/98 61 61 &日期型數(shù)據(jù)減天數(shù)日期型數(shù)據(jù)減天數(shù), ,顯示顯示04/30/9804/30/98 ?12/31/99 ?12/31/9912/31/98 12/31/98 &日期相減日期相減, ,顯示數(shù)值顯示數(shù)值365365 2 2、嚴(yán)格與通用日期格式、嚴(yán)格與通用日期格式 嚴(yán)格
23、日期格式:嚴(yán)格日期格式: YYYY-MM-DD YYYY-MM-DD SET STRICTDATE TO 1SET STRICTDATE TO 1 &使用嚴(yán)格的日期格式使用嚴(yán)格的日期格式( (系統(tǒng)默認(rèn)系統(tǒng)默認(rèn)) ) 通用日期格式:通用日期格式:MM/DD/YYMM/DD/YY SET STRICTDATE TO 0 SET STRICTDATE TO 0 &使用通常的日期格式使用通常的日期格式 小于 大于 = 大于等于 = (等于) : 串比較時(shí)串首同就得真 = = (完全相等) : 兩串全同才得真 , # 或 != : 不等于 $(包含) : 左串是右串子串返回真 ?“BC”
24、$”ABCD” & . T . ?”bc”$”abdc” & . F . ?“BC”$”AbcD” & . F . 2.2.2 關(guān)系表達(dá)式 關(guān)系運(yùn)算兩操作數(shù)類(lèi)型必須一致,比較的結(jié)果是邏輯型。關(guān)系運(yùn)算兩操作數(shù)類(lèi)型必須一致,比較的結(jié)果是邏輯型。 其中數(shù)值型數(shù)據(jù)按數(shù)值大小進(jìn)行比較;日期型數(shù)據(jù)按年其中數(shù)值型數(shù)據(jù)按數(shù)值大小進(jìn)行比較;日期型數(shù)據(jù)按年,月月,日的先后比較;字符型數(shù)據(jù)按相應(yīng)位置上兩個(gè)字符如:日的先后比較;字符型數(shù)據(jù)按相應(yīng)位置上兩個(gè)字符如:?6354 & . F . ?01/01/92 “AAAA” & . T . ?“abc”=“ab” & .
25、T . ?“abc”= =“ab” & . F . ? .t. .f. & . T . ?”王大明王大明”=“王王” & .T. . NOT .或或 ! “非非 ” . AND . “與與” . OR . “或或” 用用1: 真真 0: 假,則運(yùn)算規(guī)則為:假,則運(yùn)算規(guī)則為: 與與:見(jiàn)見(jiàn)0為為0 1 .and. 1 = 1 1 .and. 0 = 0 0 .and. 0 = 02.2.3 邏輯表達(dá)式邏輯表達(dá)式 或: 見(jiàn)1為1 1 .or. 1 = 1 1 .or. 0 = 1 0 .or. 0 = 0 非:取反 .not. 0 =1 .not. 1= 0 !0 = 1 !
26、1 = 0 優(yōu)先級(jí): .not. , .and. , .or. 邏輯運(yùn)算的操作數(shù)必須是能得出邏輯值的表達(dá)式, 運(yùn)算結(jié)果也是邏輯值. 關(guān)系運(yùn)算用來(lái)描述某種條件,邏輯運(yùn)算可用于描述復(fù)合的條件. 如如: (1)“32”“30” .and. 56“女女” & .f. (3) .not.“a”20 .or. “art”ars” (4) .not. (“a”20 .or. “art”ars”) 2.2.4 運(yùn)算符優(yōu)先級(jí) 運(yùn)算順序:算術(shù)運(yùn)算符-字符運(yùn)算符-日期與日期時(shí)間運(yùn)算符-關(guān)系運(yùn)算符-邏輯運(yùn)算符依次為:()- ,* - *,/,% - +,- - 字符連接+,- -日期+,- - ,=,=,=,
27、#,!=,$ - NOT - AND -OR2.3 常用函數(shù)常用函數(shù) 1. 函數(shù)的要素函數(shù)的要素: 函數(shù)名函數(shù)名,參數(shù)參數(shù),函數(shù)返回值函數(shù)返回值 (1)函數(shù)名起表示作用函數(shù)名起表示作用. (2)參數(shù)是自變量參數(shù)是自變量,一般是表達(dá)式一般是表達(dá)式,寫(xiě)在括號(hào)內(nèi)寫(xiě)在括號(hào)內(nèi). (3)函數(shù)運(yùn)算后會(huì)返回一個(gè)值函數(shù)運(yùn)算后會(huì)返回一個(gè)值,稱(chēng)為函數(shù)值稱(chēng)為函數(shù)值. 函數(shù)值會(huì)因函數(shù)值會(huì)因參數(shù)值而異參數(shù)值而異. 有的函數(shù)缺省參數(shù)有的函數(shù)缺省參數(shù),但仍有返回值但仍有返回值,如如DATE()能返回能返回系統(tǒng)當(dāng)前日期系統(tǒng)當(dāng)前日期. 2.3.1 數(shù)值運(yùn)算函數(shù)數(shù)值運(yùn)算函數(shù) INT(N)、 ABS(N)、 SQRT(N)、MAX(
28、N,M)、 MIN(N,M)、ROUND(N,M) 、MOD(N,M)、 1、取整函數(shù)、取整函數(shù)INT ( ) 格式:格式:INT () 功能功能: 返回返回的整數(shù)部分的整數(shù)部分 如如: int(7.5) = 7 int(4.3) = 4 int(4) = 4 int(-78.65) = -78 2、四舍五入函數(shù)、四舍五入函數(shù)round( ) 格式:格式:round(, ) 功能功能: 四舍五入四舍五入,保留保留位小位小數(shù)數(shù) 如如: round(3.1415, 3)=3.142 若若 0, 則小數(shù)點(diǎn)后則小數(shù)點(diǎn)后 +1位四舍五入位四舍五入 若若 0, 則小數(shù)點(diǎn)前第則小數(shù)點(diǎn)前第整數(shù)位四舍五入整數(shù)位
29、四舍五入 若若 =0, 則四舍五入到整數(shù)位則四舍五入到整數(shù)位 如如: n=32.6345216 round(n, 3) & 32.635 round(n, 0) & 33 round(n, -1) & 30 round(n,-2) & 0注意注意 3、MOD (, ) 功能功能: 取模取模,返回返回除以除以所得的余數(shù)所得的余數(shù). 如如: Mod(8.7, 3)=2.7 ?MOD(20,-3) & -1 余數(shù)符號(hào)與除數(shù)符號(hào)一致余數(shù)符號(hào)與除數(shù)符號(hào)一致 ,如果被除數(shù)和除數(shù)符如果被除數(shù)和除數(shù)符號(hào)相同號(hào)相同,則值為兩數(shù)相除的余數(shù)則值為兩數(shù)相除的余數(shù);如果異號(hào)如果異
30、號(hào),則函數(shù)值為兩則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值數(shù)相除的余數(shù)再加上除數(shù)的值. ?MOD(-20,3) & 1 ?MOD(-20,-3) & -2 2.3.2 字符處理函數(shù)字符處理函數(shù)v取子串函數(shù)取子串函數(shù):substr()、left()、right()v刪除空格函數(shù)刪除空格函數(shù):alltrim()、ltrim()、rtrim()v大小寫(xiě)字母轉(zhuǎn)換函數(shù)大小寫(xiě)字母轉(zhuǎn)換函數(shù):upper()、lower()v求字符串長(zhǎng)度函數(shù)求字符串長(zhǎng)度函數(shù):len()v求子串位置函數(shù)求子串位置函數(shù):at()v 空格函數(shù)空格函數(shù):space() 1、len () 功能功能: 返回字符串的長(zhǎng)度返回字符
31、串的長(zhǎng)度 如如: len (“abc”) &3 len (“你好你好”) &4 注注: 空格空格也算字符也算字符 如如: LEN(“14AD 11”) &7 2、取子串函數(shù)、取子串函數(shù)substr( )格式格式: substr (, ,取值長(zhǎng)度取值長(zhǎng)度)功能功能: 在在中取出從起始值位到指定長(zhǎng)度的中取出從起始值位到指定長(zhǎng)度的 子串子串. 如如: substr(“abcd”,2,2) & “bc” substr(“你好你好abc”,3,3) & “好好a”說(shuō)明:說(shuō)明:(1)若若缺省缺省,則子串取到則子串取到 的最后一個(gè)字符的最后一個(gè)字符. 如如: subs
32、tr(“abcdef”,3) & “cdef” (2)若若大于大于的長(zhǎng)度的長(zhǎng)度,且且set talk on (打開(kāi)對(duì)話狀態(tài)打開(kāi)對(duì)話狀態(tài)),則生成一個(gè)超出范圍的出錯(cuò)信則生成一個(gè)超出范圍的出錯(cuò)信息息 . 如如: ? Substr (“fox so”, 8 , 3) &出錯(cuò)出錯(cuò),開(kāi)始點(diǎn)超出范圍開(kāi)始點(diǎn)超出范圍 3、left / right (, ) 功能功能: 返回返回左左/右起右起個(gè)字符的個(gè)字符的 子串子串. 如如: left (“abcd”,2) &”ab” right(“abcd”,2) &”cd” 4、AT(,) 功能功能: 求求在在中第中第次出次出 現(xiàn)的位置現(xiàn)
33、的位置. 如如: at (“bc”,”abcd”,1) &2說(shuō)明說(shuō)明: (1)是指是指在在出現(xiàn)的第幾出現(xiàn)的第幾 次次數(shù)次次數(shù), 缺省為第缺省為第1次出現(xiàn)次出現(xiàn). 如如: at(“數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)”,”新型關(guān)系數(shù)據(jù)庫(kù)新型關(guān)系數(shù)據(jù)庫(kù)”) &9 at(“fox”,”foxbasefoxpro”,2) &8 (2)如果如果不在不在中中,函數(shù)值是函數(shù)值是0 5、空格生成函數(shù)、空格生成函數(shù) space() 功能功能:返回返回個(gè)空格個(gè)空格 如如: ? “asd”+space(3)+”lkj” &”asd lkj”6、修改字符串、修改字符串stuff( )函數(shù)函數(shù) 格式格式: st
34、uff (, )功能功能: 用用替換中替換中中的某些字符串,中的某些字符串, 替換的開(kāi)始位置由替換的開(kāi)始位置由確定,確定, 決定被替換的字符個(gè)數(shù)決定被替換的字符個(gè)數(shù) 如如: (1) stuff (“basic-pascal-fortran”,7,6,”foxpro”) & ”basic-foxpro-fortran” (2) str1= “abcdefg” ? Stuff (str1 , 3 , 3 , ”123”) & ”ab123fg”說(shuō)明說(shuō)明: (1)若若 =0, 則在則在字符串字符串的的 位置插入位置插入子字符串子字符串 如如: str1= “abcdefg” ?stu
35、ff(str1 , 3 , 0 , ”你好你好”) & “ab你好你好cdefg” (2)若若 =(空串空串), 則從則從的的開(kāi)始刪除開(kāi)始刪除指定的指定的字符字符 如如: ? stuff(str1 , 3 , 2 , ) & “abefg”7、刪除空格函數(shù)、刪除空格函數(shù) TRIM ( ) 刪串尾部空格同刪串尾部空格同RTRIM LTRIM ( ) 刪串的前導(dǎo)空格刪串的前導(dǎo)空格 ALLTRIM( ) 刪除首尾空格刪除首尾空格8、大大/小寫(xiě)轉(zhuǎn)換函數(shù)小寫(xiě)轉(zhuǎn)換函數(shù)UPPER / LOWER( ) 3.3.3 日期函數(shù)日期函數(shù)日期函數(shù)有:日期函數(shù)有:DATE( ),TIME( )、DAY
36、( )、 MONTH( ) 、YEAR( )、DOW( ) ?dow(2003/9/19) &6 1、系統(tǒng)日期函數(shù)、系統(tǒng)日期函數(shù)格式:格式:date( )功能功能:返回系統(tǒng)當(dāng)前日期返回系統(tǒng)當(dāng)前日期. 如如: ? date( ) 2、系統(tǒng)時(shí)間函、系統(tǒng)時(shí)間函格式:格式:time( )功能功能: 以以hh:mm:ss的格式返回系統(tǒng)當(dāng)前時(shí)間的格式返回系統(tǒng)當(dāng)前時(shí)間. 如如: ? time( ) 注注:這兩個(gè)函數(shù)缺省參數(shù)這兩個(gè)函數(shù)缺省參數(shù). 2、取年份函數(shù)、取年份函數(shù) 格式:格式: year() 功能功能: 返回返回四位四位數(shù)字年份數(shù)字年份,是一個(gè)數(shù)值是一個(gè)數(shù)值 例例1: ? Year ( dat
37、e() ) &返回系統(tǒng)日期的年份返回系統(tǒng)日期的年份 3、求時(shí)、分、秒函數(shù)、求時(shí)、分、秒函數(shù) HOUR() MINUTE() SEC()2.3.4 轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù) 1、數(shù)值轉(zhuǎn)字符串函數(shù)、數(shù)值轉(zhuǎn)字符串函數(shù)str( ) 格式格式: STR ( , ,) 功能功能:將將轉(zhuǎn)換為數(shù)字字符串轉(zhuǎn)換為數(shù)字字符串. 說(shuō)明說(shuō)明: (1)確定轉(zhuǎn)換后的字符串的位數(shù)確定轉(zhuǎn)換后的字符串的位數(shù)(包括負(fù)號(hào)包括負(fù)號(hào), 整數(shù)整數(shù),小數(shù)點(diǎn)小數(shù)點(diǎn),小數(shù)位數(shù)小數(shù)位數(shù)), 缺省值為缺省值為10 如如: str(3.14,5,1) &”3.1” (2)若若省略省略,缺省值為缺省值為0,即只轉(zhuǎn)換整數(shù)部分即只轉(zhuǎn)換整數(shù)部分.(四
38、四 舍五入原則舍五入原則) 如如: str(9876.5432) &”9877” (3) 若若小于整數(shù)部分小于整數(shù)部分,將以將以*代替代替? Str (9876.542 , 3) &*如如: ? “foxbase”+ str (2.10, 4 , 2) & ”foxbase2.10” 2、字符串轉(zhuǎn)換為數(shù)值字符串轉(zhuǎn)換為數(shù)值 VAL( )函數(shù)函數(shù) 格式格式: VAL () 功能功能: 從一個(gè)由數(shù)字組成的字符串表達(dá)式返回一個(gè)數(shù)值從一個(gè)由數(shù)字組成的字符串表達(dá)式返回一個(gè)數(shù)值. (小小 數(shù)位隱含數(shù)位隱含2位位) 說(shuō)明說(shuō)明: (1) val( )按照從左到右返回字符串表達(dá)式中的數(shù)字按
39、照從左到右返回字符串表達(dá)式中的數(shù)字,直直 到遇到一個(gè)非數(shù)字和非小數(shù)點(diǎn)的字符到遇到一個(gè)非數(shù)字和非小數(shù)點(diǎn)的字符.(即停止轉(zhuǎn)換即停止轉(zhuǎn)換) 如如: ?val(“234.45ABCD56”) &234.45 (2)如果字符串表達(dá)式以非數(shù)字字符開(kāi)頭如果字符串表達(dá)式以非數(shù)字字符開(kāi)頭(空格空格,加加,減號(hào)減號(hào)除外除外), val( )返回返回0. 如如: val (“xy69.34”) & 0.00 例:例:s=0123456789n=substr(s,6,1)w=at(“E”,”ABCDEFG”)w=at(E,ABCDEFG)m=substr(SRETCXJS,W,2)+.DBF?ma=
40、val(n)+1?a 3、字符串轉(zhuǎn)日期函數(shù)字符串轉(zhuǎn)日期函數(shù) 格式格式:CTOD () 功能功能: 將將轉(zhuǎn)換為日期型數(shù)據(jù)轉(zhuǎn)換為日期型數(shù)據(jù). 例:例: ? Ctod (“06/15/02”) +15 &將字符串轉(zhuǎn)換為日期后,再加上將字符串轉(zhuǎn)換為日期后,再加上15天天 4、日期轉(zhuǎn)字符串函數(shù)日期轉(zhuǎn)字符串函數(shù) 格式:格式: DTOC () 功能功能 :將將轉(zhuǎn)換為字符型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù) 例:例: ?dtoc (06/20/02) 日期格式轉(zhuǎn)換函數(shù)日期格式轉(zhuǎn)換函數(shù) DTOS ()功能功能 : 將將轉(zhuǎn)換為轉(zhuǎn)換為yyyy-mm-dd 格式的字格式的字 符串符串. 如如 : set strictdat
41、e to 0 ? Dtos (10/01/99) & 19991001 5、宏替換、宏替換& 格式格式: & . 功能功能:在字符型內(nèi)存變量或數(shù)組元素前使用在字符型內(nèi)存變量或數(shù)組元素前使用&時(shí)時(shí),該內(nèi)存變?cè)搩?nèi)存變 量或元素的內(nèi)容代替內(nèi)存變量或元素量或元素的內(nèi)容代替內(nèi)存變量或元素. 例例1: ks=“計(jì)算機(jī)等級(jí)考試計(jì)算機(jī)等級(jí)考試” tmp=“ks” ?&tmp & “計(jì)算機(jī)等級(jí)考試計(jì)算機(jī)等級(jí)考試” 例例2: hh=5 nn=“hh” ?&nn & 5 例例3: pro=“Foxbase+” ? ”我學(xué)習(xí)我學(xué)習(xí)&pro.!”
42、&”我學(xué)習(xí)我學(xué)習(xí)Foxbase+!” 注意注意: 宏替換表達(dá)式用宏替換表達(dá)式用小圓點(diǎn)小圓點(diǎn)“.”或或空格空格結(jié)束結(jié)束. 例例4: num=“988.188” ? 8000.4+&num & 8988.588 例例5: 計(jì)算計(jì)算40*50與與40+50的值的值 x=40 y=50 d=“*” s=“+” ? ”40*50=”, x&d.y & d為宏替換變量為宏替換變量, 宏表達(dá)式用小圓點(diǎn)結(jié)束宏表達(dá)式用小圓點(diǎn)結(jié)束. ? ”40+50=”, x&s.y 例例6: store 香港香港 to show store show to m ?&m+你
43、好你好! ? &show.你好你好! ? &m.你好你好!1.空值測(cè)試函數(shù)空值測(cè)試函數(shù) ISNULL()判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為.NULL.2. 數(shù)據(jù)類(lèi)型測(cè)試函數(shù)數(shù)據(jù)類(lèi)型測(cè)試函數(shù) VARTYPE()測(cè)試表達(dá)式值的類(lèi)型的函數(shù)測(cè)試表達(dá)式值的類(lèi)型的函數(shù). 如如:?VARTYPE(.T.)2.3.5 測(cè)試函數(shù) 6 、條件函數(shù)、條件函數(shù) IIF()格式格式: IIF(,)說(shuō)明說(shuō)明:如果如果的值為的值為.T.,則返回則返回;若為若為.f., 則返回則返回 例例: n=75 ch1=“及格及格” ch2=“不及格不及格” ?IIF(N=60,CH1,CH2
44、) &”及格及格” N=60 ?IIF(N60,CH2,CH1) 2.4.1 程序的概念程序的概念什么叫程序設(shè)計(jì)?什么叫程序設(shè)計(jì)? 程序設(shè)計(jì)反映了利用計(jì)算機(jī)解決問(wèn)題的全過(guò)程程序設(shè)計(jì)反映了利用計(jì)算機(jī)解決問(wèn)題的全過(guò)程,包,包含多方面的內(nèi)容,而編寫(xiě)程序只是其中的一個(gè)方面。使含多方面的內(nèi)容,而編寫(xiě)程序只是其中的一個(gè)方面。使用計(jì)算機(jī)解決實(shí)際問(wèn)題,通常是先要對(duì)問(wèn)題進(jìn)行分析并用計(jì)算機(jī)解決實(shí)際問(wèn)題,通常是先要對(duì)問(wèn)題進(jìn)行分析并建立數(shù)學(xué)模型建立數(shù)學(xué)模型,然后,然后考慮數(shù)據(jù)的組織方式和算法考慮數(shù)據(jù)的組織方式和算法,并用并用某一種程序設(shè)計(jì)語(yǔ)言編寫(xiě)程序某一種程序設(shè)計(jì)語(yǔ)言編寫(xiě)程序,最后,最后調(diào)試程序調(diào)試程序,使之
45、,使之運(yùn)運(yùn)行后能產(chǎn)生預(yù)期的結(jié)果行后能產(chǎn)生預(yù)期的結(jié)果。這個(gè)過(guò)程稱(chēng)為程序設(shè)計(jì)。這個(gè)過(guò)程稱(chēng)為程序設(shè)計(jì)。2.4 2.4 程序與程序設(shè)計(jì)程序與程序設(shè)計(jì)程序與程序方式程序與程序方式 程序是能夠完成一定任務(wù)的命令的有序集合程序是能夠完成一定任務(wù)的命令的有序集合。這。這組命令被存放在稱(chēng)為程序文件或命令文件的文本文件組命令被存放在稱(chēng)為程序文件或命令文件的文本文件中。當(dāng)運(yùn)行程序時(shí),系統(tǒng)會(huì)按照一定的次序自動(dòng)執(zhí)行中。當(dāng)運(yùn)行程序時(shí),系統(tǒng)會(huì)按照一定的次序自動(dòng)執(zhí)行包含在程序文件中的命令。包含在程序文件中的命令。 所謂程序方式所謂程序方式,就是先根據(jù)任務(wù)的要求確定能完,就是先根據(jù)任務(wù)的要求確定能完成該任務(wù)的命令序列,即編寫(xiě)程
46、序;然后在磁盤(pán)上建成該任務(wù)的命令序列,即編寫(xiě)程序;然后在磁盤(pán)上建立包含程序代碼的程序文件;最后通過(guò)運(yùn)行程序,讓立包含程序代碼的程序文件;最后通過(guò)運(yùn)行程序,讓系統(tǒng)自動(dòng)執(zhí)行程序代碼。系統(tǒng)自動(dòng)執(zhí)行程序代碼。程序方式的特點(diǎn):程序方式的特點(diǎn): 可以利用編輯器方便地輸入、修改和保存程序??梢岳镁庉嬈鞣奖愕剌斎?、修改和保存程序。 程序文件一旦建立,就可以被多次運(yùn)行,而且程序文件一旦建立,就可以被多次運(yùn)行,而且一個(gè)程序在運(yùn)行過(guò)程中還可以調(diào)用另一個(gè)程序。一個(gè)程序在運(yùn)行過(guò)程中還可以調(diào)用另一個(gè)程序。 在程序中可以出現(xiàn)在命令窗口中無(wú)法使用的命在程序中可以出現(xiàn)在命令窗口中無(wú)法使用的命令和語(yǔ)句。如流程控制語(yǔ)句等。令和語(yǔ)
47、句。如流程控制語(yǔ)句等。2.4.2 程序文件的建立和執(zhí)行程序文件的建立和執(zhí)行一、建立和修改程序文件一、建立和修改程序文件 1、命令:、命令: MODIFY COMMAND 功能:打開(kāi)一個(gè)編輯器窗口,建立或修改程序文件功能:打開(kāi)一個(gè)編輯器窗口,建立或修改程序文件 2、菜單方式、菜單方式 新建程序:新建程序:“文件文件 | 新建新建 ”,“程序程序” 修改程序:修改程序:“文件文件 | 打開(kāi)打開(kāi)”,選中一程序,選中一程序,“打打開(kāi)開(kāi)”即可在編輯器窗口中修改程序即可在編輯器窗口中修改程序 二、執(zhí)行程序文件二、執(zhí)行程序文件 1、命令方式、命令方式 命令:命令:DO 注:注: DO命令默認(rèn)運(yùn)行命令默認(rèn)運(yùn)行
48、 .PRG程序程序 要運(yùn)行其他文件要運(yùn)行其他文件, 中須包括擴(kuò)展名中須包括擴(kuò)展名. 2、菜單方式、菜單方式 “程序程序”“運(yùn)行運(yùn)行”,對(duì)話框中選擇一程序名對(duì)話框中選擇一程序名,“運(yùn)行運(yùn)行” 補(bǔ)充:補(bǔ)充: 一一. 程序的基本組成程序的基本組成 一個(gè)完善的應(yīng)用程序包括如下幾個(gè)部分一個(gè)完善的應(yīng)用程序包括如下幾個(gè)部分: 1、 程序說(shuō)明部分程序說(shuō)明部分 說(shuō)明本程序的名稱(chēng)說(shuō)明本程序的名稱(chēng),作者作者,基本功能描述基本功能描述,算法說(shuō)明算法說(shuō)明,變變量說(shuō)明等量說(shuō)明等.這些可通過(guò)注釋加以說(shuō)明這些可通過(guò)注釋加以說(shuō)明. 2、初始化過(guò)程、初始化過(guò)程 通過(guò)通過(guò)SET語(yǔ)句設(shè)置操作狀態(tài)語(yǔ)句設(shè)置操作狀態(tài) 設(shè)置變量和清屏設(shè)置變
49、量和清屏 3、程序體、程序體 完成程序主體的各種語(yǔ)句完成程序主體的各種語(yǔ)句,可輔以必要的說(shuō)明可輔以必要的說(shuō)明. 4、結(jié)束部分、結(jié)束部分 關(guān)閉不必要的文件關(guān)閉不必要的文件,恢復(fù)系統(tǒng)默認(rèn)狀態(tài)恢復(fù)系統(tǒng)默認(rèn)狀態(tài). 二二. 程序設(shè)計(jì)的主要步驟程序設(shè)計(jì)的主要步驟: 1 、分析問(wèn)題、分析問(wèn)題: 根據(jù)題目的要求根據(jù)題目的要求,分析程序應(yīng)解決哪些分析程序應(yīng)解決哪些問(wèn)題問(wèn)題 2 、確定算法、確定算法: 確定解題最合適的數(shù)學(xué)模型或確定解題最合適的數(shù)學(xué)模型或確定合適的處理方案確定合適的處理方案. 3、畫(huà)出程序流程圖、畫(huà)出程序流程圖: 用規(guī)定的基本圖形來(lái)描述解題步用規(guī)定的基本圖形來(lái)描述解題步驟驟.它表達(dá)了算法它表達(dá)了算
50、法,是編寫(xiě)程序的依據(jù)是編寫(xiě)程序的依據(jù). 4、編寫(xiě)程序、編寫(xiě)程序: 根據(jù)流程圖表達(dá)的步驟根據(jù)流程圖表達(dá)的步驟,用程序設(shè)計(jì)語(yǔ)言用程序設(shè)計(jì)語(yǔ)言逐句逐行的寫(xiě)出程序逐句逐行的寫(xiě)出程序. 5、調(diào)試程序、調(diào)試程序: 主要包括排錯(cuò)和測(cè)試兩部分主要包括排錯(cuò)和測(cè)試兩部分,直到結(jié)果滿直到結(jié)果滿意意. 6、建立健全的文檔資料、建立健全的文檔資料.例如:求園的周長(zhǎng)和面積。CLEARR=3P=2*PI()*RA=PI()*R2?”周長(zhǎng)周長(zhǎng)=”,P?”面積面積=”,ARETURN2.4.3 程序中常用的命令程序中常用的命令 一、簡(jiǎn)單的輸入輸出命令一、簡(jiǎn)單的輸入輸出命令 1、 鍵盤(pán)輸入字符串命令鍵盤(pán)輸入字符串命令 命令命令:
51、 ACCEPT TO 功能功能: 接受用戶從鍵盤(pán)上輸入字符串并賦值給內(nèi)存變接受用戶從鍵盤(pán)上輸入字符串并賦值給內(nèi)存變 量量,以回車(chē)鍵結(jié)束輸入以回車(chē)鍵結(jié)束輸入. 說(shuō)明說(shuō)明: (1)從鍵盤(pán)上輸入的任何字符都被作為字符串從鍵盤(pán)上輸入的任何字符都被作為字符串 接受接受,內(nèi)存變量為內(nèi)存變量為C型型. (2)提示信息可以是加引號(hào)的字符串提示信息可以是加引號(hào)的字符串,也可以是也可以是 字符串變量字符串變量. 它將原樣在屏幕上顯示出來(lái)它將原樣在屏幕上顯示出來(lái). 例例1:輸入一字符串,并用內(nèi)存變量保留起來(lái):輸入一字符串,并用內(nèi)存變量保留起來(lái) ACCEPT TO A1 ? A1 例例2 : 輸入一字符串輸入一字符串
52、“TED” 給內(nèi)存變量給內(nèi)存變量NAME ACCEPT “ENTER YOUR NAME ” TO NAME ? NAME 例例3:輸入一邏輯表達(dá)式:輸入一邏輯表達(dá)式 ACCEPT ”輸入邏輯表達(dá)式輸入邏輯表達(dá)式:” TO NN 2、鍵盤(pán)輸入單字符命令、鍵盤(pán)輸入單字符命令 命令命令: WAIT TO 功能功能: 接受用戶從鍵盤(pán)輸入單個(gè)字符接受用戶從鍵盤(pán)輸入單個(gè)字符. 說(shuō)明說(shuō)明: (1) 若無(wú)若無(wú),屏幕顯示屏幕顯示“按任意鍵繼續(xù)按任意鍵繼續(xù)” (2) TO : 將該字符存入指定的內(nèi)存變量將該字符存入指定的內(nèi)存變量 3、鍵盤(pán)輸入任意類(lèi)型數(shù)據(jù)命令、鍵盤(pán)輸入任意類(lèi)型數(shù)據(jù)命令 命令命令: INPUT T
53、O 功能功能: 接受用戶從鍵盤(pán)上輸入數(shù)據(jù)并賦給內(nèi)存變量接受用戶從鍵盤(pán)上輸入數(shù)據(jù)并賦給內(nèi)存變量. 說(shuō)明說(shuō)明: (1)從鍵盤(pán)輸入的數(shù)據(jù)可以是字符型從鍵盤(pán)輸入的數(shù)據(jù)可以是字符型,數(shù)值型或邏輯數(shù)值型或邏輯 型型,還可以是表達(dá)式還可以是表達(dá)式. 內(nèi)存變量的類(lèi)型由輸入的數(shù)據(jù)類(lèi)內(nèi)存變量的類(lèi)型由輸入的數(shù)據(jù)類(lèi) 型決定型決定. (2)輸入輸入字符型字符型數(shù)據(jù)時(shí)必須用數(shù)據(jù)時(shí)必須用定界符定界符括起來(lái)括起來(lái),表示它表示它 是字符串是字符串, 邏輯型數(shù)據(jù)需用圓點(diǎn)括起來(lái)邏輯型數(shù)據(jù)需用圓點(diǎn)括起來(lái). 例例1: INPUT “輸入姓名輸入姓名: ” TO ENAME &“李芳李芳” 例例2: INPUT “輸入一個(gè)數(shù)字輸
54、入一個(gè)數(shù)字: ” TO NUM &4 也可是表達(dá)式也可是表達(dá)式, 系統(tǒng)先計(jì)算表達(dá)式的值系統(tǒng)先計(jì)算表達(dá)式的值,再將其值存入再將其值存入內(nèi)存變量?jī)?nèi)存變量: 例例3: A1=4 INPUT “輸入表達(dá)式輸入表達(dá)式: ” TO B & A1*3 ?B 二、輸出語(yǔ)句二、輸出語(yǔ)句 1、文本輸出命令、文本輸出命令 命令:命令: TEXT ENDTEXT 功能:將功能:將TEXT與與ENDTEXT之間的文本信息照原樣輸出之間的文本信息照原樣輸出 說(shuō)明:說(shuō)明: TEXT與與ENDTEXT在程序中必須在程序中必須配對(duì)配對(duì) 三、其他程序運(yùn)行命令三、其他程序運(yùn)行命令 1、返回命令:、返回命令: RET
55、URN 功能:使程序執(zhí)行結(jié)束功能:使程序執(zhí)行結(jié)束,并返回到調(diào)用它的上級(jí)程序繼并返回到調(diào)用它的上級(jí)程序繼續(xù)執(zhí)行續(xù)執(zhí)行,若無(wú)上級(jí)程序則返回到命令窗口若無(wú)上級(jí)程序則返回到命令窗口.一般允許缺省一般允許缺省. 2、終止程序執(zhí)行命令、終止程序執(zhí)行命令CANCEL 功能功能: 使程序運(yùn)行終止使程序運(yùn)行終止,清除程序的私有變量清除程序的私有變量,關(guān)閉所關(guān)閉所有打開(kāi)的文件并返回到命令窗口有打開(kāi)的文件并返回到命令窗口. 3、退出系統(tǒng)命令、退出系統(tǒng)命令QUIT 功能功能: 終止程序運(yùn)行,關(guān)閉所有打開(kāi)的文件,退出終止程序運(yùn)行,關(guān)閉所有打開(kāi)的文件,退出VFP系統(tǒng)系統(tǒng) 4、注釋命令、注釋命令 命令:命令:NOTE 或或
56、 * 或或 & 說(shuō)明:注釋命令為非執(zhí)行語(yǔ)句。說(shuō)明:注釋命令為非執(zhí)行語(yǔ)句。 NOTE 和和* 作為獨(dú)立的一行語(yǔ)句,作為獨(dú)立的一行語(yǔ)句, & 放在某一放在某一 個(gè)語(yǔ)句的右邊個(gè)語(yǔ)句的右邊 。 5、環(huán)境設(shè)置命令、環(huán)境設(shè)置命令 (1)關(guān)閉對(duì)話命令關(guān)閉對(duì)話命令 命令:命令: SET TALK ON / OFF 功能:控制非輸出性的執(zhí)行結(jié)果是否在屏幕上顯示或打功能:控制非輸出性的執(zhí)行結(jié)果是否在屏幕上顯示或打 印出來(lái)。印出來(lái)。 2.5 程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)任何復(fù)雜的程序都由任何復(fù)雜的程序都由3 3種基本控制結(jié)構(gòu)組成。它們是種基本控制結(jié)構(gòu)組成。它們是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)
57、、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 2.5.1 分支結(jié)構(gòu)分支結(jié)構(gòu) 在執(zhí)行程序時(shí),按照一定的條件選擇不同的在執(zhí)行程序時(shí),按照一定的條件選擇不同的語(yǔ)句,用來(lái)解決選擇、轉(zhuǎn)移等問(wèn)題語(yǔ)句,用來(lái)解決選擇、轉(zhuǎn)移等問(wèn)題 1、單向分支、單向分支 即根據(jù)條件表達(dá)式的值,決定某一操作是即根據(jù)條件表達(dá)式的值,決定某一操作是否執(zhí)行。否執(zhí)行。 語(yǔ)句:語(yǔ)句: IF ENDIF 功能功能: 當(dāng)條件表達(dá)式的值為真時(shí)當(dāng)條件表達(dá)式的值為真時(shí), 執(zhí)行執(zhí)行, 然然 后執(zhí)行后執(zhí)行ENDIF 后面的語(yǔ)句后面的語(yǔ)句; 否則直接執(zhí)行否則直接執(zhí)行ENDIF 后面的語(yǔ)句后面的語(yǔ)句. 說(shuō)明說(shuō)明: (1)IF和和ENDIF必須必須成對(duì)成對(duì)出現(xiàn)出現(xiàn). (2)最后為
58、一邏輯值最后為一邏輯值. ENDIFENDIF后的語(yǔ)句后的語(yǔ)句條件條件.T.語(yǔ)句序列語(yǔ)句序列1 1練習(xí)1:從鍵盤(pán)上輸入任意兩個(gè)數(shù)據(jù),請(qǐng)按照從大從鍵盤(pán)上輸入任意兩個(gè)數(shù)據(jù),請(qǐng)按照從大到小的順序輸出。到小的順序輸出。IF AB &滿足條件兩個(gè)數(shù)據(jù)發(fā)生交換,否則不執(zhí)行條件語(yǔ)句 C=A A=B B=CENDIFCLEARINPUT “請(qǐng)輸入第一個(gè)數(shù)據(jù):” TO AINPUT “請(qǐng)輸入第二個(gè)數(shù)據(jù):” TO B?A,BRETURN 2、雙向分支、雙向分支 格式:格式: IF IF l ELSE ELSE 2 ENDIF ENDIF 功能說(shuō)明:若條件為真,執(zhí)行命令序列功能說(shuō)明:若條件為真,執(zhí)行命令序列
59、1 1,然后執(zhí)行,然后執(zhí)行ENDIFENDIF的后繼命令。如果條件為假,且有的后繼命令。如果條件為假,且有ELSEELSE子句,子句,執(zhí)行命令序列執(zhí)行命令序列2 2,然后執(zhí)行,然后執(zhí)行ENDIFENDIF的后續(xù)命令,若無(wú)的后續(xù)命令,若無(wú)ELSEELSE子句,則直接轉(zhuǎn)到子句,則直接轉(zhuǎn)到ENDIFENDIF之后。之后。 ENDIFENDIF后的語(yǔ)后的語(yǔ)句句語(yǔ)句序列語(yǔ)句序列1 1條條件件.Y.N.語(yǔ)句序列語(yǔ)句序列2 2說(shuō)明:(1) IF和ENDIF必須配對(duì)使用,而ELSE可選。(2) IF、ELSE、ENDIF必須各占一行。(3) 可以為關(guān)系表達(dá)式、邏輯表達(dá)式。(4)在語(yǔ)句序列1和語(yǔ)句序列2中可以嵌
60、套IF語(yǔ)句。練習(xí)練習(xí)2:請(qǐng)用分支結(jié)構(gòu)語(yǔ)句編程計(jì)算電費(fèi):不超過(guò):請(qǐng)用分支結(jié)構(gòu)語(yǔ)句編程計(jì)算電費(fèi):不超過(guò)50度,每度度,每度0.5元;超過(guò)元;超過(guò)50度時(shí),超出部分每度度時(shí),超出部分每度0.8元。元。CLEARINPUT “請(qǐng)輸入所用電量請(qǐng)輸入所用電量: TO DLDF=IIF(DL=”0” AND A=”A” AND A=”a” AND A=”z” WAIT “小寫(xiě)英文字符”+A+”!” CASE A=” ” WAIT “空格字符”+A+”!” OTHERWISE WAIT “其他字符”+A+”!”ENDCASECLEARWAIT “請(qǐng)輸入任意一個(gè)字符:” TO A RETURN練習(xí)練習(xí)5:閱讀下
61、列程序段,寫(xiě)出運(yùn)行結(jié)果:閱讀下列程序段,寫(xiě)出運(yùn)行結(jié)果:A=3000DO CASECASE A=1000B=ACASE A=2000B=2*ACASE A=3000B=3*AENDCASE? B 循環(huán),就是按給定的條件連續(xù)地重復(fù)執(zhí)行一段特定功能的程序。循環(huán)結(jié)構(gòu)也稱(chēng)為重復(fù)結(jié)構(gòu)。 Visual FoxProVisual FoxPro給出了三種循環(huán)結(jié)構(gòu):給出了三種循環(huán)結(jié)構(gòu):條件循環(huán)(條件循環(huán)(DO WHILEDO WHILEENDDOENDDO)計(jì)算循環(huán)(計(jì)算循環(huán)(FORFORENDFORENDFOR)掃描循環(huán)(掃描循環(huán)(SCANSCANENDSCANENDSCAN)DO WHILE DO WHILE 1 LOOPLOOP 2 EXITEXIT 3ENDDO ENDDO ENDDOENDDO
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java面試題及答案源碼和jvm
- 用友網(wǎng)絡(luò)java面試題及答案
- 財(cái)經(jīng)法規(guī)面試題及答案
- 美團(tuán)java面試題及答案筆試
- 有機(jī)磷中毒病人的急救護(hù)理
- cdfi大型設(shè)備考試試題及答案
- 透析用靜脈置管的護(hù)理
- 食物中毒病人的護(hù)理措施
- c3駕照考試試題及答案
- 網(wǎng)絡(luò)購(gòu)物畢業(yè)設(shè)計(jì)答辯
- 五官科護(hù)理第七章-口腔頜面部的應(yīng)用解剖生理課件
- 第四章 第二節(jié)招聘
- FZT 73013-2017 針織泳裝行業(yè)標(biāo)準(zhǔn)
- 科技志愿服務(wù)培訓(xùn)課件
- 血液科疾病常見(jiàn)癥狀護(hù)理培訓(xùn)課件
- 2024-2025年全國(guó)初中化學(xué)競(jìng)賽試卷及答案
- 2024年首都機(jī)場(chǎng)集團(tuán)資產(chǎn)管理有限公司招聘筆試參考題庫(kù)含答案解析
- 生產(chǎn)異常管理課件
- 酒廠擴(kuò)建可行性報(bào)告
- 售后服務(wù)中的客戶溝通和協(xié)商技巧
- 《紅樓夢(mèng)》中賈母的智慧與權(quán)謀解析
評(píng)論
0/150
提交評(píng)論