ImageVerifierCode 换一换
格式:DOCX , 页数:51 ,大小:51.56KB ,
资源ID:9508022      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9508022.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第2章VFP表达式及应用.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第2章VFP表达式及应用.docx

1、第2章VFP表达式及应用第2章 VFP表达式及应用数据是程序加工处理的对象,并以某种特定的形式存在。在VFP中,各个数据的类型可能不同,不同数据类型决定了数据不同的存储方式与运算方法。表达式是运算符连接常数、变量和函数等构成的运算式。表达式作为命令的重要组成部分,主要完成各种计算任务。2.1 数据类型与常数常数是在命令或程序执行过程中保持不变的量,而变量则指其值可以变化的量。2.1.1数值型数据数值型数据,即能参与算术运算的数据,由数字09、小数点与正负号组成,其数据类型用符号N表示。数值型数据在内存中占8个字节,能表示120位数据,整数在-6899999999999998至689999999

2、9999998之间无误差;能表示的小数位数为019,小数位数15位(不含符号位)无误差。数值型常数是整数或实数,如:23、-153和123.48,也可以用科学计数法表示数值型数据,如:用2.34e+4表示2.34104,即23400。2.1.2字符型数据字符型数据是英文字母、汉字或数字等符号组成的一串字符,其数据类型用符号C表示。一个字符型数据最多可由16777184个字符组成,半角英文字符占一个字节,一个汉字或全角字符占两个字节。字符型常数也称为字符串,是用定界符括起来的一串字符。定界符可以是半角的单引号、双引号或方括号,必须成对使用。如:我是学生、”I Study VFP”和男都是字符型常

3、数。定界符本身不作为字符型常数的内容,当某种定界符是字符串中的内容时,必须用另一种定界符作为标志,如:老师说:”明天交作业 ”和“Windows”操作。字符串长度是指字符串中所含字符的个数(1个半角字符长度为1,1个汉字或全角字符长度为2)。如:字符串常数”说:What”的长度为9。2.1.3货币型数据货币型数据作为一种特殊的数值型数据,用来表示货币值。其数据类型用符号Y表示。货币型常数是在数值前加货币符号$,如:$12.34。货币型常数在存储和计算时,系统自动保留4位小数,小数多于4位时四舍五入。如:$123.456789将自动存储为$123.4568。货币型数据在内存中占8个字节,取值范围

4、为-922337203685477.5807922337203685477.5807。与数值型数据不同,货币型常数不能用科学计数法表示。2.1.4 日期型数据日期型数据可表示某一个日期。数据类型用符号D表示,占8个字节,取值范围为:0001年1月1日9999年12月31日。日期型常数用一对大括号“ ”括起来,其中包含年、月、日三部分内容,各部分内容之间可以用斜杠(/)、连字号(-)、小数点(.)或空格等进行分隔。1. 设置传统/严格日期格式日期型常数有传统和严格两种格式。传统的默认格式是美语日期格式 mm/dd/yy。传统格式受命令Set Date 和Set Century的影响。不同设置状态

5、,VFP对同一个日期型常数的解释不一样。 如:对日期型常数08/10/01,VFP可能认为是2008年10月1日或2001年8月10日。严格日期格式为yyyy-mm-dd或yyyy/mm/dd。用符号“”作为严格日期常数的开始符号,年月日的次序不能改变,年份必须为4位,它不受命令Set Date和Set Century命令的影响,在任何情况下都表示唯一确切的日期。两种日期常数格式可通过命令进行设置:命令格式:Set Strictdate To 0|1命令说明:设置传统日期格式(0)或严格日期格式(1)。【 例2.1 】Set Strictdate To 0 & 设置成传统日期格式Set Dat

6、e AnsiSet Century OnX=07.10.01 & X赋值成:2007年10月1日? X & 输出结果为:2007.10.01Set Strictdate To 1 & 设置成严格日期格式Y=2008/10/01 & Y赋值成:2008年10月1日? Y & 输出结果为:2008.10.012. 设置日期分隔符命令格式:Set Mark To 命令说明:设置显示日期时的分隔符。字符表达式值中的首字符为分隔符。若省略,则恢复系统默认的分隔符。【 例 2.2 】Set Date ANSISet Century OnSet Mark To “”? 2007/10/01 & 输出结果为:

