第10次课常量变量表达式函数.docx
- 文档编号:30300524
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:21
- 大小:23.93KB
第10次课常量变量表达式函数.docx
《第10次课常量变量表达式函数.docx》由会员分享,可在线阅读,更多相关《第10次课常量变量表达式函数.docx(21页珍藏版)》请在冰豆网上搜索。
第10次课常量变量表达式函数
第五部分常量、变量、表达式及函数
常量与变量:
1.1常量:
1.数值型常量:
?
.由0—9、小数点、正负号构成;
?
.对于很大的数据一般采用科学记数法形式书写;
如:
5.12E12(表示5.12×1012)、5.12E-12(表示5.12×10-12)
2.货币型常量:
?
.由前置(前导)符号“$”开始,如:
$1234.12;
?
.默认采用4位小数,如果多余4位小数,则对多余的位数进行四舍五入;
?
.不能采用科学记数法表示。
3.字符型常数(字符串):
?
.用单引号('')、双引号("")、方括号定界([]);
如:
'abcd'、"abcd"、[abcd];&&注意:
定界符必须成对出现
?
.定界符不能交叉,如:
’abcd”、”abcd]都是错误的;
?
.不包含任何字符的字符串("")叫空串,空串与包含空格的字符串("")不同。
4.日期型常量:
?
.用大括号(花括号)定界,如:
{10/08/01};
?
.分隔符可以用斜杠(/)、连字号(-)、句点(.)、空格;
?
.日期型常量分为:
传统日期格式与严格日期格式。
●传统日期格式:
(用SETSTRICTDATETO0设置)
◆月、日用2位数字表示;
◆年可用2位,也可以用4位。
如:
{10/08/01},{10/08/2001}
●严格日期格式:
(默认,用SETSTRICTDATETO[1|2]设置)
◆{^yyyy-mm-dd};
◆书写时大括号内的第一个字符必须是脱字符(^);
◆年必须用4位数;
◆年月日的次序不能颠倒、不能缺省;
5.日期时间型常量:
包括日期与时间两个部分,{<日期>,<时间>},如:
{^2006-03-08,06:
30P}
6.逻辑常量:
?
.用两个(.)定界,如.T.、.Y.;
?
.逻辑型常量取值有:
.T.、.t.、.F.、.f.、.Y.、.y.、.N.、.n.;
?
.逻辑型常量只占一个字节。
1.2变量:
1.字段变量:
①.字段变量数据类型;
类型
代表字母
完整英文单词
长度特点
特点
字符型
C
Character
不固定
长度不能超过254个字节
数值型
N
Numeric
不固定
长度不超过20位(其中小数最大为19位)
货币型
Y
Currency
固定
固定长度为8字节
日期型
D
Date
固定
固定长度为8字节
日期时间型
T
DateTime
固定
固定长度为8字节
逻辑型
L
Logic
固定
固定长度为1字节
浮点型
F
Float
不固定
长度不超过20位(其中小数最大为19位)
整型
I
Integer
固定
固定长度为4字节
双精度型
B
Double
固定
固定长度为8字节
备注型
M
Memo
固定
固定长度为4字节
通用型
G
General
固定
固定长度为4字节
?
.字段变量优先于内存变量。
2.内存变量:
?
.内存变量的数据类型;
◆字符型:
用C表示;
◆数值型:
用N表示;
◆货币型:
用Y表示;
◆日期型:
用D表示;
◆日期时间型:
用T表示;
◆逻辑型,用L表示;
?
.访问内存变量可以用M.(或M->)。
3.内存变量的类型:
?
.简单内存变量:
简单内存变量不需要使用专用语句定义,可通过直接赋值的方式使其存在。
如:
a=100&&执行该命令前a变量不存在,执行该命令后a变量存在且其值为100
?
.数组:
◆数组使用之前必须定义;
定义格式:
DIMENSION<数组名>(<下标上限1>[,<下标上限2>])[,……]
或DECLARE<数组名>(<下标上限1>[,<下标上限2>])[,……]
例如:
Dimea(5)&&定义一个名为a,共有5个存储单元的一维数组
Dimea(4,5)&&定义一个名为a,4行5列共有20个存储单元的二维数组
◆数组的最大维数为二维;
例如:
a(3,4,5)没有三维数组,所以是错误的
◆默认数组的类型是逻辑型:
数组定义之后,初始化之前,其值为逻辑假(.F.);
◆在数组赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的所有数组元数;
Dimea(4)&&该指令执行后,a数组的所有存储单元a
(1)、a
(2)、a(3)、a(4)均为逻辑假(.F.)
A=100&&该指令执行后,a数组的所有存储单元a
(1)、a
(2)、a(3)、a(4)均为100
◆数组名不能与简单变量同名;
◆可用一维数组的形式访问二维数组。
Dimeaa(5,4)
aa(6)=100&&该命令执行后,aa(2,2)的值为100
1.3内存变量常用命令:
?
.内存变量赋值:
◆简单赋值:
<内存变量>=<表达式>
例如:
A=100
B=A+200
◆批量赋值:
STORE<表达式>TO<内存变量名表>
例如:
STORE100TOA1,A2,A3,A4
STOREA1+100TOA2,A3
?
.表达式值的显示:
格式1:
?
[<表达式表>]先回车换行,然后显示信息
格式2:
?
?
[<表达式表>]不回车换行,直接显示信息
?
.内存变量显示。
格式1:
LISTMEMORY显示内存中变量(不暂停)
格式2:
DISPLAYMEMORY显示内存中变量(满一屏暂停)
?
.内存变量删除。
格式1:
CLEARMEMORY
格式2:
RELEASE<内存变量表>
表达式:
1.数值表达式:
?
.运算符:
+、-、*、/、%、**、^、()
?
.求余(模)运算符(%)的运算法则:
◆余数的正负号与除数一致;
◆余数的绝对值小于除数的绝对值;
例:
?
5%4-5%45%-4-5%-4
13-3-1
2.字符表达式:
?
.运算符:
+、-
+两个字符串首尾连接,如:
例:
a=”abcd□”
b=”1234”
?
a+b
abcd□1234
-连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部,如:
例:
a=”abcd□”
b=”1234”
?
a-b
abcd1234□
?
.字符串表达式中的每一个项都必须是字符型。
3.日期时间表达式:
+、-
格式
结果及类型
格式
结果及类型
日期+日期
不能相加
日期时间+秒数
向后推若干秒
日期-日期
两日期相隔天数
日期时间-秒数
向前后推若干秒
日期+天数
向后推若干天
日期时间+日期时间
不能相加
日期-天数
向前推若干天
日期时间-日期时间
两时间相差秒数
4.关系表达式:
运算符
说明
运算符
说明
>
大于
<=
小于等于
<
小于
>=
大于等于
=
等于
==
字符串精确比较
#、<>、!
=
不等于
$
子串包含测试
?
.字符串大小比较规则:
◆汉字>字母>数字
◆汉字按汉字的全拼字母比较如:
"王">"李"(相当于"wang">"li")
◆字母:
"a"<"A"<"b"<"B"<…<"z"<"Z"
?
.字符串比较汇总
比较
=(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>的余数 说明: 其规则与运算符(%)相同 例题: ? 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") 中文VISUALFOXPRO6.0 格式: LOWER(<字符表达式>)参数类型: C函数值类型: C 作用: 将<字符表达式>中的大写字符变为小写字符 3.空格字符串生成函数: 格式: ? SPACE(<数值表达式>)参数类型: N函数值类型: C 作用: 返回指定数目的空格 4.删除前后空格函数: 格式: ? TRIM(<字符表达式>)参数类型: C函数值类型: C 作用: 去掉<字符表达式>尾部空格 说明: 其它空格保留(不去除) 例题: ? "abc□"+"123",Trim("abc□")+"123" abc□123abc123 格式: ? 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 作用: 从<字符表达式>中某位置开始取若干字符 说明: 若缺省<长度>参数,则取到末尾 例题: ? SUBSTR("中文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函数值类型: L 作用: 比较两个字符串对应位置上的字符,若所有对应字符都匹配,函数返回逻辑真,否则返回逻辑假 说明: <字符表达式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}) 2007 格式: ? 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),str(123.456,6),str(123.456,6,2),str(123.456,2) □□□□□□□123□□□123123.46** 2.字符串转换成数值函数: 格式: ? VAL(字符表达式)参数类型: C函数值类型: N 作用: 将<字符表达式>的值转换成数值型数据 说明: ◆如果字符串内出现非数字字符,则只转换前面部分; ◆若<字符表达式>的首字符不是数字符号,则返回数值零,但忽略前导空格。 例题: ? Val("123.4"),Val("123abd34"),Val("中国") 123.40123.000.00 3.求字符ASC码函数 格式: ASC(字符表达式)参数类型: C函数值类型: N 作用: 将“字符”转换成对应的ASCII值。 说明: ◆若“字符表达式”是一个字符串(非一个字符),则只转换第一个字符; ◆若“字符表达式”是若干个汉字,则只转换第一个汉字。 ◆必须记住的字符ASCII码: "a"—97,"A"—65,"0"—48 例题: ? ASC("a"),ASC("abcd"),ASC("123"),ASC("中国") 97974954992 4.通过ASCII值求字符函数: 格式: CHR(数字表达式)参数类型: N函数值类型: C 作用: 将“数字”转换成对应的字符。 例题: ? CHR(100),CHR(70),CHR(50),CHR(54992) dF2中 5.字符串转换成日期或日期时间函数: 格式: CTOD(字符表达式)参数类型: C函数值类型: D 作用: 将<字符表达式>的值转换成日期型数据 说明: ◆“字符表达式”必须是日期格式,如: "12.21.07"; ◆如果“字符表达式”的格式不符合日期格式,将转换出空日期。 例题: ? Ctod("12.21.07"),Ctod("13.21.07") 12/21/07// 格式: CTOT(字符表达式)参数类型: C函数值类型: T 作用: 将<字符表达式>的值转换成日期时间型数据 6.日期或时间转换成字符串函数: 格式: 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 作用: 将<日期时间表达式>的值转换成字符型数据 7.宏替换函数: 格式: ? &<字符型变量>[.]: 参数类型: C函数值类型: C/N/D/T 作用: 替换出<字符型变量>的内容,即&的值是变量中的字符串。 说明: ◆如果该函数与其后的字符无明确分界,则要用“.”作函数结束标识。 ◆宏替换可以嵌套使用。 例题1: A=123 B="A" ? &B 123 例题2: 设N=886,M=345,K='M+N',表达式1+&K的值是() A、1232B、数据类型为匹配C、1+M+ND、346 3.5测试函数: 1.空值(NULL值)测试函数: 格式: ? ISNULL(<表达式>)参数类型: C/N/Y/F/I/B/D/T/L/M函数值类型: L 作用: 若<表达式>的值为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函数值类型: L 作用: 若<表达式>的值为“空”则返回.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 日期型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 次课常量 变量 表达式 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)