2-2015-VFP第2、3部分(表達(dá)式函數(shù))詳解_第1頁
2-2015-VFP第2、3部分(表達(dá)式函數(shù))詳解_第2頁
2-2015-VFP第2、3部分(表達(dá)式函數(shù))詳解_第3頁
2-2015-VFP第2、3部分(表達(dá)式函數(shù))詳解_第4頁
2-2015-VFP第2、3部分(表達(dá)式函數(shù))詳解_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

VisualFoxpro6.0程序設(shè)計(jì)基礎(chǔ)重慶工商大學(xué)計(jì)算機(jī)學(xué)院計(jì)算機(jī)基礎(chǔ)教研室第二講程序設(shè)計(jì)初步(2)要點(diǎn): 掌握表達(dá)式、函數(shù)的基本用法編寫程序的基本元素命令常量變量表達(dá)式函數(shù)對象表單標(biāo)簽文本框命令按鈕……√√√

表達(dá)式運(yùn)算符及表達(dá)式

運(yùn)算符是在VFP中用來進(jìn)行運(yùn)算的符號。表達(dá)式是由數(shù)據(jù)、數(shù)據(jù)存儲容器和運(yùn)算符組成的運(yùn)算式。

在VFP系統(tǒng)中根據(jù)不同的運(yùn)算符及表達(dá)式結(jié)果的不同,表達(dá)式可以分為以下五種:

1、算術(shù)表達(dá)式2、字符表達(dá)式

3、日期表達(dá)式和日期時(shí)間表達(dá)式

4、關(guān)系表達(dá)式

5、邏輯表達(dá)式

1.常見的表達(dá)式

(1)算術(shù)表達(dá)式算術(shù)表達(dá)式的運(yùn)算結(jié)果是數(shù)值型常數(shù)。算術(shù)運(yùn)算符:()分組括號**或^乘方%取模(除法的余數(shù))

*、/

乘、除+、-加、減特別注意符號的變化仔細(xì)體會教科書P25【例2-3】(2)字符表達(dá)式字符表達(dá)式運(yùn)算的結(jié)果是字符型常數(shù)或邏輯型常數(shù)。字符運(yùn)算符:$包含運(yùn)算+連接運(yùn)算

-連接運(yùn)算

字符型常數(shù)邏輯型常數(shù)

串1$串2“$”運(yùn)算實(shí)質(zhì)上是比較兩個(gè)串的包含關(guān)系,其作用是比較、判斷串1是否為串2的子串,如果串1是串2的子串,運(yùn)算結(jié)果為“真”,否則為“假”。所謂子串,如果串1中所有字符均包含在串2中、且與串1中排列方式與順序完全一致,則稱串1為串2的子串?!拘薷睦?-4】設(shè)計(jì)并運(yùn)行如圖所示的表單,體會運(yùn)算結(jié)果。表單分別有1個(gè)標(biāo)簽、3個(gè)文本框、1個(gè)命令按鈕,其caption屬性如圖所示。“計(jì)算”命令按鈕的“Click”事件代碼:A=alltrim(thisform.text1.value)B=thisform.text2.valuethisform.text3.value=A$B文本框默認(rèn)的值為字符型,alltrim()是一個(gè)函數(shù),功能是去掉文本框中前后空格,,不刪除串中間的空格

“+”與“-”都是字符連接運(yùn)算符,都將兩邊的字符串順序連接,但“+”是直接連接,“-”則將串1尾部所有空格移到串2尾部后再連接;

□表示空格“XXXX□□□”+“YYYY”“XXXX□□□YYYY”↓“XXXX□□□”-“YYYY”“XXXXYYYY□□□”↓【例2-5】設(shè)計(jì)并運(yùn)行如圖2-12所示的表單,體會運(yùn)算結(jié)果。表單分別有4個(gè)標(biāo)簽、2個(gè)命令按鈕,其caption屬性如圖2-12所示;2個(gè)文本框,其value屬性的初值均為空串。