7、2007-10-01Set Mark To .? 2007/10/01 & 输出结果为:2007.10.01Set Mark To w? 2007/10/01 & 输出结果为:2007w10w01Set Mark To ? 2007/10/01 & 输出默认的分隔符,结果为:2007.10.013. 设置世纪值命令格式:Set Century To Rollover 命令说明:世纪值范围为199,年份值范围为099。此命令仅对两位年份的日期有影响。执行此命令后,设某日期数据为MM/DD/YY,当YY年份参照值时,系统将该日期数据视为:MM/DD/世纪值*100+YY;当YY年份参照值10,输出

8、:1949.10.01? Ctod(“09.10.01”) & 由于年份值09”,明确指出内存变量。如果不加前缀,将引用同名字段变量的值。如:M.姓名表示引用内存变量姓名的值。2.2.1 内存变量赋值使内存变量有确切值的操作称为内存变量赋值。在VFP 中,使用内存变量前必须先赋值。通过赋值命令为内存变量首次赋值时,就创建(定义)了内存变量,既规定了变量名,又指定了变量的值。所赋值的数据类型决定了内存变量的数据类型。有许多为内存变量赋值的命令,典型的命令有:命令格式1:=命令格式2:Store To 命令说明:两条命令的功能都是将表达式的值赋给内存变量。格式1只能给一个内存变量赋值;格式2可以同

9、时给多个内存变量赋相同的值。【 例 2.4 】M =”男” & 执行后m的值为:男,其数据类型为字符型Store 2*3 To X,Y & 执行后X和Y的值都是6,数据类型都为数值型2.2.2 内存变量的清除内存变量使用完毕,应该从内存中将其清除,以便释放更多的可用内存空间。清除(释放)内存变量的命令有:命令格式1:Clear Memory命令格式2:Release 命令说明:格式1清除全部内存变量和数组,格式2清除指定的内存变量和数组。【 例 2.5 】Store 2*4 To X, Y, ZRelease X? Y & 内存变量仍然存在,输出8? X & 由于X被清除,故系统提示:找不到变

10、量X命令格式3:Clear All命令说明:用于关闭所有打开的文件,清楚全部内存变量和数组,也称初始化命令。命令格式4:Release All Like | Except 命令说明:变量名通配符中可以包含“?”或“*”,表示一批变量。其中“?”代表其出现位置的任意一个字符(如果出现在最后,也表示没有字符),例如,“X?”表示以X开头,最多由两个字符组成的一批变量名;通配符“*”代表其出现位置的任意多个(包括没有)字符, 即字符个数是任意的,每位上的字符也是任意的。如:“X*”表示变量名以X开头的所有变量。各选项的含义为:(1)All:清除所有内存变量和数组。(2)All Like :清除与“变

11、量名通配符”匹配的变量和数组。(3)All Except :清除与“变量名通配符”不能匹配的变量和数组。【 例 2.6 】Store 1 To X, X1, X11, X12, Y, Y1, Y2, Y11, Y12, M1, M12, N1, N12 Release All Like Y1? & 清除Y1, Y11和Y12Release All Like X* & 清除X, X1, X11和X12Release All Except M* & 仅保留M1和M12Clear All & 释放全部内存变量,并关闭所有文件2.2.3 输出表达式值可以通过VFP命令输出表达式的值(即运算结果)。命令

12、格式1:? 命令格式2:? 命令说明:先计算“表达式表”中每个表达式的值,再依次输出这些值。格式1从下一行开始位置输出计算结果,若省略“表达式表”,则输出一个空行。格式2从当前位置开始输出计算结果。【 例 2.7 】? 总成绩, 62+20 ? 分 & 输出:总成绩82分2.3 数值型表达式表达式是运算符连接常数、变量和函数等运算对象所构成的运算式。运算符是对数据进行操作的符号。单个常数、变量和函数是表达式的特例,即只有一个运算对象,没有运算符。表达式的运算结果称为表达式的值,根据表达式值的数据类型可分为数值表达式、字符表达式、日期表达式、关系表达式和逻辑表达式。在VFP中只有同类型的数据(除

13、日期与数值运算外)才能进行运算。2.3.1 数值运算符VFP中的数值运算符如表2.1。表2.1 数值运算符 优先级别算术运算符说 明数学表达式转换成VFP表达式1+、-取正负-(+X)-(+X)2* 或 乘方X3X 3或x*33* 、/、%乘、除、求余22/(3*X+1)/(X-1)4+ 、-加、减X+Y-1X+Y-1在表2.1中,取负运算的优先级别最高,其次是乘方,然后是乘、除法与求余运算(同级),最后是加与减运算(同级)。当两个同符号数求余运算(%)时,结果为第一个数除以第二个数的余数;当两个异符号数求余时,结果为第一个数除以第二个数的余数再加上第二个数。【 例 2.8 】? 8%3, 8

