visualfoxpro的运算符与表达式
- 格式:doc
- 大小:29.50 KB
- 文档页数:5
⼀.表达式:表达式是vfp命令和函数的重要组成部分,是由常量、变量、函数⽤运算符连接⽽成的有意义的式⼦⼆.运算符:1.算术运算符:算术运算符⽤于进⾏算术运算,连接起来的表达式称为算术表达式,结果是⼀个数值.如下表:运算符功能+,-正负号**,^幂*,/,%乘,除,取余+,-加,减优先级从⾼到低为:**,^→*,/,%→+,-例:将(55+9×5)÷2写成vfp算术表达式.我们在命令窗⼝输⼊并执⾏下列:(55+9*5)/2 &&结果可以⼝算,是502.字符运算符:⽤于字符串连接运算,结果是⼀个新的字符串,如下表:运算符功能+将+号前后字符串连接起来组成⼀个新的字符串-删除-号前⾯字符串的尾部空格后再与右侧的字符串组成新的字符串例:在命令窗⼝输⼊执⾏以下:a="abc " &&abc后⾯有两个空格b="def " &&def后⾯有两个空格c="ghi"a+b+c &&完全连接,下⾏是运⾏结果abc def ghix=a-b-cx &&下⾏是结果abcdefghi3.⽇期运算符:⽤于进⾏⽇期运算,如下表:运算符功能+⽇期+天数得到新⽇期时间+秒数得到新时间-⽇期-⽇期得到间隔天数时间-时间得到间隔秒数⽇期运⾏符⽆优先级例1:计算⾹港回归距现在多少天.date()-{^1997.10.01} &&date()函数⽤于取得当前⽇期.例2:计算距今天1000天的⽇期.date()+10004.关系运算符:⽤于进⾏关系运算,结果是逻辑值,如下表:运算符功能>⼤于=等于<>,#,!=不等于<=⼩于等于>=⼤于等于==字符串全等⽐较$包含运算,判断左侧字符串是否是右侧字符串的⼦串例:输⼊并执⾏下列命令:a=1234 &&定义数值常量b=2345 &&定义数值常量a.t. &&关系成⽴取真值a>b &&数值⽐较.F. &&关系不成⽴,取假值x="a" &&定义字符常量y="b" &&定义字符常量x>y &&⽐较a和b字符的ASCⅡ码.f. &&a和b的ASCⅡ码分别是97和98,关系不成⽴取逻辑假值"bc"$"abcd" &&⽐较$左边的字符串是否是其右边的字符串的⼦串.T. &&是其⼦串,取逻辑真值"ac"$"abcd" &&⽐较$左边的字符串是否是其右边的字符串的⼦串.F. &&不是其⼦串,取逻辑假值"abcd"="abc" &&⽐较等号右边字符串是否是其左边字符串从⾸字符起的⼦串.T. &&是其⼦串,取逻辑真值"abcd"="bcd" &&⽐较等号右边字符串是否是其左边字符串从⾸字符起的⼦串.F. &&不是其⼦串,取逻辑假值"abcd"=="abc" &&字符串等长并完全相同⽐较.F. &&不等长取逻辑假值5.逻辑运算符:⽤于作表达式之间的逻辑运算,参加运算的表达式应有逻辑值.运算的结果是逻辑值,如下表: 运算符功能.Not.,!逻辑⾮.and.逻辑与.or.逻辑或逻辑运算符的优先级:逻辑⾮→逻辑与→逻辑或逻辑运算符的意义是:A.and.B 只有当A和B都为真时,逻辑运算的结果才为真,否则为假A.or.B A和B中有⼀个为真,结果却为真.Not.A 当A为真值时,结果为假值,当A为假值时,结果为真值.例:y=.f. &&y的值为逻辑假.Not.y.T. &&对y值取反,结果为真a=3b=9a.T.a.T. &&两边都为真,结果为真。
Visual FoxPro的运算符与表达式运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。
表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。
表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。
表达式的类型由运算符的类型决定。
在Visual FoxPro 6.0中有5类运算符和表达式:•算术运算符和算术表达式•字符串运算符和字符串表达式•日期运算符和日期表达式•关系运算符和关系表达式•逻辑运算符和逻辑表达式1.算术运算符与算术表达式算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。
例如:50*2+(70—6)/8的运算结果为108.00。
算术表达式的格式为:<数值1><算术运算符1><数值2>[<算术运算符2><数值3>…](1)算术运算符Visual FoxPro 6.0提供的算术运算符见下表。
在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。
它们运算的含义与数学中基本相同。
运算符名称说明+ 加同数学中的加法- 减同数学中的减法* 乘同数学中的乘法/ 除同数学中的除法^或**乘方同数学中的乘方,如4^3表示43%求余12%5表示12除以5所得的余数2•( ) →^、** →*、/ → %→ +、- (2)表达式的书写规则算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:•每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。
例如:23要写成2^3,Xl十X2要写成X1+X2。
•原来在数学表达式中省略的内容必须重新写上。
例如:2X要写成2*X。
•所有括号都用小括号(),且括号必须配对。
例如:3[x+2(y+z)]必须写成3*(x+2*(y+z))。
Insert键的使用方法:用INSERT键切换,如ab!cd !为光标,再插入模式下,输入“ach”,会变为abachcd.在覆盖模式下,输入“ach”,变为abachVisual FoxPro讲稿第一部分VFP基础Ⅲ表达式一、算数运算符与数值表达式(见P56)A=5B=4C=61+(2*C^2/8 % 5-3)-8+4*A % 2^B/4*(B^(1/2)+1)●运算符与优先级(见表2.2) 先平方后乘除余再加减?2**3与?2^3是一样的●无论有多少层括号,都只能使用圆括号。
●算数表达式运算的结果是数值。
二、字符串运算符与字符表达式空格也是字符●字符串相加表达式。
?[1234 ]+[45678] 1234 45678●字符串相减表达式。
? [1234 ]-[45678] 123445678 (只对减号左端的空格有影响,移到下一个字符串结尾的后面,对其他无影响)●字符表达式运算的结果是字符串。
●数据类型不一样不能混合运算●?12+20 32 ?[12]+[20] 1220●只有货币型和数值型可以一起运算。
货币型精度高,数值型精度低。
按货币型计算。
●?$12+$20 32.0000 ?$12+20 32.0000三、日期时间运算符与日期时间表达式●表达式中的运算项应符合表2.3中的规定:●表达式的运算结果可以是数值型、或日期型、或日期时间型。
两个日期型只能相减,结果是数值型。
两个日期时间型只能相减,结果是数值型。
日期型可与数值型相加、或相减,结果是日期型。
日期时间型可与数值型相加、或相减,结果是日期时间型。
四、关系运算符与关系表达式(简单逻辑表达式)1. 关系运算符见P58 不等于<>、#、!= .字符串包含测试$,字符串精确比较双等号==●关系运算符两边的表达式的类型必须相同。
●运算符$仅用于字符型表达式的比较。
●?[大]$[伟大中国] 只要左右有一个或以上字符相同则为.T.●运算符==主要用于字符型表达式的精确比较。
[课题]:运算符、表达式[目的要求]:了解表达式的概念、分类;掌握各运算符的运算、表达式的书写、运算。
[重点]:运算符;表达式的书写、运算;综合表达式。
[难点]:综合表达式的运算、表达式的书写。
[学时]:2学时[教学过程及内容]:[导入:]我们经常会对有些数据进行运算,要运算就要用到运算符、要会书写表达式,因此我们必须详细了解一下VF有哪些运算符及各运算符如何进行运算、如何书写正确的VF表达式,并能预算出一般表达式的运算结果。
[新授内容]:一、表达式概念:指通过运算符将运算量(常量、变量、函数等)关联起来的有特定意义的式子,它运算符两边的运算量的数据类型必须是相同的。
单个的常量、变量、函数等是表达式的特例。
如:23*2/4-20 “abcd”+”efg”5>4 .t. and .f. 6因此,根据运算符两边的运算量的数据类型将表达式分为:算术表达式、字符表达式、关系表达式、逻辑表达式、日期表达式五种。
二、算术表达式要求:运算的对象和结果均为数值。
<一>运算符:():括号高**或^:乘方*:乘、 /:除、%:取模(或取余),取两数相除的余数+:加、-:减低举例: ?-3**2 ? 6/35%3 ?2*7 ?(2+4-3)^2*2<二>算术表达式:1、运算:?-3**2-(5+3)*2 结果:2*7%3^2+3 结果:2、书写:(将下列数学表达式写成VF表达式)8÷2×3三、字符表达式要求:运算对象和运算结果均为字符。
<一>运算符:+:字符串连接:原样连接。
-:字符串连接:将两字符串尾部空格移到结果字符串尾部。
•举例:“ABC ”+“DEF ”&&“ABC DEF ”“ABC ”-“DEF ”&&“ABCDEF ”Len(“ABC ”-“DEF ”) &&10<二>表达式:优先顺序:同级(无优先顺序,从左至右)。
Visual Foxpro 常用函数数值函数:1.绝对值和符号函数格式:ABS(<数值表达式>)SIGN(<数值表达式>)例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=02.求平方根表达式格式:SQRT(<数值表达式>)例如:SQRT(16)=4,它与开二分之一次方等同。
3.圆周率函数格式:PI()4.求整数函数格式:INT(<数值表达式>)返回数值表达式的整数部分CEILING(<数值表达式>)返回大于或等于表达式的最小整数FLOOR(<数值表达式>)返回小于或等于表达式的最大整数例如:INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5FLOOR(9.9)=95.四舍五入函数格式:ROUND(<数值表达式1>,<数值表达式2>)功能:返回制定表达式在制定位置四舍五入的结果例如:ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=3506.求余函数格式:MOD(<数值表达式1>,<数值表达式2>)例如:MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1求余数的规律:1.首先按照两数的绝对值求余2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值3.余数取表达式1的正负号4.若两数异好号,余数在加上表达式2的值为最终的结果7. 求最大值和最小值函数MAX(数值表达式列表)MIN (数值表达式列表)例如:MAX(2,3,5)=5 MAX(‘2’,’12’,’05’)=2MAX(‘汽车’,’飞机’,’轮船’)字符串比较的规律:字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。
①.算术运算符
变运算的先后次序,若有圆括号嵌套,则按先内后外的次序处理。
②字符运算符 ● 两字符串相减,将第一个字符串后面的空格去掉,放到总字符串后,总字符串数不变。
③日期时间运算符
● 两日期相减,表示相差的天数; ● 两时间相减,表示相差的秒数;
● 一个日期加
/减一个数,表示多个天以后/前; ● 一个时间加/减一个数,表示多个秒以后/前; ● set stric to 0 是将严格日期转换为传统(普通)日期 ● 两日期/时间相加=错误 ④关系运算符
eg :?”ab ”=”abc ” .F.
?”abc ”=”abc ” .T.
?”abcd”=”abc”.T.
* set exact on (先用空格补齐位数,在做比较)
eg:?”ab□”=”abc”.F.
?”abc□”=”abc”.T.
?”abcde”=”abcd”.F.
?”ab”=”ab□□□”.T.
?”ab”=”abc□□□”.F.
⑤逻辑运算符
●not或!当条件成立时,返回值为真,反之为假(右包含左为真,左包含右为假)●and 左右同时为真,返回值为真,反之为假
●or 左右同时为假,返回值为假,只有一个为真是,返回值为真
●优先级顺序:not >and >or
while>for ?for>while 字段变量>内存变量
⑥运算符的优先级
圆括号>算术运算符>字符串运算符>日期和日期时间运算符>关系运算符>逻辑运算符。
将常量、变量和函数⽤运算符连接起来的式⼦称为表达式。
根据运算对象的数据类型不同,表达式可以分为算术表达式、字符表达式、⽇期和时间表达式、关系表达式和逻辑表达式等。
算术表达式 ⽤算术运算符将数值型数据连接起来的式⼦叫算术表达式。
算术运算符有(按优先级从⾼到低的顺序排列):()(括号)、**或“(乘⽅)、*(乘)、/(除)、%(求余数),+(加),⼀(减)。
各运算符运算的优先顺序和⼀般算术运算规则完全相同。
同级运算按⾃左向右的⽅向进⾏运算。
各运算符的运算规则也和⼀般算术运算相同,其中求余运算符%和求余函数MOD的作⽤相同。
余数的符号与除数⼀致。
书写Visual FoxPro表达式应遵循以下规则: - (1)表达式中所有的字符必须写在同⼀⽔平线上,每个字符占⼀格。
(2)表达式中常量的表⽰、变量的命名以及函数的引⽤要符合VisuaI FoxPr。
的规定。
(3)要根据运算符运算的优先顺序,合理地加括号,以保证运算顺序的正确性。
特别是分式中的分⼦分母有加减运算时,或分母有乘法运算,要加括号表⽰分⼦分母的起始范围。
字符表达式 字符表达式是⽤字符运算符将字符型数据连接起来的式⼦。
Visual FoxPro字符运算有⽇期和时间表达式是指含有⽇期型或⽇期时间型数据的表达式。
其运算符只有+和⼀两种,共6种格式。
格式1:(⽇期型数据>+(天数> (天数>+(⽇期型数据>其结果是将来的某个⽇期。
格式2:(⽇期型数据>⼀其结果是过去的某个⽇期。
格式3:(⽇期型数据1)⼀(⽇期型数据2、其结果是两个⽇期之间相差的天数。
格式4:+ (秒数>+其结果是若⼲秒后的某个⽇期时间。
格式5:(⽇期时间型数据>⼀(秒数)其结果是若⼲秒前的某个⽇期时间。
格式6:(⽇期时间型数据l>⼀其结果是两个⽇期时间之间相差的秒数。
例如 d2=DATE()+2 d3⼀DATE()⼀2 7 d2⼀d3输出为4。
Visual FoxPro表达式和运算符
黄应虎
【期刊名称】《电子技术与软件工程》
【年(卷),期】2013(000)017
【摘要】ViSUflIFoxPro提供了多种运算符,算术运算符用于对数值型数据进行算术运算。
字符运算符用于连接两个字符型数据。
关系运算符用于对字符型、数值型或日期型数据进行比较运算。
逻辑运算符用于对逻辑型数据进行运算。
用运算符把常量、变量和函数连接起来构成的有意义的式子称为表达式。
表达式值的数据类型决定了表达式的类型。
常用的表达式有数值型表达式、字符型表达式和逻辑型表达式。
【总页数】1页(P231-231)
【作者】黄应虎
【作者单位】固原民族职业技术学院(社区科),宁夏回族自治区固原市756000【正文语种】中文
【中图分类】TP301.6
【相关文献】
1.Visual Foxpro中正则表达式的应用 [J], 梁里宁
2.Visual FoxPro表达式和运算符 [J], 黄应虎;路文祯
3.《Visual FoxPro及其应用系统开发》(简明版)及《Visual FoxPro及其应用系统开发》(第二版)简介 [J],
4.Visual FoxPro表达式和运算符 [J], 黄应虎; 路文祯
5.FoxBASE+、FoxPro和Visual FoxPro中索引表达式的正确使用 [J], 丁爱萍因版权原因,仅展示原文概要,查看原文内容请购买。
Visual FoxPro的运算符与表达式
运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。
表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。
表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。
表达式的类型由运算符的类型决定。
在Visual FoxPro 6.0中有5类运算符和表达式:
•算术运算符和算术表达式
•字符串运算符和字符串表达式
•日期运算符和日期表达式
•关系运算符和关系表达式
•逻辑运算符和逻辑表达式
1.算术运算符与算术表达式
算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。
例如:50*2+(70—6)/8的运算结果为108.00。
算术表达式的格式为:
<数值1><算术运算符1><数值2>[<算术运算符2><数值3>…]
(1)算术运算符
Visual FoxPro 6.0提供的算术运算符见下表。
在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。
它们运算的含义与数学中基本相同。
运算符名称说明
+ 加同数学中的加法
- 减同数学中的减法
* 乘同数学中的乘法
/ 除同数学中的除法
^或**乘方同数学中的乘方,如4^3表示43
%求余12%5表示12除以5所得的余数2
•
( ) →^、** →*、/ → %→ +、- (2)表达式的书写规则
算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:
•每个符号占1格,所有符号都必须一个一个并排写在同
一横线上,不能在右上角或右下角写方次或下标。
例如:23要写成2^3,Xl十X2要写成X1+X2。
•原来在数学表达式中省略的内容必须重新写上。
例如:2X要写成2*X。
•所有括号都用小括号(),且括号必须配对。
例如:
3[x+2(y+z)]必须写成3*(x+2*(y+z))。
•要把数学表达式中的有些符号,改成Visual FoxPro 6.0
中可以表示的符号。
例如:要把2πr改为2*pi*r。
2.字符串运算符与字符串表达式
一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。
它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。
Visual FoxPro 6.0提供的字符运算符有两个(其运算级别相同),见下表。
运算符名称
说明
+连接将字符型数据进行连接
-空格移位连接将前一数据尾部的空格移到后面数据的尾部
字符串表达式的格式为
<字符串1><字符串运算符1><字符串2>[<字符串运算
符2><字符串3>…]
例如:
"ABCl23"+"666xyz"连接后结果为:"ABCl23666xyz"
"计算机"+"世界" 连接后结果为:"计算机世界"
"ABC "-"DEFG" 连接后结果为:"ABCDEFG "
"ABC "+"DEFG" 连接后结果为:"ABC DEFG "
字符串表达式的值为字符串。
在字符串中嵌入引号,只需将字符串用另一种引号括起来即可。
例如:QM="'"
S=S+QM+ALLTRIM(THIS.Edit1.Value)+QM+","
3.日期时间运算符与日期时间表达式
日期型表达式由算术运算符“+、-”、算术表达式、日期型常量、日期型变量和函数组成。
日期型数据是一种特殊的数值型数据,它们之间只能进行加“+”、减“-”运算。
有下面3种情况:
•两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。
例如:{^1999/12/19}-{^1999/11/16}结果为数值型数据:33
•一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算的日期)。
例如:{^1999/11/16}+33结果为日期型数据:{^1999/12/19} •一个表示天数的数值型数据可从日期型数据中减掉它,
其结果仍然为一日期型数据(向前推算的日期)。
例如:
{^1999/12/19}-33 ,结果为日期型数据:{^1999/11
/16}
Visual FoxPro 6.0将无效的日期处理成空日期。
4.类与对象运算符
类与对象运算符专门用于实现面向对象的程序设计。
有以下两种:
.——点运算符,确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。
:: ——作用域运算符,用于在子类中调用父类的方法。
5.名表达式
在Visual FoxPro 6.0中,许多命令和函数需要提供一个名。
可在Visual FoxPro 6.0中使用的名有:
表/.DBF文件名、表/.DBF别名、表/.DBF字段名、索引文件名、文件名、内存变量和数组名、窗口名、菜单名、表单名、对象名、属性名、…
在Visual FoxPro 6.0中定义一个名时,需要遵循以下原则:
•字段名中只能使用字母或下划线开始。
•字段名中只能使用字母、数字和下划线字符。
•不能使用Visual FoxPro 6.0的保留字。
•字段名的长度可以为1—128个字符,但自由表中的字
段名、索引标记名最多为10个字符。
文件名按操作系
统的规定。
•字段名不是变量或字段,但是可以定义一个名表达式,以代替同名的变量或字段的值。
字段名表达式为Visual FoxPro 6.0的命令和函数提供了灵活性。
将名存放到变量或数组元素中,就可以在命令或函数中用变量来代替该名,只要将存放一个名的变量或数组元素用一对括号括起来。
例如:STORE "CITY" TO a
REPLACE (a) WITH "Beijing"
字段名CITY被存放在变量a中,在使用REPLACE命令时,名表达式(a)将用字段名代替变量。
这种方法称为间接引用。