“連接(+)”命令按鈕的“Click”事件代碼:c1=ALLTRIM(Thisform.Text1.Value)c2=ALLTRIM(Thisform.Text2.Value)thisform.label3.caption=c1+""+c2+c1“連接(-)”命令按鈕的“Click”事件代碼:c1=ALLTRIM(Thisform.Text1.Value)c2=ALLTRIM(Thisform.Text2.Value)thisform.label4.caption=c1+""-c2+c1(3)日期表達(dá)式或日期時(shí)間表達(dá)式日期和日期時(shí)間運(yùn)算符分為“+”和“-”兩種,其作用分別是在日期數(shù)據(jù)上增加或減少天數(shù),在日期時(shí)間數(shù)據(jù)上增加或減少秒數(shù)。注意:日期型不能和日期型數(shù)據(jù)相加格式結(jié)果及類型<日期>+<天數(shù)>日期型。指定日期若干天后的日期<天數(shù)>+<日期>日期型。指定日期若干天后的日期<日期>-<天數(shù)>日期型。指定日期若干天前的日期<日期1>-<日期2>數(shù)值型。兩個(gè)指定日期相差的天數(shù)<日期時(shí)間>+<秒數(shù)>日期時(shí)間型。指定日期時(shí)間若干秒后的日期時(shí)間<秒數(shù)>+<日期時(shí)間>日期時(shí)間型。指定日期時(shí)間若干秒后的日期時(shí)間<日期時(shí)間>-<秒數(shù)>日期時(shí)間型。指定日期時(shí)間若干秒前的日期時(shí)間<日期時(shí)間1>-<日期時(shí)間2>數(shù)值型。兩個(gè)指定日期時(shí)間相差的秒數(shù)格式結(jié)果及類型【修改例2-6】設(shè)計(jì)并運(yùn)行如圖所示的表單,體會運(yùn)算結(jié)果。3個(gè)文本框,text1、text2可以接收日期型的值。表單form1的load事件代碼如下:setcenturyon&&將日期的年份值設(shè)置成4位顯示setdatetoymd&&日期的顯示為年月日setmarkto"-"&&日期分隔符為“-”雙擊“計(jì)算”命令按鈕,編寫該按鈕的“Click”事件代碼。其對應(yīng)的事件代碼為:thisform.text3.value=abs(thisform.text1.value-thisform.text2.value)abs函數(shù)的格式為:ABS(<數(shù)值表達(dá)式>)。其功能是求數(shù)值型表達(dá)式的絕對值。

(4)關(guān)系表達(dá)式關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯型常量。關(guān)系成立結(jié)果為(.T.);反之,結(jié)果為(.F.)。關(guān)系運(yùn)算符:<小于>大于=等于<=小于或等于>=大于或等于<>、!=、#不等于==完全等于(注:只適用于字符型)各種類型數(shù)據(jù)的比較規(guī)則如下:數(shù)值型和貨幣型數(shù)據(jù)根據(jù)其代數(shù)值的大小進(jìn)行比較。日期型和日期時(shí)間型數(shù)據(jù)進(jìn)行比較時(shí),越新的日期或時(shí)間越大。邏輯型數(shù)據(jù)比較時(shí),.T.比.F.大。字符型數(shù)據(jù)(字符串)比較P32的〖溫馨提示〗當(dāng)字符串比較時(shí),可用命令SETEXACTON/OFF來設(shè)置“=”是否為精確比較。在非精確比較(setexactoff默認(rèn)狀態(tài))時(shí),在關(guān)系表達(dá)式的格式中,只要后一個(gè)表達(dá)式是前一個(gè)表達(dá)式的前綴,其結(jié)果便為真。例:”ABCDE”=“A”“ABCDE”=“AB”“ABCDE”=“ABC”“ABCDE”=“ABCD”“ABCDE”=“ABCDE”.T.例:”A”=“ABCDE”“AB”=“ABCDE”“ABC”=“ABCDE”“ABCD”=“ABCDE”

.F.【例2-7】設(shè)計(jì)并運(yùn)行如下如圖2-16所示的表單,體會運(yùn)算結(jié)果。(5)邏輯表達(dá)式邏輯表達(dá)式的運(yùn)算結(jié)果仍是邏輯型常量。邏輯運(yùn)算符:

!、NOT、.NOT.邏輯非

OR、.OR.邏輯或

AND、.AND.邏輯與該運(yùn)算符只有一個(gè)操作對象邏輯運(yùn)算真值表ABA.AND.BA.OR.B.NOT.A.T..T..T..T..F..T..F..F..T..F..F..T..F..T..T..F..F..F..F..T.【例2-8】設(shè)計(jì)并運(yùn)行如下如圖2-18所示的表單,體會運(yùn)算結(jié)果?!坝?jì)算”命令按鈕的“Click”事件代碼為:ifthisform.text1.value>=60andthisform.text2.value>=60

thisform.label3.caption="該同學(xué)的計(jì)算機(jī)等級考試成績?yōu)椋和ㄟ^"else

thisform.label3.caption="該同學(xué)的計(jì)算機(jī)等級考試成績?yōu)椋翰煌ㄟ^"endif表達(dá)式值為真表示通過,表達(dá)式值為假表示不通過

函數(shù)

函數(shù)具有特定的功能,分為系統(tǒng)函數(shù)和自定義函數(shù)兩類。

