官术网_书友最值得收藏!

實驗三 常用函數(shù)

【實驗?zāi)康摹?/h4>

熟練掌握Visual FoxPro常用函數(shù)的功能和使用方法。

【實驗內(nèi)容】

1.首先執(zhí)行以下語句對數(shù)組元素賦值,然后驗證下列函數(shù)的值。

Dimension a(5)

a(1)=123.45

a(2)={^2014-10-1}

a(3)= '中國湖南長沙'

a(4)= 'abcba' (字符串的前面無空格,最后有一空格)


數(shù)值函數(shù)

?INT(a(1)), INT(-a(1))

?CEILING(a(1)), CEILING(-a(1))

?FLOOR(a(1)), FLOOR(-a(1))

?ROUND(a(1),1), ROUND(a(1),-1)

?MOD(INT(a(1)),4), MOD(INT(a(1)),-4)


字符函數(shù)

?LEFT(a(3),4), RIGHT(a(3),4), SUBSTR(a(3),5,4), SUBSTR(a(3),9)

?LEN(REPLICATE(a(4),2)), LEN(TRIM(REPLICATE(a(4),2)))

?AT(UPPER('aBc'),a(4)), AT(LOWER('aBc'),a(4)), OCCURS('a',a(4))

?LIKE('a*',a(4)), LIKE('a?',a(4)), LIKE(a(4),'a*')

?STUFF(a(3),5,4,'HUNAN'), CHRTRAN(a(4),'a','d')

?ASC(SPACE(1)), CHR(ASC('A')+10)


日期時間函數(shù)

?YEAR(a(2)), MONTH(a(2)), DAY(a(2)), CDOW(a(2))

?HOUR(DATETIME()), MINUTE(DATETIME()),SEC(DATETIME())


數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

?STR(a(1),5,1), STR(a(1),4,1), STR(a(1),5), STR(a(1),2)

?VAL(STR(a(1))+a(3))

?DTOC(a(2)), DTOC(a(2),1), CTOD('05/01/14')


測試函數(shù)

?BETWEEN(a(1),100,200), BETWEEN(a(2),{^2014-1-1},{^2014-12-31})

?ISNULL(a(5)), EMPTY(a(5))

?VARTYPE(a(1)), VARTYPE(a(2)), VARTYPE(a(3)), VARTYPE(a(5))

?IIF(a(1)>100, '通過', '未通過')

2.運用函數(shù),寫出下列表達(dá)式。

(1)圓周率的平方根,結(jié)果保留一位小數(shù)。

(2)判斷a(2)是否屬于2014年下半年(要求用兩種不同的方法)。

(3)判斷a(3)的第一個字符是否為字符’中’(要求用四種不同的方法)。

(4)用一個字符串表示系統(tǒng)的日期和時間,格式為2014年3月17日Monday 20時30分15秒(要求用兩種不同的方法)。

【實驗步驟】

1.啟動VFP,在命令窗口首先依次執(zhí)行定義數(shù)組和對數(shù)組元素賦值的語句。

再輸入?命令和表達(dá)式查看表達(dá)式的值,結(jié)合函數(shù)的定義思考為什么會得到該結(jié)果。

2.在命令窗口中,輸入?命令和通過函數(shù)的嵌套使用而形成的表達(dá)式。

提示:第(2)題可分別使用BETWEEN和YEAR MONTH函數(shù),第(3)題可分別使用LEFT、AT、LIKE函數(shù),第(4)題可分別使用DTOC和YEAR、MONTH等函數(shù)。

【答案解析】

1.首先執(zhí)行以下語句對數(shù)組元素賦值,然后驗證下列函數(shù)的值。

Dimension a(5)

a(1)=123.45

a(2)={^2014-10-1}

a(3)='中國湖南長沙'

a(4)= 'abcba' (字符串的前面無空格,最后有一空格)


數(shù)值函數(shù)

?INT(a(1)), INT(-a(1)) &&取整數(shù)部分函數(shù) 123,-123

?CEILING(a(1)), CEILING(-a(1)) &&取大于參數(shù)的最小整數(shù)函數(shù) 124,-123

?FLOOR(a(1)), FLOOR(-a(1)) &&取小于參數(shù)的最大整數(shù)函數(shù) 123,-124

?ROUND(a(1),1), ROUND(a(1),-1) &&四舍五入函數(shù) 123.5,120

?MOD(INT(a(1)),4), MOD(INT(a(1)),-4) &&取余數(shù)函數(shù) 3,-1


字符函數(shù)

?LEFT(a(3),4), RIGHT(a(3),4), SUBSTR(a(3),5,4), SUBSTR(a(3),9)

&&中國,長沙,湖南,長沙

&&左子串函數(shù)LEFT 右子串函數(shù)RIGHT 指定位置截取子串函數(shù)SUBSTR

?LEN(REPLICATE(a(4),2)), LEN(TRIM(REPLICATE(a(4),2)))

&&12, 11

&&字符串長度函數(shù)LEN,重復(fù)字符串函數(shù)REPLICATE,去掉尾部空格函數(shù)TRIM

?AT(UPPER('aBc'),a(4)), AT(LOWER('aBc'),a(4)), OCCURS('a',a(4))

&&0, 1, 2

&&UPPER轉(zhuǎn)大寫字母函數(shù),LOWER轉(zhuǎn)小寫字母函數(shù),AT求子串的起始位置函數(shù)

&&OCCURS求子串出現(xiàn)次數(shù)函數(shù)

?LIKE('a*',a(4)), LIKE('a?',a(4)), LIKE(a(4),'a*')

&&.T. .F. .F. ,LIKE字符串匹配函數(shù)

?STUFF(a(3),5,4,'HUNAN'), CHRTRAN(a(4),'a','d')

