




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,运算符及表达式,运算符是在VFP中用来进行运算的符号。 表达式是由数据、数据存储容器和运算符组成的运算式。,在VFP系统中根据不同的运算符及表达式结果的不同,表达式可以分为以下五种: 1、算术表达式 2、字符表达式 3、日期表达式和日期时间表达式 4、关系表达式 5、逻辑表达式,1.常见的表达式 (1)算术表达式 算术表达式的运算结果是数值型常数。,算术运算符: ( ) 分组括号 *或 乘方 % 取模(除法的余数) *、/ 乘、除 +、 - 加、减,特别注意一些 符号的变化,【例】写出数学式 所对应的算术表达式,该数学式子对应的VFP算术表达式为: g*m1*m2/(2+r*2) 或 g*m1*m2/(2+r2) 或 g*m1*m2/(2+r*r),(2)字符表达式 字符表达式运算的结果是字符型常数或逻辑型常数。,字符运算符: + 连接运算 - 连接运算 $ 包含运算,字符型常数,逻辑型常数,+:前后两个字符串首尾连接形成一个新的字符串。 -:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。,【例】 字符连接运算示例。,?“计算机“+“世界“,计算机世界,?“Ihavea“+“Book“,IhaveaBook,?“计算机“-“世界“,计算机世界,?“Ihavea“-“Book“,IhaveaBook,【例】 字符串包含运算示例。,?“计算机“$“计算机世界“,.T.,?“book“ $ “I have a Book“,.F.,(3)日期表达式或日期时间表达式 日期和日期时间运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少天数,在日期时间数据上增加或减少秒数。,注意:日期型不能和日期型数据相加,【例】日期和日期时间表达式运算示例。 d1= 2008-09-01+2 d2= 2008-09-01-2 ? d1-d2,4,(4)关系表达式 关系表达式的运算结果为逻辑型常量。关系成立结果为(.T.);反之,结果为(.F .)。,关系运算符: 大于 =等于 = 大于或等于 、!= 、# 不等于 = 完全等于,(注:只适用于字符型),各种类型数据的比较规则如下:,数值型和货币型数据根据其代数值的大小进行比较。,日期型和日期时间型数据进行比较时,越新的日期或时间越大。,逻辑型数据比较时,.T.比.F.大。,字符型数据(字符串)比较时,对于西文字符,按其ASCII码值的大小进行排列;对于汉字字符,在默认状态下,根据它们的拼音顺序比较大小。,字符的编码,标准ASCII码表,当运算对象为字符型时,可用命令SET EXACT ON/OFF来设置“=”是否为精确比较。 在非精确比较时,在关系表达式的格式中,只要后一个表达式是前一个表达式的前缀,其结果便为真。,【例】关系运算示例。 SET EXACT OFF ?1244.3322 ?“A“B“ ?“助教“教授“ ?“ABV“ABT“.f. zc=“教授“ ? zc=“教授“, “教授“=zc, zc=“教授“ ?321 ,.T.,.F.,.T.,.T.,.T. .F. .F.,操作符/操作数类型不匹配,(5)逻辑表达式 逻辑表达式的运算结果仍是逻辑型常量。,逻辑运算符: !、NOT、. NOT. 逻辑非 OR、. OR. 逻辑或 AND、. AND. 逻辑与,该运算符只有一个操作对象,逻辑运算真值表,【例】逻辑运算示例。 x=8 y=15 ? x5, y5 OR y5 AND y10, NOT y10,.T. .F. .T. .F. .T.,当一个表达式包含多种运算时,其运算的优先级由高到低排列为:算术运算字符串运算日期和时间运算关系运算逻辑运算。,2. 表达式的输出 命令格式:,?|? AT数字表达式,函 数,函数具有特定的功能,分为系统函数和自定义函数两类。,函数具有函数名、参数和函数值三个要素,有的函数缺省参数。,函数调用的一般形式为: 函数名(参数表),一、数值处理函数,1)取整函数,INT(),格式:,【例】INT() 函数的使用。 x=-26.72 ?INT(x),INT(-x),-26,26,2)求余数函数,格式:,MOD(,),函数值与同号,功能:求除以所得出的余数。余数的符号与表达式2相同。如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。,例如: 函数MOD(27,4)的值为 3 MOD(27,-4)的值为 -1 MOD(-27,4)的值为 1 MOD(-27,-4)的值为 -3,【例】MOD()函数和INT()函数的使用。 X=123 X1=INT(X/100) X2=INT(MOD(X,100)/10) X3=MOD(X,10) ?X1+10*X2+100*X3,& x的十位数字,结果:321,& x的个位数字,& x的百位数字,3)四舍五入函数,格式: ,ROUND(,),【例】ROUND()函数的使用。 x=486.735 ?ROUND(x,4-2), ROUND(x,1), ROUND(x,0), ROUND(x,-1),ROUND(X,-2),486.74 486.7 487 490 500,6)随机函数,格式: ,RAND(),7)函数,格式: ,PI(),4)求平方根函数,格式: ,SQRT( ),5)求指数函数,格式: ,EXP( ),注意:自然底数e=2.71828183,二、 字符串处理函数,1)求字符串长度函数,LEN(),格式:,功能:求字符串的长度,即字符串所包含的字符个数。若是空串,则长度为0。函数值为数值型。,2)删除字符串前后空格函数,RTRIM() LTRIM() ALLTRIM(),格式:,功能:RTRIM()删除字符串的尾部空格。RTRIM可以写成TRIM。 LTRIM()删除字符串的前导空格。 ALLTRIM()删除字符串中的前导和尾部空格。,【例】RTRIM()、LTRIM()、ALLTRIM()函数的使用。 STORE SPACE(1)+“FOX“+SPACE(3) TO SS ? RTRIM(SS)+LTRIM(SS)+ALLTRIM(SS),FOXFOXFOX,7 4 6 3,? LEN(SS),LEN(RTRIM(SS), LEN(LTRIM(SS),LEN(ALLTRIM(SS),3)生成空格函数,SPACE(),格式:,【例】?LEN(SPACE(8)-SPACE(3),11,功能:生成若干个空格,空格的个数由数值型表达式的值决定。,格式:,AT(, ,),4)求子串位置函数,功能:如果是的子串,则返回在中的起始位置;若不是子串,则返回0。AT()的函数值为数值型,ATC()与AT()功能类似,但在子串比较时不区分字母大小写。 用于指明搜索在中是第几次出现的,其默认值是1。,【例】 AT() 函数的使用。 STORE “This is Visual FoxPro“ TO x ? AT(“FOX“,x), AT(“is“,x,3),AT(“xo“,x),0 10 0,5)取子串函数 ,格式:,LEFT(,) RIGHT(,) SUBSTR(, ,),功能: LEFT()从左边第一个字符开始截取子串。 RIGHT()从右边第一个字符开始截取子串,其子串的长度由的值所决定。若的值大于字符串的长度,则给出整个字符串。,SUBSTR()是从字符串表达式中取出指定起始位置开始截取的子串,子串的长度由的值所决定。若省略,则截取的子串从起始位置开始到字符串表达式的最后一个字符;若或为0,则函数值为空串。显然,SUBSTR函数可以代替LEFT函数和RIGHT函数的功能。,【例】取子串函数的使用。 STORE “GOOD BYE!“ TO X ? LEFT(X,2), SUBSTR(X,6,2)+SUBSTR(X,6), RIGHT(X,3),GO BYBYE! YE!,6)宏替换函数,格式:,& .,功能:替换出字符型变量的内容,即&的值是变量中的字符串。若与后面的字符无空格分界,则&函数后的“.”必须有。宏替换可以嵌套使用。,【例】宏替换函数的使用。 m=“32*SQRT(4)“ ? INT(34.15+&m) i=1 j=2 x12=“ make in china “ Good=“Good“ ? x&i.&j, &x12 ,主窗口显示: 98,主窗口显示:make in china Good ,【例】宏替换函数的使用。 a1=5 a2=6 B=“+“ ?a1&b.a2 x=“ XSDA“ Use &x.dbf y= “ list memory “ &y like a* A= “ 457 “ ? “ abc&a.457 “, “ abc&abc “ ,& 打开数据表XSDA.dbf,主窗口显示: A开头的内存变量,主窗口显示: abc457457 abc&abc,主窗口显示: 11,三、 日期时间函数,1)系统日期和系统时间函数,格式:,DATE() TIME() DATETIME() ,字符型,功能: DATE()返回当前系统日期,函数值为日期型。 TIME()返回当前系统时间,函数值为字符型。DATETIME()返回当前系统日期时间,函数值为日期时间型。,2)求年份、月份和天数函数,格式:,YEAR(|) MONTH(|) DAY(|),返回值4位,功能:YEAR()从指定的日期表达式或日期时间表达式中返回年份,以4位数值型数据表示(如2006年)。 MONTH()从指定的日期表达式或日期时间表达式中返回月份。 DAY()从指定的日期表达式或日期时间表达式中返回月里面的天数。 这3个函数的返回值都为数值型。,【例】YEAR()、MONTH()、DAY()函数的使用。 STORE 2009-03-16 TO d ? YEAR(d),MONTH(d),DAY(d),主窗口显示:2009 3 16,四、数据类型转换函数,1)字符串转换为数值函数,格式:,VAL(),功能:将数字字符串(包括正负号、小数点)转换为对应的数值型数据。若字符串内出现非数字,字符就停止转换;若字符串的首字符为非数字符,则返回值为0,但忽略前导空格。,【例】VAL()函数的使用。 ?VAL(“X12.8“),VAL(“-35.875“),VAL(“3A.79“),主窗口显示:0.00 -35.88 3.00,54,2)数值转换成字符串函数 格式:STR(,) 功能:将的值转换成字符串,转换时根据需要自动四舍五入。转换后字符串的理想长度L应该是值的整数部分的位数加上值,再加上一位小数点。如果值大于L,则字符串加前导空格以满足规定的要求;如果值大于等于值的整数部分位数(包括负号)但又小于L,则优先满足整数部分而自动调整小数位数;如果值小于值的整数部分位数,则返回一串星号(*)。的默认值为0,的默认值为10。,【例】STR()函数的使用。 STORE -348.387 TO P ? “P=“+STR(P,8,3) P=-348.387 ?STR(P,9,2),STR(P,6,2),STR(P,3),STR(P,6),STR(P), STR(P,10,4),主窗口显示:-348.39 -348.4 * -348 -348 -348.3870,56,3)字符与ASCII之间的转换函数 格式:ASC() CHR() 功能:ASC()函数给出指定字符串最左边的一个字符的ASCII码值。函数值为数值型。 CHR()函数将数值表达式的值作为ASCII码,转换为对应的字符。函数值为字符型。,?ASC(ABC),CHR(65) 主窗口显示: 65 A,【例】 字符与ASCII码之间的转换函数的使用。 ch1=“Y“ ch2=CHR(ASC(ch1)+ASC(“d“)-ASC(“D“) ? ch2 ,主窗口显示:y,此例说明,若ch1的值为某个大写字母,则利用求ch2的表达式可求出对应的小写字母。注意:在ASCII表中,字母是连续排列的,任何一个字母其大小写ASCII码值之差是相等的。,58,4)字符串转换成日期或日期时间函数 格式:CTOD() CTOT() 功能:CTOD()将()值转换成日期型数据。 CTOT()将()值转换成日期时间型数据。 字符串中的日期部分格式要与SET DATE TO命令设置的格式一致。其中的年份可以用4位,也可以用2位。如果用2位,则世纪值由SET CENTURY OFF语句指定。,59, 格式:DTOC(| ,1) TTOC( ,1) 功能:DTOC()将日期型数据或日期时间型数据的日期部分转换成字符串。 TTOC()将日期时间型数据转换成字符串。 字符串中日期部分的格式与SET DATE TO语句的设置和SET CENTURY ON|OFF(ON为4位数年份,OFF为2位数年份)语句的设置有关。时间部分的格式受SET HOURS TO 12|24语句的设置影响。 对DTOC()来说,如果使用选项1,则字符串的格式总是为YYYYMMDD,共8个字符。对TTOC()来说,如果使用选项1,则字符串的格式总是为YYYYMMDDHHMMSS,采用24h制,共14个字符。,5)日期或日期时间转换成字符串,60,【例】 DTOC()、TTOC()函数的使用。 STORE DATETIME() TO t ? t 05/16/06 10:44:20 AM ? DTOC(t),DTOC(t,1),TTOC(t),TTOC(t,1) 主窗口显示:05/16/06 20060516 05/16/06 10:44:20 AM 20060516104420,五、测试函数,1)条件测试函数,格式:,IIF(,),功能:测试的值,若为逻辑真.T.,函数返回的值;若为逻辑假.F.,函数返回的值。和的类型不要求相同。,【例】 条件测试函数的使用。 X=200 Y=500 ? IIF(X200,X-10,X+10),IIF(Y200,Y-10,Y+10) ,主窗口显示:210 490,STORE DATE() TO d STORE DTOC(d) TO s ? s,IIF(LEN(s)=8, “年份是:“ + STR(YEAR(d),4),s),主窗口显示:09/22/08 年份是:2008,2)数据类型测试函数,格式:,VARTYPE(),功能:测试的类型,返回一个大写字母,函数值为字符型。字母的含义如下表所示。,65,若是一个数组,则根据第一个数组元素的类型返回字符串。若的运算结果是NULL值,则根据 值决定是否返回的类型;如果值为.T. ,就返回的原数据类型;如果值为.F.或缺省,则返回X,以表明的运算结果是NULL值。,【例】 VARTYPE()函数的使用。 X=“AAA“ STORE 10 TO y STORE .NULL. TO x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动医学医疗市场增长动力研究:2025年技术创新与市场布局
- 食品冷链物流温控技术对果蔬保鲜效果的影响报告2025
- 短视频平台内容监管与平台治理体系优化策略报告
- 社区零售业态创新与数字化运营模式创新报告
- 量子计算机2025年量子模拟器市场预测与竞争策略研究报告
- 聚焦个性化:2025年基因治疗药物临床应用案例分析报告
- 远程医疗在2025年对偏远地区医疗服务中的医疗信息化投资分析报告
- 初中化学酸和碱知识点总结模版
- 智慧交通系统交通流量预测技术在城市道路中的应用2025年研究报告
- 2025年幼儿园第二学期教研工作总结模版
- FZ/T 07019-2021针织印染面料单位产品能源消耗限额
- 重症医学科各项规章制度汇编
- 社会组织培训概述课件
- 春节作文优秀课件
- 三角函数的应用论文Word版
- 农业创业风险控制与防范培训课件
- 生物制造国内外状况课件
- 幼儿园大班数学口算练习题可打印
- 药物临床试验管理和质量控制课件(PPT 55页)
- 【汇总】高二政治选择性必修三(统编版) 重点知识点汇总
- 桥梁下部结构监理细则
评论
0/150
提交评论