函數(shù)具有函數(shù)名、參數(shù)和函數(shù)值三個(gè)要素,有的函數(shù)缺省參數(shù)。函數(shù)調(diào)用的一般形式為:函數(shù)名([參數(shù)表])一、數(shù)值處理函數(shù)1)取整函數(shù)INT(<數(shù)值表達(dá)式>)格式:無條件去掉小數(shù)部分,不進(jìn)行四舍五入2)求余數(shù)函數(shù)格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)例如:MOD(38,5),MOD(38,-5),MOD(-38,5),MOD(-38,-5)38%5,38%-5,-38%5,-38%-5函數(shù)值與<數(shù)值表達(dá)式2>同號38-540-8-2-385-40-82-38-5-357-33-22-33-22-3【例】將一個(gè)3位整數(shù)X的百位數(shù)字和個(gè)位數(shù)字取出來。

X的百位數(shù)字:

X1=INT(X/100)X的個(gè)位數(shù)字:

X2=MOD(X,10)

仔細(xì)體會教科書P35【例2-10】【例2-10】設(shè)計(jì)一表單,要求能輸入一個(gè)3位數(shù),并逆序顯示(如輸入756,則顯示657)。表單設(shè)計(jì)界面如圖2-22所示,運(yùn)行結(jié)果如圖2-23所示。

①設(shè)計(jì)如圖2-22所示表單,文本框text1的value屬性的初值為0。②命令按鈕“逆序顯示”的“click”事件代碼如下:x=thisform.text1.valuex1=INT(x/100)x2=INT(MOD(x,100)/10)x3=x%10y=x1+10*x2+100*x3thisform.label2.caption="結(jié)果為:"+STR(y,3)3)四舍五入函數(shù)

格式:ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)【例】ROUND()函數(shù)的使用。x=486.735ROUND(x,4-2),ROUND(x,1),ROUND(x,0),ROUND(x,-1),ROUND(X,-2)486.735位置:-2-10123

對<數(shù)值表達(dá)式2>+1位四舍五入486.74486.74874905005)隨機(jī)函數(shù)

格式:RAND()6)π函數(shù)

格式:PI()4)求平方根函數(shù)

格式:SQRT(<數(shù)值表達(dá)式>

)產(chǎn)生0-1之間的隨機(jī)數(shù)圓面積S=PI()*R*R例如:INT(RAND()*100)(0,100)的整數(shù)二、

字符串處理函數(shù)1)求字符串長度函數(shù)LEN(<字符串表達(dá)式>)格式:2)生成空格函數(shù)SPACE(<數(shù)值型表達(dá)式>)格式:【例】LEN(SPACE(8)-SPACE(3))113)刪除字符串前后空格函數(shù)[R]TRIM(<字符串表達(dá)式>)LTRIM(<字符串表達(dá)式>)ALLTRIM(<字符串表達(dá)式>)格式:刪除后面的空格刪除前面的空格刪除前后空格4)求子串位置函數(shù)格式:AT(<字符串表達(dá)式1>,<字符串表達(dá)式2>[,<數(shù)值表達(dá)式>])5)取子串函數(shù)格式:LEFT(<字符串表達(dá)式>,<數(shù)值表達(dá)式>)RIGHT(<字符串表達(dá)式>,<數(shù)值表達(dá)式>)SUBSTR(<字符串表達(dá)式>,<起始位置>[,<數(shù)值表達(dá)式>])【例2-11】設(shè)計(jì)并運(yùn)行如圖2-24所示表單,體會表單運(yùn)行結(jié)果。表單分別有4個(gè)標(biāo)簽、1個(gè)命令按鈕,其caption屬性如圖2-24所示;3個(gè)文本框。其功能是能在文本框text1中輸入一字符串,根據(jù)文本框text2和text3中輸入的數(shù)值,取出子串,運(yùn)行結(jié)果如圖2-25所示?!叭∽哟泵畎粹o的“Click”事件代碼為:C=alltrim(thisform.text1.value)N1=thisform.text2.valueN2=thisform.text3.valuethisform.label4.caption=substr(c,n1,n2)

6)宏替換函數(shù)

格式:&<字符型內(nèi)存變量>[.]分界符【修改例2-12】表單界面如圖2-26所示,體會運(yùn)算結(jié)果。

命令按鈕“計(jì)算”的“click”事件代碼如下:

x1=thisform.text1.valuex2=thisform.text3.valuefh=alltrim(thisform.text2.value)y=x1&fh.x2

thisform.text4.value=y①A=“setdefaultto”&ad:\vfpsetdefaulttod:\vfp