14、 %-3, -8%3, -8%-3 & 输出结果为:2 -1 1 -22.3.2 常用数值型函数函数作为一种特殊的表达式,可分为系统函数和用户自定义函数。系统函数也称为标准函数,是VFP系统定义的函数,可以直接使用。自定义函数是用户编写的子程序。通常调用一个函数需要带有参数,调用结束后会有一个运算结果,称运算结果为函数返回值或函数值。返回值的类型决定了函数的数据类型。数值型函数指函数值为数值型。1. 符号函数函数格式:Sign()函数说明:返回值表示数值表达式值的符号。表达式的值为正、零和负值时,函数值分别是1、0和-1。【 例 2.9 】X=2*4? Sign(X), Sign(X-8),

15、Sign(-X) & 输出结果为:1 0 -12. 求绝对值函数函数格式:Abs()函数说明:返回值为数值表达式的绝对值。【 例 2.10 】X= -2*3? Abs( X+3 ) & 输出结果为:33. 求平方根函数函数格式:Sqrt()函数说明:返回值是数值表达式值的算术平方根,数值表达式值必须大于或等于0。【 例 2.11 】? Sqrt(16) & 输出结果为:4.004. 求指数函数函数格式:Exp()函数说明:若数值表达式的值为x,则函数返回值是ex。【 例 2.12 】? Exp(0),Exp(2) & 输出结果为:1.00 7.395. 求自然对数函数函数格式:Log ()函数

16、说明:函数返回值是以e为底数,表达式值的对数。数值表达式值必须大于0。【 例 2.13 】? Log( 10 ) , Log ( Exp (2) ) & 输出结果为: 2.30 2.006. 求余函数函数格式:Mod ( ,)函数说明:函数值是数值表达式1除以数值表达式2的余数。功能与“%”相同。【 例 2.14 】? Mod(8,3) , Mod(8,-3) , Mod(-8,3) , Mod(-8,-3) & 输出结果是:2 -1 1 -27. 求圆周率函数函数格式:Pi( )函数说明:函数返回值是圆周率。其精度与Set Decimal to 命令有关,系统默认显示到小数点后两位。【 例

17、2.15 】Set Decimal to 10 & 设置小数点后显示10位? Pi( )*10*10 & 输出结果为:314.15926535908. 求最大值和最小值函数函数格式: Max(表达式表)Min(表达式表)函数说明:Max函数是求表达式表中所有表达式值的最大者。Min函数是求最小者。各表达式的数据类型必须一致,,可以是数值型、字符型、货币型、日期型、日期时间型或逻辑型等。此类函数可以有多个参数,至少要有两个参数。【 例 2.16 】? Max(8,-2*3,10,3), Min(8,-2*3,10,3) & 输出:10 -6 ? Max(A,B,C), max(.f.,.T.,.

18、n.) & 输出: C .T.? Max($200,$100,$300) & 输出:300.00009. 求整函数函数格式1:Int()函数格式2:Ceiling()函数格式3:Floor()函数说明:Int函数的值是数值表达式的整数部分,而不是四舍五入;Ceiling函数值是大于或等于数值表达式值的最小整数;Floor函数值是小于或等于数值表达式值的最大整数。【 例 2.17 】? Int (2.8) , Int (-2.8 ) & 输出结果为:2 -2? Ceiling (2.8) , Ceiling(-2.8) & 输出结果为:3 -2? Floor (2.8) , Floor(-2.8

19、) & 输出结果为:2 -3 10. 四舍五入函数函数格式:Round (,)函数说明:返回值为数值表达式1的值在指定位置上四舍五入后的结果。四舍五入位置由数值表达式2的值决定。若数值表达式2的值小于0,数值表达式2的绝对值表示对数值表达式1在整数位(0为个位)上进行四舍五入,即0表示在小数点后第一位上进行四舍五入,保留到个位;-1表示在个位上进行四舍五入,保留到十位;依次类推。【 例 2.18 】? Round(2.56,1), Round(2.56,0), & 输出:2.6 3 ? Round(2.56,-1),Round(7.56,-1) & 输出:0 1011. 求ASCII码值函数函

