- Visual FoxPro程序設(shè)計實踐教程(第3版)
- 陳娟 段盛
- 1542字
- 2020-06-24 18:14:06
實驗三 常用函數(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)的起始位置。
- JBoss Weld CDI for Java Platform
- TypeScript入門與實戰(zhàn)
- 復(fù)雜軟件設(shè)計之道:領(lǐng)域驅(qū)動設(shè)計全面解析與實戰(zhàn)
- 數(shù)據(jù)結(jié)構(gòu)和算法基礎(chǔ)(Java語言實現(xiàn))
- C語言程序設(shè)計實訓(xùn)教程
- PHP 編程從入門到實踐
- Flux Architecture
- JavaScript:Moving to ES2015
- Getting Started with Gulp
- Python Web數(shù)據(jù)分析可視化:基于Django框架的開發(fā)實戰(zhàn)
- MySQL從入門到精通(軟件開發(fā)視頻大講堂)
- HTML5秘籍(第2版)
- Hands-On Neural Network Programming with C#
- OpenCV 3 Blueprints
- Oracle 12c從入門到精通(視頻教學(xué)超值版)