您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 常用函数与表达式的使用
实验二常用函数与表达式的使用一、实验目的:1、了解数值、日期等重要函数的格式和使用方法;2、表达式的使用二、实验要示:1、学会各种函数格式要求;2、函数的运算;3、表达式的书写与应用。二、实验内容与步骤:函数是用程序来实现的一种数据运算或转换。每一个函数都有特定的数据运算或转换功能,它往往需要若干个自变量,即运算对象,但只能有一个运算结果,称为函数值或返回值。函数可以用函数名加一对圆括号调用,自变量放在圆括里,如LEN(X);函数调用可以出现在表达式里,表达式将函数的返回值作为自己运算的对象。函数调用也可以作为一条命令使用,但此时系统忽略函数的返回值。1.数值函数数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。(1)绝对值和符号函数格式:ABS(数值表达式)SIGN(数值表达式)功能:ABS()返回指定的数值表达式的绝对值.SIGN()返回指定数值表达式的符号.当表达式的运算结果为正、负、零时,函数值分别为1,-1和0。例:STORE10TOX?ABS(5-X),ABS(X-5),SIGN(5-X),SIGN(X-10)55-10(2)求平方根函数格式:SQRT(数值表达式)功能:返回指定数值表达式的平方根。自变量表达式的值不能为负。例:?SQRT(2*SQRT(2))1.68STORE–100TOX?SIGN(X)*SQRT(ABS(X))-10(3)求整数函数格式:INT(数值表达式)功能:返回指定数值表达式的整数部分。例:STORE5.8TOX?INT(X),INT(-X)5-5(4)四舍五入函数格式:ROUND(数值表达式1,数值表达式2)功能:返回指定表达式在指定位置四舍五入后的结果.数值表达式2指明四舍五入的位置.若数值表达式2大于等于0,那么它表示的是要保留的小数位数.若数值表达式2小于0,那么它表示的是整数部分的舍入位数.例:X=345.345?ROUND(X,2),ROUND(X,1),ROUND(X,0),ROUND(X,-1)345.34345.3345350(5)求余函数格式:MOD(数值表达式1,数值表达式2)功能:返回两个数值相除后的余数.数值表达式1是被除数,数值表达式2是除数.余数的正负号与除数相同.如果被除数与除数同号,那么函数值即两个数相除的余数;如果异号,则函数值为两数相除的余数再加上除数的值.例:?MOD(10,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3)1-22-12.字符函数(1)求字符串长度函数格式:LEN(字符表达式)功能:返回指定字符表达式值的长度,即所包含的字符个数.函数值为数值型.例:X=”中文VISUALFOXPRO6.0”?LEN(X)20(2)大小写转换函数格式:LOWER(字符表达式)UPPER(字符表达式)功能:LOWER()将指定表达式中的大写字转换成小写字母,其他字符不变.UPPER()将指定表达式中的小写字转换成大写字母,其他字符不变.例:?LOWER(‘X1y2A*’),upper(‘n=1)x1y2a*N=1(3)空格字符串生成函数格式:SPACE(数值表达式)功能:返回由指定数目的空格组成的字符串(4)删除前后空格函数格式:TRIM(字符表达式)LTRIM(字符表达式)ALLTRIM(字符表达式)功能:TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串LTRIM()返回指定字符表达式值去掉前导空格后形成的字符串ALLTRIM()返回指定字符表达式值去掉前导和尾部空格后形成的字符串例:STORESPACE(1)+”TEST”+SPACE(3)TOSS?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)TESTTESTTEST?LEN(SS),LEN(TRIM(SS)),LEN(LTRIM(SS)),LEN(ALLTRIM(SS))8574(5)取子串函数格式:LEFT(字符表达式,长度)RIGHT(字符表达式,长度)SUBSTR(字符表达式,起始位置[,长度])功能:LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值.RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值.SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值若缺省第三个自变量长变,则函数从指定位置一直取到最后一个字符.例:STROE“GOODBYE!”TOX?LEFT(X,2),SUBSTR(X,6,2)+SUBSTR(X,6),RIGHT(X,3)GOBYBYE!YE!(6)求子串位置函数格式:AT(字符表达式1,字符表达式2[,数值表达式])ATC(字符表达式1,字符表达式2[,数值表达式])功能:AT()的函数值为数值型.如果字符表达式1是字符表达式2的字串,则返回字符表达式1值的首字符在字符表达式2值中的位置;若不是子串,则返回0.数值表达式用于表明要在字符表达式2值中搜索字符表达式1值的第几次出现.其默认值为1.ATC()与AT()功能类似,但在子串比较时不区分字母大小写.例:X=”thisisvisualfoxpro”?at(“fox”,x),at(“Fox”,x)1603.日期和时间函数(1)系统日期和时间函数格式:DATE()TIME()DATETIME()功能:DATE()返回当前系统日期,涵数值为日期型.TIME()以24小时制、HH;MM:SS格式返回当前系统时间,函数值为字符型。DATETIME()返回当前系统日期时间,函数值为日期时间型。例:?DATE(),TIME(),DATETIME()4.函数类型转换函数(1)数值转换成字符串格式:STR(数值表达式[,长度[,小数位数]])功能:将数值表达式的值转换成字符串,转换时根据需要自动进行四舍五入,返回字符串的理想长度L应该是数值表达式值的整数部分位数加上小数位数值,再加上1位小数点.如果长度值大于L,则字符串加前导空格以满足规定的长度要求;如果长度大于等于数值表达式值的整数部分位数(包括负号)但又小于L,则优先满足整数部分而自动调整小数位数;如果长度值小数值表达式值的整数部分位数,则返回一串星号(*).小数位数的默认值为0,长度的默认值为10.例:N=-123.456?”N=”+STR(N,8,3)N=-123.456?STR(N,9,2),STR(N,6,2),STR(N,3),STR(N,6),STR(N)-123.46-123.5***-123-123(2)字符串转换成数值格式:VAL(字符表达式)功能:将由数字符号(包括正负号、小数点)组成的字符型数据转换成相应的数值型数据。若字符串内出现非数字字符,那么只转换前面部分,若字符不是数字符号,则返回数值0,并忽略前导空格。例:STORE“-123.”TOXSTORE”45”TOYSTORE”A45”TOZ?VAL(X+Y),VAL(X+Z),VAL(Z+Y)-123.45-123.000.00(3)宏替换函数格式:&字符型变量[.]功能:替换出字符型变量的内容,即&的值是变量中的字符串.如果该函数与其后的字符无明确分界,则要用”.”作函数结束标识.例:X=”1”Y=”2”M=X+Y?&M35.测试函数系统对表中的记录是逐条进行处理的.对于一个打开的表文件,在某一时刻只能处理一条记录.VISUALFOXPRO为每一个打开的表设置了一个内部使用的记录指针,指向正在被操作的记录,该记录称为当前记录.记录指针的作用是标识表的当前记录.(1)当前记录号函数格式:RECNO([N/C])功能:返回指定的工作区中所打开的库文件的当前记录号.若该工作区中未打开表文件,则返回数值0.若省略N/C,则表示当前工作区.N:为工作区代号,C:为工作区别名例:USEAA?RECN()1SKIP2?RECN()3GO5?RECN()5SKIP–3?RECN()2(2)表文件首测试函数格式:BOF([N/C])功能:测试指定表文件中的记录指针是否指向文件首,若是返回.T.,否则返回.F.,表文件首是指第一条记录之前的位置.若缺省自变量,则测试当前表文件.若该工作区中未打开表文件,则返回数值.F.。例:USEAA?BOF().F.SKIP-1?BOF().T.(3)表文件尾测试函数功能:测试指定表文件中的记录指针是否指向文件尾,若是返回.T.,否则返回.F.,表文件尾是指最后一条记录之后的位置.若缺省自变量,则测试当前表文件.若该工作区中未打开表文件,则返回数值.F.。例:USEAA?EOF().F.GOBOTTOM?EOF().F.SKIP?EOF().T.注意:如果打开的是表是空表,那么BOF()和EOF()的值都是为.T.(4)记录删除测试函数格式:DELETED([表的别名|工作区号])功能:测试指定的表,或在指定工作区中所打开的表,记录指针所指的当前记录是否有删除标记”*”,若有为真,否则为假.若缺省[表的别名|工作区号],则测试当前工作区中所找开的表.例:USEAAGO3DELE?DELE().T.(5)条件测试函数格式:IIF(逻辑表达式,表达式1,表达式2)功能:测试逻辑表达式的值,若为真,函数返回表达式1的值,否则返回表达式2的值.例:X=100Y=200?IIF(XY,X-30,Y-50)1502、VisualFoxPro表达式的使用(1)算术表达式在命令窗口下输入下列命令,验证算术表达式的结果:?5-6*2%5分析:根据算术运算的优先级别,应先进行乘法计算6*2得12,再对5取模,得2,最后5减2得3。(2)字符表达式?“GOOD”+“MORNING”分析;此为字符串的完全连接,将一个字符串连接到前一个字符串的尾部(包括空格),结果为:GOODMORNING(3)关系运算符?8*912*4-6分析:先计算关系运算符两边的数值,再进行比较.结果为.T.。(4)逻辑表达式?9*65*8.AND.(69-45)12分析:先计算逻辑运算符两边的关系表达式之值,再进行逻辑运算,结果为.T.。(5)日期表达式?{^2002-07-18}-20分析:日期减去一个数值型数据,结果为日期型,显示的结果为:06/28/02。四、实验习题:1.X=STR(12.4,4,1)Y=RIGHT(X,3)Z=”&X+&Y”?Z,&Z2.X=”奔腾586”Y=”个人计算机”?LEN(X),RIGHT(X,3)+Y?”&X.&Y”,X+Y3.?AT(“人民”,’中华人民共和国’)?VAL(SUBSTR(‘668899’,5,2))+1?SUBSTR(‘668899’,3)-“1”
本文标题:常用函数与表达式的使用
链接地址:https://www.777doc.com/doc-5248516 .html