②X=“SQRT(9)”Y=2*&x+5Y=2*SQRT(9)+5

③X12=“abcd”i=“1”j=”2”Y=x&i&jY=X12

④X=“123”Y=“a2&x5”Y=“a2&x5”

⑤X=123Y=“a2&x.5”Y=“a2&x.5”⑥X=“123”Y=“a2&x.5”Y=“a21235”

三、

日期時(shí)間函數(shù)

1)系統(tǒng)日期和系統(tǒng)時(shí)間函數(shù)

格式:DATE()TIME()DATETIME()字符型

2)求年份、月份和天數(shù)函數(shù)

格式:YEAR(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)MONTH(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)DAY(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)返回值4位四、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1)字符串轉(zhuǎn)換為數(shù)值函數(shù)

格式:VAL(<數(shù)字字符串>)【例】VAL()函數(shù)的使用。VAL("X12.8"),VAL("-35.875"),VAL("3A.79")VAL(”32”+”18”)0.00-35.883.003218.00VAL(”32+18”)32.00

2)數(shù)值轉(zhuǎn)換成字符串函數(shù)

格式:STR(<數(shù)值型表達(dá)式>[,<長度>,[,<小數(shù)位數(shù)>]])【例】STR()函數(shù)的使用。P=-348.387STR(P,9,2)STR(P,6,2)STR(P,3)STR(P,6)STR(P)STR(P,10,4)□□-348.39□表示空格-348.4***□□

-348□□□□□□-348-348.3870【例】設(shè)計(jì)如圖表單,圓面積用標(biāo)簽輸出。【例】命令按鈕“計(jì)算圓面積”的“click”事件代碼如下:R=thisform.text1.valueS=pi()*r*rthisform.label3.caption=alltrim(str(s,8,1))只接收字符類型標(biāo)簽除了可以顯示說明文本,還可以用來輸出結(jié)果

3)字符與ASCII之間的轉(zhuǎn)換函數(shù)

格式:ASC(<字符型表達(dá)式>)CHR(<數(shù)值型表達(dá)式>)【例2-15】如圖2-32所示為表單的設(shè)計(jì)界面,運(yùn)行該表單,在文本框Text1中輸入一字符R,單擊“轉(zhuǎn)換”命令按鈕后,標(biāo)簽label2的位置將顯示什么?“轉(zhuǎn)換”命令按鈕的CLICK事件代碼:x=thisform.text1.valuey=CHR(ASC(x)+1)thisform.label2.caption=y

4)日期或日期時(shí)間與字符串轉(zhuǎn)換函數(shù)

格式:CTOD(<字符型表達(dá)式>)

DTOC(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>[,1])五、測試函數(shù)1)條件測試函數(shù)

格式:IIF(<邏輯型表達(dá)式>,<表達(dá)式1>,<表達(dá)式2>)

thisform.label1.caption=iif(thisform.text1.value>10,"hello","你好")thisform.label1.caption=iif(rand()>0.5,"Hello","World")【例】在標(biāo)簽Label1中隨機(jī)顯示字符串“Hello”和“World”。2)數(shù)據(jù)類型測試函數(shù)

格式:VARTYPE(<表達(dá)式>)

返回的字母數(shù)據(jù)類型返回的字母數(shù)據(jù)類型C字符型或備注型G通用型N數(shù)值型、整型、浮點(diǎn)型或雙精度型D日期型Y貨幣型T日期時(shí)間型L邏輯型XNull值O對象型U未定義六、系統(tǒng)對話框函數(shù)格式:MESSAGEBOX(<字符串>[,<對話框類型>[,<對話框標(biāo)題字符串>]])函數(shù)名不能省略對話框類型及含義按鈕類型值對話框按鈕圖標(biāo)類型值圖標(biāo)默認(rèn)按鈕類型值默認(rèn)按鈕012345“確定”按鈕“確定”和“取消”按鈕“終止”、“重試”和“忽略”按鈕“是”、“否”和“取消”按鈕“是”和“否”按鈕“重試”和“取消”按鈕16324864“終止”圖標(biāo)“問號”圖標(biāo)“感嘆號”圖標(biāo)“信息”圖標(biāo)0256512第1個(gè)按鈕第2個(gè)按鈕第3個(gè)按鈕【例2-16】修改【例2-10】中命令按鈕“逆序顯示”的“click”事件代碼,要求能輸入一個(gè)數(shù),并逆序顯示(如輸入756,則顯示657),如果輸入的不是一個(gè)3位自然數(shù),將彈出提示框,如圖2-34所示。命令按鈕“逆序顯示”的“click”事件代碼如下:x=thisform.text1.valueifx>=100andx<1000a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論