VFP的数据及其运算_第1页
VFP的数据及其运算_第2页
VFP的数据及其运算_第3页
VFP的数据及其运算_第4页
VFP的数据及其运算_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualFoxpro程序设计教程,VisualFoxpro程序设计教程,VisualFoxpro程序设计教程,第3章VisualFoxpro的数据及其运算,3.1VisualFoxpro的数据类型3.2VisualFoxpro的常量与变量3.3VisualFoxpro的内部函数3.4VisualFoxpro的表达式3.5小结,VisualFoxpro程序设计教程,函数常用来执行一些特殊的数据处理,充分正确地使用函数,可简化操作和程序,增强数据处理功能。函数调用的一般形式:函数名(参数表)函数名后的括号()不能省。参数表用方括号括起来表示可省,即有些函数不需要参数。,VisualFoxpro程序设计教程,3.3VisualFoxpro的内部函数,3.3.1数值函数3.3.2字符函数3.3.3日期和时间函数3.3.4数据类型转换函数3.3.5测试函数,VisualFoxpro程序设计教程,3.3.1数值函数,数值函数的自变量和函数值往往是数值型数据。1.求绝对值函数ABS()例如:ABS(-123)2.求平方根函数SQRT()参数值必须为非负数例如:?SQRT(25)?SQRT(3+6),VisualFoxpro程序设计教程,3.3.1数值函数,3.求指数函数EXP()求ex的值4.求对数函数LOG()求自然对数LOG10()求常用对数,VisualFoxpro程序设计教程,3.3.1数值函数(续),5.取整函数INT()取数值型表达式的整数部分。CEILING()取大于或等于指定表达式的最小整数。FLOOR()取小于或等于指定表达式的最大整数。,VisualFoxpro程序设计教程,3.3.1数值函数(续),5.取整函数(续)x=56.72?INT(x),INT(-x)56-56CEILING(x),CEILING(-x)57-56FLOOR(x),FLOOR(x)56-57,VisualFoxpro程序设计教程,3.3.1数值函数(续),6.求余数函数MOD(,)所得余数的符号和表达式2相同。如果被除数和除数同号,则函数值即为两数相除的余数。如果被除数和除数异号,则函数值即为两数相除的余数再加上除数的值。,VisualFoxpro程序设计教程,3.3.1数值函数(续),6.求余数函数(举例)?MOD(15,4)3?MOD(-15,-4)-3?MOD(-15,4)1?MOD(15,-4)-1,如何求一个整数的某个数位上的数字?(P43),x=125x1=int(x/100)x2=int(mod(x,100)/10)x3=mod(x,10)?x1+10*x2+100*x3,VisualFoxpro程序设计教程,3.3.1数值函数(续),7.四舍五入函数ROUND(,)求值并保持N2位小数。若N25,1,2)1xb=女?IIF(xb=男,1,IIF(xb=女,2,3)2,VisualFoxpro程序设计教程,第3章VisualFoxpro的数据及其运算,3.1VisualFoxpro的数据类型3.2VisualFoxpro的常量与变量3.3VisualFoxpro的内部函数3.4VisualFoxpro的表达式3.5小结,VisualFoxpro程序设计教程,将常量、变量和函数用运算符连接起来的式子称为表达式。书写VisualFoxPro表达式应遵循以下规则:表达式中所有的字符必须写在同一水平线上。表达式中常量的表示、变量的命名以及函数的引用要符合VisualFoxPro的规定。要根据运算符运算的优先顺序,合理地加括号,以保证运算顺序的正确性。特别是分式中的分子分母有加减运算时,或分母有乘法运算时。,VisualFoxpro程序设计教程,3.4VisualFoxpro的表达式,3.4.1算术表达式3.4.2字符表达式3.4.3日期和时间表达式3.4.4关系表达式3.4.5逻辑表达式,VisualFoxpro程序设计教程,用算术运算符将数值型数据连接起来的式子叫算术表达式。算术运算符有(按优先级从高到低的顺序排列):()、*或、*、/、%,+,-。各运算符运算的优先顺序和一般算术运算规则完全相同。同级运算按自左向右的方向进行运算。各运算符的运算规则也和一般算术运算相同,其中求余运算符%和求余函数MOD的作用相同。余数的符号与除数一致。,3.4.1算术表达式,VisualFoxpro程序设计教程,将下列式子写成VFP的表达式:,VisualFoxpro程序设计教程,3.4VisualFoxpro的表达式,3.4.1算术表达式3.4.2字符表达式3.4.3日期和时间表达式3.4.4关系表达式3.4.5逻辑表达式,VisualFoxpro程序设计教程,3.4.2字符表达式,1.连接运算连接运算符有完全连接运算符和不完全连接运算符-两种。运算的功能是将两个字符串连接起来形成一个新的字符串。-运算的功能是去掉字符串1尾部的空格,然后将两个字符串连接起来,并把字符串1末尾的空格放到结果串的末尾。例如:?姓名-李小四+张得富姓名李小四张得富,VisualFoxpro程序设计教程,3.4.2字符表达式,2.包含运算格式:$包含运算的结果是逻辑值。若包含在之中,其表达式值为.T.,否则为.F.。zhch=副教授?教授$zhch.T.,VisualFoxpro程序设计教程,3.4.3日期和时间表达式,格式1:其结果是将来的某个日期。格式2:-其结果是过去的某个日期。格式3:-其结果是两个日期之间相差的天数。,VisualFoxpro程序设计教程,3.4.3日期和时间表达式,格式4:其结果是若干秒后的某个日期时间。格式5:-其结果是若干秒前的某个日期时间。格式6:-其结果是两个日期时间之间相差的秒数。,VisualFoxpro程序设计教程,3.4VisualFoxpro的表达式,3.4.1算术表达式3.4.2字符表达式3.4.3日期和时间表达式3.4.4关系表达式3.4.5逻辑表达式,VisualFoxpro程序设计教程,3.4.4关系表达式,关系表达式是由关系运算符将两个同类型的数据连接起来的式子,其值为逻辑型数据。关系运算符有:、=、=、=、或#或!=。它们的运算优先级相同。关系表达式一般形式为:e1e2其中e1、e2可以同为数值型表达式、字符型表达式、日期型表达式或逻辑型表达式。但=仅适用于字符型数据。,VisualFoxpro程序设计教程,3.4.4关系表达式,关系表达式表示一个条件,条件成立时值为.T.,否则为.F.。各种类型数据的比较规则如下:(1)数值型和货币型数据根据其代数值的大小进行比较。(2)日期型和日期时间型数据进行比较时,离现在日期或时间越近的日期或时间越大。(3)逻辑型数据比较时,.T.比.F.大。(4)对于字符型数据,VisualFoxPro可以设置字符的排序次序。,VisualFoxpro程序设计教程,3.4.4关系表达式,在工具菜单中选择选项,在数据选项卡的排序序列下拉列表框中选择Machine、PinYin或Stroke项并确定。用命令设置字符的排序次序。命令格式为:SETCOLLATETO排序次序名可以是Machine、PinYin或Stroke。(a)Machine,字符按照机内码顺序排序。对于西文字符而言,空格最小,大写字母小于小写字母,数字字符小于字母。对于汉字字符,按其国标码的大小进行排列,对常用的一级汉字而言,根据它们的拼音顺序比较大小。,VisualFoxpro程序设计教程,3.4.4关系表达式,(b)PinYin,字符按照拼音次序排序。对于西文字符,空格在最前面,小写字母在前,大写字母在后。(c)Stroke,字符按笔画数多少排序,因而,字符笔画数的多少就决定其大小。比较字符串时,先取两字符串的第一个字符比较,若两者不等,其大小就决定了两字符串的大小,若相等,则各取第二个字符比较,依次类推,直到最后,若每个字符都相等,则两个字符串相等。,VisualFoxpro程序设计教程,3.4.4关系表达式,例:在不同的字符排序次序下,比较字符串的大小。SETCOLLATETOMachine?助教教授,abca,a,XYZa.T.F.F.F.SETCOLLATETOPinYin?助教教授,abca,a,XYZa.T.F.F.T.SETCOLLATETOStroke?助教教授,abca,a,XYZa.F.F.F.T.,VisualFoxpro程序设计教程,3.4.4关系表达式,注意=(等于)和=(精确等于)两个关系运算符的区别。它们主要是对字符串进行比较时有所区别。字符串的等于比较有精确和非精确之分,精确等于是指只有在两字符串完全相同时才为真,而非精确等于受到setexact命令的影响。,VisualFoxpro程序设计教程,3.4.4关系表达式,如果用=比较两个字符串SETEXACTON时:在较短的一个的右边加上空格,以使它与较长字符串的长度相等,再从左到右逐个字符进行比较直到两个表达式的末端。SETEXACTOFF时:从左到右逐个字符进行比较,直到右端字符串的末端即可。,VisualFoxpro程序设计教程,3.4.4关系表达式,例:字符串比较举例。SETEXACTOFFzc=教授?zc=教授,教授=zc?教授=LEFT(zc,4),zc=教授.T.F.T.F.请注意在非精确比较状态下,条件zc=教授与条件教授=zc不等价。,SETEXACTON结果有何变化?,VisualFoxpro程序设计教程,比较=EXACTOFF=EXACTON=abc=abc匹配匹配匹配ab=abc不匹配不匹配不匹配abc=ab匹配不匹配不匹配abc=ab_不匹配不匹配不匹配ab=ab_不匹配匹配不匹配ab_=ab匹配匹配不匹配=ab不匹配不匹配不匹配ab=匹配不匹配不匹配_=匹配匹配不匹配=_不匹配匹配不匹配TRIM(_)=匹配匹配匹配=TRIM(_)匹配匹配匹配,VisualFoxpro程序设计教程,3.4VisualFoxpro的表达式,3.4.1算术表达式3.4.2字符表达式3.4.3日期和时间表达式3.4.4关系表达式3.4.5逻辑表达式,VisualFoxpro程序设计教程,3.4.5逻辑表达式,逻辑表达式是由逻辑运算符将逻辑型数据连接起来的式子。其值仍是逻辑值。逻辑运算符有:NOT或.NOT.或!(逻辑非)、AND或.AND.(逻辑与)、OR或.OR.(逻辑或)。其运算优先级是NOT最高,OR最低。逻辑非运算符是单目运算符,只作用于后面的一个逻辑操作数,若操作数为真,则返回假,否则返回真。,VisualFoxpro程序设计教程,3.4.5逻辑表达式,逻辑与与逻辑或是双目运算符,所构成的逻辑表达式为:L1ANDL2L1ORL2其中L1和L2均为逻辑型操作数。对于逻辑与运算,只有L1和L2同时为真,表达式值才为真,只要其中一个为假,则结果为假。对于逻辑或运算,L1和L2中只要有一个为真,表达式即为真,只有L1和L2均为假时,表达式才为假。,VisualFoxpro程序设计教程,注意,当一个表达式包含多种运算时,其运算的优先级由高到低排列为:算术运算字符串运算日期运算关系运算逻辑运算在对表进行各种操作时常常要表达各种条件,即对满足条件的记录进行操作,此时就要综合运用本章的知识。,VisualFoxpro程序设计教程,综合举例,例:学生表的结构如下:学生(学号C6,姓名C10,性别C2,出生日期D,少数民族否L,籍贯C10,入学成绩N5.1,简历M,照片G)针对学生表,写出下列条件:(1)姓张的学生。(2)20岁以下的学生。(3)家住湖南或湖北的学生。(4)汉族学生。(5)入学成绩在580分以上的湖南或湖北的学生。(6)20岁以下的少数民族学生。,VisualFoxpro程序设计教程,综合举例(续),(1)姓张的学生。由于学生的姓包含在姓名字段且为第一个汉字,所以可写出4种条件:条件1:张$姓名条件2:AT(张,姓名)=1条件3:SUBSTR(姓名,1,2)=张条件4:姓名=张,VisualFoxpro程序设计教程,综合举例(续),(2)20岁以下的学生。由于年龄包含在代表学生出生日期的字段中,所以关键是如何根据出生日期求出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论