20、数格式:Asc ()函数说明:返回值是字符表达式值中首字符的ASCII码值。【 例 2.19 】? Asc(”English Abc”) & 输出结果为E的ASCII码值: 6912. 求字符串长度函数函数格式:Len()函数说明:返回值是字符表达式值中所含字符的个数,空格也计算在内。每个汉字占两个字符位置。【 例 2.20 】? Len(”学习VFP6.0”) & 输出结果为:1113. 求子串起始位置函数函数格式: At (,)Atc(,)函数说明:设值的整数部分为n,当n=1时,可以省略。函数值是字符表达式1的值在值中第n出现(由左至右)的开始位置,如果出现次数小于n,则函数值为0。At

21、函数区分字母大小写,而Atc函数不区分字母大小写,其余功能两个函数一致。【 例 2.21 】? AT(AR,cadARA), AT(AA,cadAARA,2), ATC(A,cadARA) & 输出: 4 0 214. 求子串出现次数函数函数格式:Occurs (,)函数说明:计算字符表达式1的值在字符表达式2值中出现的次数。【 例 2.22 】? Occurs(“ab”,”cabdabe”),Occurs(“ab”,”cadbaeb”) & 输出:2 015. 求年份函数函数格式:Year()函数说明:函数值是日期表达式值的年份值,值范围为00019999。【 例 2.23 】? Year(

22、2007-10-01) & 输出: 200716. 求月份函数函数格式:Month ()函数说明:函数值是日期表达式值中的月份值,值范围为112。【 例 2.24 】? Month ( 2007-10-01 ) & 输出: 1017. 求星期函数函数格式:Dow()函数说明:函数值是日期表达式值对应的星期几。值范围为17,其中1代表星期日、2代表星期一、7代表星期六。【 例 2.25 】? Dow(1949/10/01) & 输出:7,代表星期六18. 求日数函数函数格式:Day()函数说明:函数值是日期表达式值的日数,值范围为131。【 例 2.26 】? Day(2007-03-15) &

23、 输出: 1519. 求小时函数函数格式:Hour()函数说明:函数值表示小时,采用24小时制。【 例 2.27 】? Hour(2007-05-01 1:22:33 p) & 输出: 1320. 求分钟函数函数格式:Minute()函数说明:函数值表示分钟。【 例 2.28 】? Minute(2007-05-01 1:22:33 p) & 输出: 2221. 求秒钟函数函数格式:Sec()函数说明:函数值表示秒数。【 例 2.29 】? Sec(2007-05-01 1:22:33 p) & 输出结果为: 3322. 字符转换成数值函数函数格式:Val()函数说明:将字符表达式值的首部可转

24、换的子串转换成数值型数据,作为函数的返回值。如果字符串的首字符不是可转换符号,则函数返回值为0。【 例 2.30 】? Val(-2)*3, Val(1.2E1)*3 & 输出结果为:-6.00 36.00? Val(1.23a56)*2, Val(A123) & 输出结果为: 2.46 0.002.4 字符型表达式字符表达式是字符运算符连接字符型数据的运算式,运算结果是字符型数据。2.4.1 字符运算符VFP中有两种字符运算符:(1)+: 将两个字符型数据依次连接起来,构成一个新的字符型数据。(2)-: 先将第一个字符型数据的尾部空格移动到第二个字符型数据的尾部,再依次连接成一个新的字符型数

25、据。【 例 2.31 】S1=学生 S2=成绩? S1 + S2 + 表A & 输出: 学生成绩表A? S1-S2 + 表A & 输出: 学生成绩表A可见运算符“”并不移动第一个字符型数据的中间空格位置。2.4.2 常用字符型函数字符型函数是指函数值为字符型数据的函数。1. 生成空格函数函数格式:Space(数值表达式)函数说明:数值表达式的值应大于或等于0。设其整数部分为n,利用此函数可以产生由n个空格的字符串。若n等于0,则函数产生一个空字符串,即长度为0的字符串。【 例 2.32 】? VFP+Space(3)+6.0版 & 输出结果为: VFP6.0版2. 删除空格函数函数格式:Ltr

26、im()Trim()Rtrim()Alltrim()函数说明:利用Ltrim、Trim 和Alltrim函数可分别去掉字符表达式值的左端空格、尾部空格和两端空格。Trim和Rtrim功能相同。【 例 2.33 】? Ltrim(成绩) & 输出:成绩? Trim ( 成绩 ) & 输出:成绩? Alltrim()成)绩) ) & 输出:成绩可见这3个函数都不能去掉字符表达式值的中间空格。3. 取左子串函数函数格式:Left (,) 函数说明:是数值表达式。设其值的整数部分为n,从字符表达式值的左端第一个字符开始取n个字符作为函数值。【 例 2.34 】? Left(”VFP 6.0”,3) & 输出结果为: VFP4. 取右子串函数

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1