第08次课常量变量表达式函数.docx
- 文档编号:23259419
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:21
- 大小:23.30KB
第08次课常量变量表达式函数.docx
《第08次课常量变量表达式函数.docx》由会员分享,可在线阅读,更多相关《第08次课常量变量表达式函数.docx(21页珍藏版)》请在冰豆网上搜索。
第08次课常量变量表达式函数
第二部分变量、表达式及函数
常量与变量:
1.1常量:
1.数值型常量:
①.由0—9、小数点、正负号构成;
②.对于很大的数据一般采用科学记数法形式书写,如:
5.12E12(表示5.12×1012)、5.12E-12(表示5.12×10-12);
③.在内存中占8个字节。
2.货币型常量:
①.由前置符号“$”开始,如:
$1234.12;
②.默认采用4位小数,如果多余4位小数,则对多余的位数进行四舍五入;
③.不能采用科学记数法表示,在内存中占8个字节。
3.字符型常数(字符串):
①.用单引号、双引号、方括号定界,如:
’abcd’、”abcd”、[abcd];&&注意:
定界符成对出现
②.定界符不能交叉,如:
’abcd”、”abcd]都是错误的;
③.不包含任何字符的字符串(“”)叫空串,空串与包含空格的字符串(“”)不同。
4.日期型常量:
①.用大括号(花括号)定界,如:
{10/08/01};
②.分隔符可以用斜杠(/)、连字号(-)、句点(.)、空格;
③.日期型常量分为:
传统日期格式与严格日期格式。
●传统日期格式:
(用SETSTRICTDATETO0设置)
◆月、日用2位数字表示;
◆年可用2位,也可以用4位。
●严格日期格式:
(默认,用SETSTRICTDATETO[1|2]设置)
◆{^yyyy-mm-dd};
◆书写时大括号内的第一个字符必须是脱字符(^);
◆年必须用4位数;
◆年月日的次序不能颠倒、不能缺省;
◆用8个字节表示。
5.日期时间型常量:
①.包括日期与时间两个部分,{<日期>,<时间>},如:
{^2006-03-08,06:
30P}
②.用8个字节表示;
6.逻辑常量:
①.用两个(.)定界,如.T.、.Y.;
②.逻辑型常量取值有:
.T.、.t.、.F.、.f.、.Y.、.y.、.N.、.n.;
③.逻辑型常量只占一个字节。
1.2变量:
1.字段变量:
①.字段变量数据类型;
◆字符型:
用C表示,长度不能超过254个字节;
◆数值型:
用N表示,长度不超过20位(其中小数最大为19位);
◆货币型:
用Y表示,固定长度为8字节;
◆日期型:
用D表示,固定长度为8字节;
◆日期时间型:
用T表示,固定长度为8字节;
◆逻辑型,用L表示,固定长度为1字节;
◆浮点型:
用F表示,长度不超过20位(其中小数最大为19位);
◆整型:
用I表示,固定长度为4字节;
◆双精度型:
用B表示,固定长度为8字节;
◆备注型:
用M表示,固定长度为4字节。
◆通用型:
用G表示,固定长度为4字节。
②.字段变量名可以为汉字;
③.字段变量优先于内存变量。
2.内存变量:
①.内存变量的数据类型;
◆字符型:
用C表示;
◆数值型:
用N表示;
◆货币型:
用Y表示;
◆日期型:
用D表示;
◆日期时间型:
用T表示;
◆逻辑型,用L表示;
②.内存变量名可以为汉字;
③.访问内存变量可以用M.(或M->)。
3.内存变量的类型:
①.简单内存变量:
◆简单内存变量不需要先定义,可通过重新给变量赋值来改变变量的类型;
◆可用下面两种方式赋值:
<内存变量>=<表达式>
STORE<表达式>TO<内存变量名表>
②.数组:
◆数组使用之前必须定义;
定义格式:
DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,……]
DECLARE<数组名>(<下标上限1>[,<下标上限2>])[,……]
◆默认数组的类型是逻辑型;
◆数组的最大维数为二维
◆在数组赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的所有数组元数;
◆数组名不能与简单变量同名;
◆可用一维数组的形式访问二维数组。
例:
Dimeaa(10),bb(5,2)
1.3内存变量常用命令:
①.内存变量赋值:
<内存变量>=<表达式>A=100
STORE<表达式>TO<内存变量名表>
STORE100TOA1,A2,A3,A4
STOREA1+100TOA2,A3
②.表达式值的显示:
格式1:
?
[<表达式表>]
格式2:
?
?
[<表达式表>]
③.内存变量显示。
格式1:
LISTMEMORY
格式2:
DISPLAYMEMORY
④.内存变量删除。
格式1:
CLEARMEMORY
格式2:
RELEASE<内存变量表>
表达式:
1.数值表达式:
+、-、*、/、%、**、^、()
①.算术运算优先级:
②.求余运算:
●求余运算:
%
●取余函数:
MOD()
●余数的正负号与除数一致;
●余数的绝对值小于除数的绝对值;
例:
?
5%4-5%45%-4-5%-4
13-3-1
2.字符表达式:
①.运算符:
+、-
+两个字符串首尾连接,如:
例:
a=”abcd”
b=”1234”
?
a+b
abcd1234
-连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部,如:
例:
a=”abcd”
b=”1234”
?
a-b
abcd1234
②.字符串表达式中的每一个项都必须是字符型。
3.日期时间表达式:
+、-
格式
结果及类型
<日期>+<日期>
不能相加
<日期>-<日期>
两日期相隔天数
<日期>+<天数>
日期型。
某日期后若干天的日期
<日期>-<天数>
日期型。
某日期前若干天的日期
<日期时间>+<秒数>
日期时间型。
某时间后若干秒的时间
<日期时间>-<秒数>
日期时间型。
某时间前若干秒的时间
<日期时间>+<日期时间>
不能相加
<日期时间>-<日期时间>
两时间相差秒数
4.关系表达式:
运算符
说明
运算符
说明
>
大于
<=
小于等于
<
小于
>=
大于等于
=
等于
==
字符串精确比较
#、<>、!
=
不等于
$
子串包含测试
①.字符排序规则:
◆西文字符按:
数字<小写字母<大写字母
◆中文按拼音顺序排列
例如:
?
"123"<"AB","AB"<"ab","中国">"中间"
TFF
②.字符串比较汇总
◆等号(=):
与EXACT的状态相关。
如果等于ON,先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行比较;如果等于OFF,只要右边的字符串与左边字符串的前面部分相同,即可得到逻辑真(以右面字符串为准,右面字符串结束即终止比较)。
◆双等号(==):
只有两个字符串完全相同时,结果才为真。
◆包含($):
左面字符串完全包含在右面字符串中,结果为真。
比较
=(EXACTOFF)
=(EXACTON)
==
$
"abc"与"abc"
.T.
.T.
.T.
.T.
"ab"与"abc"
.F.
.F.
.F.
.T.
"abc"与"ab"
.T.
.F.
.F.
.F.
"abc"与"ab_"
.F.
.F.
.F.
.F.
"ab"与"ab_"
.F.
.T.
.F.
.T.
"abc_"与"ab"
.T.
.F.
.F.
.F.
""与"ab"
.F.
.F.
.F.
.F.
"ab"与""
.T.
.F.
.F.
.F.
TRIM("ab_")与"ab"
.T.
.T.
.T.
.T.
"ab"与TRIM("ab_")
.T.
.T.
.T.
.T.
5.逻辑表达式:
.NOT.(或!
)、.AND.、.OR.
逻辑运算符两端的(.)可以省略,但要保留空格;
6.运算符优先级:
算术运算符>字符串运算符>日期时间运算符>关系运算符>逻辑运算符
◆算术运算:
乘方>乘、除、求余>加、减
例如:
?
(1+2^(1+2))/(2+2)
2.25
◆字符运算:
加、减优先级相同
◆日期运算:
加、减优先级相同
◆关系运算:
大于、小于、大于等于、小于等于、不等、等于优先级相同
◆逻辑运算:
OR 例如: ? 12>2AND"人">"人民"OR.T.<.F. .F. ? ((10%3=1)AND(15%2=0))OR"电脑"! ="计算机" .T. 常用函数: 3.1数值函数: 1.绝对值函数: 格式: ☆ABS(<数值表达式>)参数类型: N函数值类型: N 作用: 求<数值表达式>的绝对值 例题: ? ABS(12),ABS(-12) 1212 2.平方根函数: 格式: ☆SQRT(<数值表达式>)参数类型: N函数值类型: N 作用: 求<数值表达式>的平方根 说明: 数值表达式不能为负数 3.求整数函数: 格式: ★INT(<数值表达式>)参数类型: N函数值类型: N 作用: 返回<数值表达式>整数部分(截尾取整) 说明: 将一个数的整数部分取出来,不管小数部分 例题: ? Int(9.99999) 9 4.四舍五入函数: 格式: ☆ROUND(<数值表达式1>,<数值表达式2>)参数类型: N函数值类型: N 作用: 返回<数值表达式1>在<数值表达式2>处四舍五入结果 说明: 若<数值表达式2>大于等于0,则表示要保留几位小数,否则为整数部分的舍入位数 例题: ? Round(12.567,2),Round(12.567,1),Round(12.567,0),Round(12.567,-1) 12.5712.61310 5.求余数函数: 格式: ☆MOD(<数值表达式1>,<数值表达式2>)参数类型: N函数值类型: N 作用: 返回<数值表达式1>除以<数值表达式2>的余数 说明: ◆函数值的正负符号与<数值表达式2>相同; ◆转换时根据需要自动进行四舍五入; ◆如果两数同号,则函数值等于两数相除的余数; ◆如果两数异号,则函数值等于两数相除的余数再加上<数值表达式2>的值。 例题: ? MOD(10,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3) 1-22-1 6.求最大值函数: 格式: ☆MAX(<表达式1>,<表达式2>,…)参数类型: C/N/Y/B/F/D/T 函数值类型: C/N/Y/B/F/D/T 作用: 求各表达式中最大值。 说明: ◆表达式可以是: 字符型、数值型、货币型、双精度型、浮点型、日期型、日期时间型; ◆所有表达式的类型必须相同。 例题: ? Max(12,15.5,4.23),Max("abc","ab"),Max("2","12","05"),Max("汽车","飞机","轮船") 15.5abc2汽车 7.求最小值函数: 格式: ☆MIN(<表达式1>,<表达式2>,……)参数类型: N函数值类型: N 作用: 求各表达式中最小值。 说明: ◆表达式可以是: 字符型、数值型、货币型、双精度型、浮点型、日期型、日期时间型; ◆所有表达式的类型必须相同。 3.2字符函数: 1.字符串长度函数: 格式: ★LEN(<字符表达式>)参数类型: C函数值类型: N 作用: 求<字符表达式>的字符长度(字符数) 说明: 空字符串的长度为0 例题: x="中文VisualFoxPro6.0" ? Len(x) 20 2.大小写转换函数: 格式: ☆UPPER(<字符表达式>)参数类型: C函数值类型: C 作用: 将<字符表达式>中的小写字符变为大写字符 说明: 其它字符不变 例题: ? Upper("中文VisualFoxPro6.0") 中文VISULFOXPRO6.0 格式: ☆LOWER(<字符表达式>)参数类型: C函数值类型: C 作用: 将<字符表达式>中的大写字符变为小写字符 说明: 其它字符不变 3.空格字符串生成函数: 格式: ☆SPACE(<数值表达式>)参数类型: N函数值类型: C 作用: 返回指定数目的空格 说明: 空格数与<数值表达式>的值相同 4.删除前后空格函数: 格式: ★TRIM(<字符表达式>)参数类型: C函数值类型: C 作用: 去掉<字符表达式>尾部空格 说明: 其他空格保留(不去除) 例题: ? "abc"+"123",Trim("abc")+"123" abc123abc123 格式: ☆RTRIM(<字符表达式>)参数类型: C函数值类型: C 作用: 去掉<字符表达式>尾部空格 说明: 其他空格保留(不去除) 格式: ☆LTRIM(<字符表达式>)参数类型: C函数值类型: C 作用: 去掉<字符表达式>前导部空格 说明: 其他空格保留(不去除) 格式: ☆ALLTRIM(<字符表达式>)参数类型: C函数值类型: C 作用: 去掉<字符表达式>前导空格和尾部空格 说明: 中间空格保留(不去除) 5.取子串函数: 格式: ★LEFT(<字符表达式>,<长度>)参数类型: C函数值类型: C 作用: 从<字符表达式>左边取若干字符 说明: 如果<字符表达式>字符数目小于<长度>时,则取出所有字符 例题: ? Left("中文VisualFoxPro6.0",4) 中文 格式: ★RIGHT(<字符表达式>,<长度>)参数类型: C函数值类型: C 作用: 从<字符表达式>右边取若干字符 说明: 如果<字符表达式>字符数目小于<长度>时,则取出所有字符 例题: ? Right("中文VisualFoxPro6.0",4) O6.0 格式: ★SUBSTR(<字符表达式>,<起始位置>[,<长度>])参数类型: C函数值类型: C 作用: 从<字符表达式>中某位置开始取若干字符 说明: 若缺省<长度>参数,则取到末尾 例题: ? Left("中文VisualFoxPro6.0",5,6) Visual 6.求子串位置函数: 格式: ★AT(<字符表达式1>,<字符表达式2>)参数类型: C函数值类型: N 作用: 返回<字符表达式1>的首字符在<字符表达式2>中的位置 说明: ◆若<字符表达式1>没有包含在<字符表达式2>中,则函数值为0; ◆“字符表达式”区分大小写 例题: ? AT("ab","asabhjabh"),AT("AB","asabhjabh") 30 7.子串替换函数: 格式: ★STUFF(<字符表达式1>,<起始位置>,<长度>,<字符表达式2>)参数类型: C函数值类型: C 作用: 用<字符表达式2>替换<字符表达式1>中从<起始位置>开始的若干字符,替换的字符数由<长度>给出 说明: 若<长度>为0,则将<字符表达式2>插入到<字符表达式1>中<起始位置>处。 例题: ? Stuff("中文VisualFoxPro6.0",5,13,"Turbo") 中文Turbo6.0 8.字符串匹配函数: 格式: ★LIKE(<字符表达式1>,<字符表达式2>)参数类型: C函数值类型: .T./.F. 作用: 比较两个字符串对应位置上的字符,若所有对应字符都匹配,函数返回逻辑真,否则返回逻辑假 说明: <字符表达式1>中可以包含通配符*和? 。 例题: ? Like("ab? ","abc") .T. 3.3日期时间函数: 1.系统日期、时间函数: 格式: ★DATE()参数类型: 无函数值类型: D 作用: 获取系统当前日期 例题: ? Date() 10/12/07 格式: ☆TIME()参数类型: 无函数值类型: C 作用: 获取系统当前时间 例题: ? Time() 12: 13: 16 格式: DATETIME()参数类型: 无函数值类型: T 作用: 获取系统当前日期与时间 例题: ? Datetime() 10/12/0712: 13: 45PM 2.求年份、月份、天数函数: 格式: ★YEAR(<日期表达式>|<日期时间表达式>)参数类型: D/T函数值类型: N 作用: 从指定的<日期表达式>或<日期时间表达式>获取年份 例题: ? Year({^2007.12.11})-1 2006 格式: ★MONTH(<日期表达式>|<日期时间表达式>)参数类型: D/T函数值类型: N 作用: 从指定的<日期表达式>或<日期时间表达式>获取月份 例题: ? Month({^2007.12.11}) 12 格式: ☆DAY(<日期表达式>|<日期时间表达式>)参数类型: D/T函数值类型: N 作用: 从指定的<日期表达式>或<日期时间表达>式获取天 例题: ? Day({^2007.12.11}) 11 3.时、分、秒函数: 格式: HOUR(<日期时间表达式>)参数类型: T函数值类型: N 作用: 从指定的<日期时间表达式>获取小时部分 说明: 函数值为24小时制 格式: MINUTE(<日期时间表达式>)参数类型: T函数值类型: N 作用: 从指定的<日期时间表达式>获取分钟部分 格式: SEC(<日期时间表达式>)参数类型: T函数值类型: N 作用: 从指定的<日期时间表达式>获取秒数部分 3.4数据类型转换函数: 1.数值转换成字符串函数: 格式: ★STR(<数值表达式>[,<长度>[,<小数位>]])参数类型: N函数值类型: C 作用: 将<数值表达式>的值转换成字符型数据 说明: ◆转换时根据需要自动进行四舍五入; ◆返回字符串的理想长度L=<数值表达式>值的整数部分位数+<小数位数>+1(小数点); ◆如果<长度>大于L,则字符串加前导空格以满足规定的<长度>要求; ◆如果<长度>值大于等于<数值表达式>值的整数部分位数(包括负号)但又小于L,则优先满足整数部分而自动调整小数位数; ◆如果<长度>值小于<数值表达式>值的整数部分位数,则返回相应数量的星号(*)。 例题: ? Str(123.456,6,2),Str(123.456,5,2),Str(123.456,4,2),Str(123.456,2,2) 123.46123.5123** 2.字符串转换成数值函数: 格式: ★VAL(字符表达式)参数类型: C函数值类型: N 作用: 将<字符表达式>的值转换成数值型数据 说明: ◆如果字符串内出现非数字字符,则只转换前面部分; ◆若<字符表达式>的首字符不是数字符号,则返回数值零,但忽略前导空格。 例题: ? Val("123.4"),Val("123abd34"),Val("中国") 123.40123.000.00 3.字符串转换成日期或日期时间函数: 格式: ☆CTOD(字符表达式)参数类型: C函数值类型: D 作用: 将<字符表达式>的值转换成日期型数据 说明: ◆“字符表达式”必须是日期格式,如: "12.21.07"; ◆如果“字符表达式”的格式不符合日期格式,将转换出空日期。 例题: ? Ctod("12.21.07"),Ctod("13.21.07") 12/21/07// 格式: ☆CTOT(字符表达式)参数类型: C函数值类型: T 作用: 将<字符表达式>的值转换成日期时间型数据 4.日期或时间转换成字符串函数: 格式: ☆DTOC(日期表达式|日期时间表达式[,1])参数类型: D函数值类型: C 作用: 将<日期表达式>或<日期时间表达式>的值转换成字符型数据 例题: 下列程序执行后的输出结果为: a={^2007.12.31} ? Dtoc(A) A.12/31/07B.2007/12/31C.31/12/07D.12.31.07 格式: TTOC(日期时间表达式[,1])参数类型: T函数值类型: C 作用: 将<日期时间表达式>的值转换成字符型数据 5.宏替换函数: 格式: ★&<字符型变量>[.]: 参数类型: C函数值类型: C/N/D/T 作用: 替换出<字符型变量>的内容,即&的值是变量中的字符串。 说明: ◆如果该函数与其后的字符无明确分界,则要用“.”作函数结束标识。 ◆宏替换可以嵌套使用。 例题1: A=123 B="A" ? &A 123 例题2: DB="职工" USE&DB XM="姓名" ? &XM-"你好! " 李小明你好! SKIP ? XM,&XM? xm,姓名 姓名李新 3.5测试函数: 1.空值(NULL值)测试函数: 格式: ★ISNULL(<表达式>)参数类型: C/N/Y/F/I/B/D/T/L/M 函数值类型: .T./.F. 作用: 若<表达式>的值为null则返回.T.,否则返回.F. 说明: 此函数如果用于检测其它非null数据,将全部返回.F. 例题: ? isnull(.null.),isnull(12),isnull("") .T..F..F. 2.“空”值测试函数: 格式: ★EMPTY(<表达式>)参数类型: C/N/Y/F/I/B/D/T/L/M 函数值类型: .T./.F. 作用: 若<表达式>的值为“空”则返回.T.,否则返回.F. 数据类型 “空”值 数据类型 “空”值 数值型 0 双精度型 0 字符型 空串、空格、制表符、回车、换行 日期型 空(如CTOD("")) 货币型 0 日期时间型 空(如CTOT("")) 浮点型 0 逻辑型 .F. 整型 0 备注字段 空(无内容) 例题: ? Empty(""),Empty(""),Empty("12"),Empty(0),Empty(.F.) .T..T..F..T..T. 3.数据类型测试函数: 格式: VARTYPE(<表达式>[,<逻辑表达式>])参数类型: C/N/Y/L/O/G/D/T/X/U 函数值类型: C/N/Y/L/O/G/D/T/X/U 作用: 返回<表达式>的数据类型 返回的字母 数据类型 返回的字母 数据类型 C 字符型或备注型 G 通用型 N 数值型、整型、浮点型、双精度型 D 日期型 Y 货币型 T 日期时间型 L 逻辑型 X Null值 O 对象型 U 未定义 说明: 注意与TYPE()的区别 格式: ★TYPE("<表达式>")参数类型: 函数值类型: 作用: 返回<表达式>的值的数据类型 说明: 括号中的引号("")不能少 例题: A=123 ? TYPE("A") N 4.表文件尾测试函数: 格式: ★EOF([<工作区号>|<表别名>])参数类型: N/C函数值类型: .T./.F. 作用: 测试当前工作区或<工作区号>|<表别名>工作区数据表文件指针是否指向文件尾 说明: 若指向文件尾返回.T.,否则返回.F. 5.表文件首测试函数: 格式: ★BOF([<工作区号>|<表别名>])参数类型: N/C函数值类型: .T./.F. 作用: 测试当前工作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 08 次课常量 变量 表达式 函数