&&中國HUNAN長沙, dbcbd

&&STUFF字符串替換函數(shù),CHRTRAN字符替換函數(shù)

?ASC(SPACE(1)), CHR(ASC('A')+10)

&&83, K

&&SPACE生成空格函數(shù),ASC求ASCII碼函數(shù),CHR求碼值對應(yīng)字符函數(shù)


日期時間函數(shù)

?YEAR(a(2)), MONTH(a(2)), DAY(a(2)), CDOW(a(2))

&&2014,10,1, Wednesday

&&YEAR求年號函數(shù) MONTH 求月份函數(shù)DAY求日號函數(shù) CDOW求星期幾函數(shù)

?HOUR(DATETIME()), MINUTE(DATETIME()),SEC(DATETIME())

&&DATETIME求系統(tǒng)的日期時間,HOUR返回小時,MINUTE返回分鐘,SEC返回秒


數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

?STR(a(1),5,1), STR(a(1),4,1), STR(a(1),5), STR(a(1),2)

&&123.5, 123, 123, **,STR數(shù)值型轉(zhuǎn)字符型函數(shù)

?VAL(STR(a(1))+a(3))

&&123.0 VAL字符型轉(zhuǎn)數(shù)值型函數(shù)

?DTOC(a(2))), ?DTOC(a(2),1), CTOD('05/01/14')

&&10/01/2014, 20141001, 05/01/14

&&DTOC日期型轉(zhuǎn)字符型函數(shù),CTOD字符型轉(zhuǎn)日期型函數(shù)


測試函數(shù)

?BETWEEN(a(1),100,200), BETWEEN(a(2),{^2014-1-1},{^2014-12-31})

&&.T. .T. BETWEEN判斷第一個參數(shù)是否在后兩個參數(shù)之間

?ISNULL(a(5)), EMPTY(a(5))

&&.T. .F. ISNULL判斷是否NULL值函數(shù),EMPTY判斷是否空值函數(shù)

?VARTYPE(a(1)), VARTYPE(a(2)), VARTYPE(a(3)), VARTYPE(a(5))

&& N, D, C, L VARTYPE 判斷數(shù)據(jù)類型函數(shù)

?IIF(a(1)>100, '通過', '未通過')

&&通過 IIF若第一個參數(shù)是真,返回第二個表達(dá)式的值,否則返回第三個參數(shù)的值

2.運用函數(shù),寫出下列表達(dá)式。

(1)圓周率的平方根,結(jié)果保留一位小數(shù)。

&&ROUND(SQRT(PI()),1)

(2)判斷a(2)是否屬于2014年下半年。

&&BETWEEN(A(2),{^2014-7-1},{^2014-12-31})

&&YEAR( A(2))=2014 ANDMONTH( A(2))>=1 AND MONTH( A(2))<=6

(3)判斷a(3)的第一個字符是否為字符'中'。

&&LEFT(A(3),2)='中'

&&SUBSTR(A(3),1,2)='中'

&& AT('中',A(3))=1

&& LIKE(A(3),'中*')=.T.

(4)用一個字符串表示系統(tǒng)的日期和時間,格式為2014年3月17日Monday 20時30分15秒。

&& STR(YEAR(DATE()),4)+'年'+ STR(MONTH(DATE()),2)+'月'+ STR(DAY(DATE()),2)+'日'+LEFT(TIME(),2)+'時'+SUBSTR(TIME(),4,2)+'分' +RIGHT(TIME(),2)+'秒'

&& LEFT(TTOC(DATETIME(),1),4)+'年'+SUBSTR(TTOC(DATETIME(),1),5,2)+'月'+ SUBSTR(TTOC(DATETIME(),1),7,2)+'日'+SUBSTR(TTOC(DATETIME(),1),9,2)+'時'+SUBSTR(TTOC (DATE TIME(),1),11,2)+'分'+ RIGHT(TTOC(DATETIME(),1),2)+ '秒'

【實驗作業(yè)】

1.變量a,b,c為一元二次方程ax2+bx+c=0的系數(shù),使用函數(shù)求解方程的兩個根x1和x2,并對其保留兩位小數(shù)(設(shè)置a=3,b=12,c=6)。

2.變量xm表示姓名,變量sfzh表示身份證號。其中身份證號的1~6位表示該身份證所對應(yīng)的行政區(qū)劃的代碼,7~14位表示其出生年月日,第17位(最后一位)表示性別,奇數(shù)為男性,偶數(shù)為女。使用函數(shù)寫出下列表達(dá)式(設(shè)置xm='張明',sfzh='430105196801151042')。

(1)行政區(qū)劃的代碼。

(2)年齡。

(3)出生的日期(日期數(shù)據(jù)類型)。

(4)若其為男性,顯示姓氏和先生(如張先生),否則顯示姓氏和小姐。

(5)返回一個字符串,將身份證號碼中的出生日期部分用8個*號替換。

(6)身份證號碼的長度。

(7)身份證號碼中字符0出現(xiàn)的次數(shù),字符0出現(xiàn)的起始位置。

主站蜘蛛池模板: 红河县| 蒙阴县| 宿州市| 泽州县| 昭苏县| 白河县| 普安县| 团风县| 镇江市| 六盘水市| 金秀| 阿勒泰市| 三穗县| 安阳市| 岑巩县| 常山县| 峨边| 谷城县| 和龙市| 中西区| 宜春市| 博湖县| 德化县| 紫云| 桦南县| 清镇市| 无锡市| 凤山县| 永嘉县| 荥经县| 安溪县| 鲁山县| 温宿县| 屯留县| 永平县| 竹山县| 民权县| 茂名市| 都兰县| 化隆| 德化县|