计算机二级VF第二章 数据与数据运算.docx
- 文档编号:6865552
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:23
- 大小:23.48KB
计算机二级VF第二章 数据与数据运算.docx
《计算机二级VF第二章 数据与数据运算.docx》由会员分享,可在线阅读,更多相关《计算机二级VF第二章 数据与数据运算.docx(23页珍藏版)》请在冰豆网上搜索。
计算机二级VF第二章数据与数据运算
第二章数据与数据运算
第一节常量与变量
一.常量:
常量用以表示一个具体的、不变的值
1.数值型常量(N):
也称为常数,用来表示一个数量的大小,由数字、小数点及正负号组成
*科学记数法:
123456789
指数表示法:
1.23456789*108
科学计数法:
1.23456789E8
例:
.?
123.456
123.456
.?
-12.624
-12.624
.?
1.234E3,1.234E4
123412340
2.货币型常量(Y):
用来表示货币值,与数值型常量相似,但要加上一个前置的符号$。
*存储数据时采用4位小数,如果多于4位小数,系统会将多于4位的部分进行四舍五入
例:
.?
1234.56789
1234.56789
.?
$1234.56789
1234.5679
3.字符型常量(C):
用定界符括起来的字符串
*常用定界符有""、''、[]
*空串:
不包含任何字符的字符串。
一般用""、''、[]表示
例:
.?
[全国计算机等级考试]
全国计算机等级考试
.?
'VisualFoxPro6.0'
VisualFoxPro6.0
4.日期型常量(D):
定界符用一对花括号表示,年月日三部分内容用分隔符分离,常用分隔符有/、-、.和空格。
(1)严格格式(默认):
{^yyyy-mm-dd}
*花括号内第一个字符为脱字符(^),年月日顺序不能颠倒、不能省略,范围{^0001-01-01}~{^9999-12-31}。
(2)传统日期格式:
{mm/dd/yy}
*必须将日期检查格式设置为:
SETSTRICTDATETO0
*用此格式输入时,要符合当前日期的显示格式
例:
.?
{^2006.7.13}
07/13/06
.?
{2006.7.13}
出错提示
.SETSTRICTDATETO0
.?
{2006.7.13}
//
.?
{07/13/2006}
07/13/06
【影响日期格式的设置命令】:
①.设置日期分隔符
格式:
SETMARKTO[日期分隔符]
例:
设置日期分隔符为“-”
.SETMARKTO"-"
.?
DATE()&&返回当前的系统日期
07-11-06
例:
恢复系统的默认分隔符
.SETMARKTO&&不进行任何指定就会使用默认分隔符
.?
DATE()
07/13/06
②.设置日期显示格式
格式:
SETDATE[TO]YMD|DMY|MDY
【详见P56】
例:
设置日期显示格式为"YY.MM.DD"格式
.SETDATEANSI
.?
DATE()
06.07.13
例:
设置日期显示格式为系统默认
.SETDATEAMERICAN
.?
DATE()
07/13/06
③.设置年份位数
格式:
SETCENTURYON|OFF
ON:
年份占4位
OFF:
年份占2位
例:
.SETCENTON
.?
DATE()
07/13/2006
.SETDATEANSI
.?
DATE()
2006.07.13
.SETCENTOFF
.SETDATEAMER
.?
DATE()
07/13/06
5.日期时间型常量(T):
包括日期和时间两部分内容:
{^<日期>,<时间>}
时间部分格式为:
hh:
mm:
ss[a|p]
范围为:
12:
00:
00AM~11:
59:
59PM
例:
.?
DATETIME()&&返回系统日期时间
07/13/0604:
38:
16PM
.?
{^2005.4.3,13:
32:
46}
04/03/0501:
32:
46PM
.SETHOURTO24&&时间显示为24小时制
.?
{^2004.7.9,18:
32:
33}
07/09/0418:
32:
33
.?
{^2006-8-9,6:
2P}
08/09/0618:
02:
00
6.逻辑型常量(L):
逻辑型数据只有逻辑真和逻辑假两个值
真:
.T.或.Y.
假:
.F.或.N.
注:
不分大小写
二.变量:
变量值是能够随时更改的,VFP的变量分为字段变量和内存变量两大类。
1.内存变量:
存于内存中的临时数据,变量的类型取决于变量值的类型,变量的类型及值都可随时更改。
*当内存变量与字段变量同名时,系统默认字段变量,如果让内存变量优先于字段变量必须在内存变量名前加"M."
2.内存变量常用命令
(1)内存变量的赋值
格式1:
<内存变量名>=<表达式>
格式2:
STORE<表达式>TO<内存变量名表>
功能:
计算表达式的值,并将值赋给一个或多个内存变量,格式1只能给一个变量赋值,格式2可以同时给多个变量赋值
例:
.A=[方通]
.B=123.64
.C=DATE()
.D=.F.
.?
A,B
方通123.64
.?
C,D
07/13/06.F.
.STORE10TOA1,A2,A3
.?
A1,A2+2,A3+3
101213
(2)表达式值显示
格式1:
?
<表达式表>换行显示值。
格式2:
?
?
<表达式表>不换行显示值。
3.内存变量的显示
格式:
LIST|DISPLAYMEMORY[LIKE<通配符>]
通配符:
*:
代表任意位数的任意字符
?
:
代表0~1位任意字符
例:
.CLEARALL&&清除所有变量
.STORE10TOA,A1,A2,ABC,B,B1,B2,
BBC
例:
显示所有内存变量
.DISPMEMORYLIKE*
例:
显示变量名以"A"开头的所有变量
.DISPMEMORYLIKEA*
例:
显示变量名以"A"开头且长度不超过2位的所有变量
.DISPMEMORYLIKEA?
例:
显示变量名中第2个字符是"B"的所有变量
.DISPMEMORYLIKE?
B*
4.内存变量的清除
格式1:
CLEARMEMORY|RELEASEALL
功能:
清除所有内存变量
格式2:
RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]
功能:
清除指定内存变量
例:
清除所有第2个字符为"B"的变量
.RELEASEALLLIKE?
B*
注:
清除命令不会有显示结果,如想查看结果,可用DISPMEMOLIKE*命令
例:
清除所有不是"A"开头的变量
.RELEASEALLEXCEPTA*
例:
清除变量A2
.RELEASEA2
例:
清除所有变量
.RELEASEALL
第三节表达式
一.数值表达式
数值表达式:
是由算术运算符将数值型数据连接起来的式子,结果仍为数值型。
算术运算符:
+、-、*、/、%(取余)、**或^(乘方)
例:
.A=12
.?
A+3,A-3,A*3,A/3
159364
.?
9^2,3^3
8127
.?
7%4
3
二.字符表达式
字符表达式:
是由字符运算符将字符型数据连接起来的式子,结果为字符型。
字符连接运算符:
+:
字符直接连接
-:
首字符尾部空格移到新字符的尾部再进行连接
例:
.A="全国计算机"
.B='等级考试'
.C='二级VisualFoxPro'
.?
A+B+C
全国计算机等级考试二级VisualFoxPro
.D=[6.0]
.E=[Visual]
.F='FoxPro'
.?
E+F+D
VisualFoxPro6.0
.?
E-F+D
VisualFoxPro6.0
三.日期时间表达式
日期时间运算符:
+-
常用格式:
D+N|N+D|D-N|D-D
T+N|N+T|T-N|T-T
例:
.?
DATE()+365
07/14/07
.?
DATE()-3
07/11/06
.?
DATE()-{^2006-7-10}
4
注:
D+N,D-N,N+D均返回一个新的D型数据,而D-D则返回一个N型数据,N为两个日期之间相差的天数
.A={^2006-7-12,8:
53:
41}
.?
A+8
07/12/0608:
53:
49AM
.?
A-3
07/12/0608:
53:
38AM
.?
A-{^2006/7/12,08:
53}
41
注:
T-N,T+N,N+T均返回一个新的T型数据,则T-T则返回一个N型数据,N为两个T型数据之间相差的秒数
四.关系表达式
相同数据进行操作并产生一个逻辑值。
1.比较运算符:
><>=<==<>或#或!
=(不等号)
例:
.A=71
.B=DATE()
.C=.F.
.?
A+3>80
.F.
.?
A*2>140
.T.
.?
10^2=2^10
.F.
.?
10^2>2^10
.F.
.?
10^2>=100
.T.
.?
B-3>{^2006-7-11}
.F.
.?
C>.T.
.F.
.?
C<.T.
.T.
.SETCOLLATETO"MACHINE"
.?
ASC("0"),ASC("A"),ASC("a")
486597
注:
ASC函数将返回括号内第一个C型数据的ASCII码值,而将字符的排序序列设置为MACHINE(机器)时,字符的大小正是按ASCII码值的大小进行比较
.?
"A">"Z"
.F.
.?
"A">"a"
.F.
.?
"ABC">"BBC"
.F.
.?
[BBB]>[ABC]
.T.
.?
[abc]>[ABC]
.F.
.?
[abc]>[ABC]
.T.
.?
[ABCDE]=[ABCD]
.T.
.?
[计算机学校]=[计算机]
.T.
.?
[李世民]='李'
.T.
.?
[Visual]=[]
.T.
.?
[ABC]=[ABCDE]
.F.
.?
[ABC]<[ABCDE]
.T.
注:
在EXACT设置为OFF(系统默认)时,字符串比较的部分完全相同时,"前长后短"为等于,"前短后长"为小于
.?
"张飞">"关羽"
.T.
.?
"明天">"后天"
.T.
.?
[100]>[12]
.F.
2.字符串包含运算符$
例:
.?
"等级"$[全国计算机等级考试]
.T.
.?
[FOX]$"VisualFoxPro"
.F.
.?
"Com"$[Computer]
.T.
.?
[]$[方通]
.F.
.?
[张三丰]$[张三]
.F.
3.字符串精确比较运算符==
例:
.?
[ABCD]=[ABC]
.T.
.?
[ABCD]==[ABC]
.F.
.?
[ABCD]==[ABCD]
.T.
五.逻辑表达式
逻辑表达式是由逻辑运算符将逻辑型数据连接起来的式子,其运算结果为逻辑型。
逻辑运算符:
AND:
两端为真才为真,一端为假就为假
OR:
一端为真就为真,两端为假才为假
NOT:
对后面的逻辑型数据起相反作用
例:
.?
[张飞]>[关羽]AND2^10>10^2
.T.
.?
[今天]>[明天]AND7+5>=15
.F.
.?
'一'<'二'ANDDATE()>{^2006.7.1}
.F.
.?
[10]>[12]AND[100]>[12]
.F.
.?
!
7+8>15OR[计算机]=[电脑]
.T.
.?
!
(7+8>=15OR[计算机]=[电脑])
.F.
*逻辑运算符运算顺序:
NOTANDOR
*运算符的优先级:
算术(字符|日期时间)关系逻辑
第四节常用函数
一.数值函数
1.绝对值函数ABS(N)
例:
.A=78.625
.?
ABS(A),ABS(-A)
78.62578.625
2.符号函数SIGN(N)负-1零0正1
例:
.?
SIGN(A),SIGN(A-80),SIGN(0)
1-10
3.平方根函数SQRT(N)
例:
.?
SQRT(SQRT(SQRT(81)))
1.73
.?
SQRT(81)=81^(1/2)
.T.
4.圆周率函数PI()
例:
.?
PI()
3.14
5.求整数函数
格式1:
INT(N)
功能:
返回N的整数部分
例:
.?
INT(A),INT(-A)
78-78
.?
INT(A)=A
.F.
.?
INT(78)=78
.T.
.B=1234
.?
INT(B/100)
12
格式2:
CEILING(N)
功能:
返回大于或等于N的最小整数
例:
.?
CEILING(A),CEIL(-A)
79-78
格式3:
FLOOR(N)
功能:
返回小于或等于N的最大整数
例:
.?
FLOOR(A),FLOO(-A)
78-79
6.四舍五入函数ROUND(N,保留小数位)
例:
.?
ROUND(A,4)
78.6250
.?
ROUND(A,3)
78.625
.?
ROUND(A,2)
78.63
.?
ROUND(A,1)
78.6
.?
ROUND(A,0)
79
.?
ROUND(A,-1)
80
.?
ROUND(A,-2)
100
.?
ROUND(A,-3)
0
注:
当保留位数为正数时,结果为保留到小数点后的指定位数;当保留位数为零时,结果将保留到整数位(个位);当保留位数为负数时,则保留到小数点前
7.求余函数MOD(N1,N2)
例:
.?
MOD(7,4),7%4
33
.?
MOD(8,6),MOD(6,8)
26
.?
MOD(8,-3),-8%3
-11
注:
余数判断方法
设:
|N1|%|N2|的结果为A
1.N1与N2均为正,则余数为A
2.N1与N2均为负,则余数为-A
3.N1与N2一正一负,则余数为|N2|-A的结果再添加N2的正负号
8.求最大值函数
MAX(表达式1,表达式2,…表达式N)
9.求最小值函数
MIN(表达式1,表达式2,…表达式N)
例:
.A=2^16
.B=65535
.C=65537
.?
MAX(A,B,C),MIN(A,B,C)
6553765535
.?
MAX([今天],[明天],[后天])
明天
.?
MIN("100",[12],[FoxPro])
100
二.字符函数
1.求字符串长度函数LEN(C)
功能:
以数值型数据返回括号内字符型数据的长度
例:
.A=[十一国庆节]
.B=[VisualFoxPro6.0]
.?
LEN(A),LEN(B),LEN(A)+LEN(B)
101727
.?
LEN(A+B),LEN(A-B)
2727
.?
LEN(A)-LEN(B)
-7
2.大小写字母转换函数
大写字母转小写字母格式:
LOWER(C)
小写字母转大写字母格式:
UPPER(C)
例:
.B=[ABCabc123计算机]
.?
UPPER(B)
ABCABC123计算机
.?
LOWER(B)
abcabc123计算机
3.产生空格函数SPACE(N)
功能:
返回由N个空格组成的字符串
例:
.C=[Visual]
.D=[FoxPro6.0]
.?
C+SPACE
(2)+D
VisualFoxPro6.0
4.删除字符首尾空格函数
删除尾部空格函数格式TRIM(C)
删除首部空格函数格式LTRIM(C)
删除首尾空格函数格式ALLTRIM(C)
例:
.CC=[FoxPro]
.?
[Visual]+CC+[6.0]
VisualFoxPro6.0
.?
[Visual]+TRIM(CC)+[6.0]
VisualFoxPro6.0
.?
[Visual]+LTRIM(CC)+[6.0]
VisualFoxPro6.0
.?
[Visual]+ALLTRIM(CC)+[6.0]
VisualFoxPro6.0
.?
LEN(CC),LEN(ALLT(CC))
86
5.取子串函数
左取截取格式:
LEFT(C,N)
功能:
从括号内C型数据的最左端起,截取N位长度的子字符串
例:
.?
LEFT(A,4)
十一
.?
LEFT(A,8)
十一国庆
.?
LEFT(A,20)+[快到了]
十一国庆节快到了
右取截取格式:
RIGHT(C,N)
功能:
从括号内C型数据的最右端起,截取N位长度的子字符串
例:
.B=[Computer]
.?
LEFT(B,3),RIGHT(B,3)
Comter
.?
RIGHT(A,6)
国庆节
.?
LEFT(RIGHT(A,6),4)
国庆
.?
RIGHT(LEFT(A,8),4)
国庆
指定截取格式:
SUBSTR(C,N1[,N2])
功能:
从括号内C型数据的N1位起,截取N2位长度的子字符串,如果N2缺省,则一直截取到字符串结束
例:
.?
SUBSTR(A,5,4)
国庆
.?
SUBSTR(B,2,3)
omp
注:
由于一个汉字是两位宽度,所以通常在截中文字符串时,起始位置多为奇数,截取长度多为偶数
6.计算子串出现次数OCCURS(C1,C2)
功能:
计算C1在C2中出现的次数
例:
.C=[Thisisabook!
]
.?
OCCU('is',C)
2
.?
OCCU("oo",C),OCCU([o],C)
12
.?
OCCU("",C),OCCU("!
",C)
31
.?
OCCU("th",C),OCCU("th",lower(C))
01
注:
如果C1不是C2的子字符串,则返回值为0
7.求子串位置函数
格式1:
AT(C1,C2[,N])
格式2:
ATC(C1,C2[,N])(不区分大小写)
注:
N表示C1在C2中的第几次出现,N的默认值为1。
例:
.?
AT([Th],C)
1
.?
AT([IS],C)
0
.?
AT([is],C),AT('is',C,2)
36
.?
ATC([IS],C,2)
6
.?
AT([ooo],C)
0
注:
当C1不是C2的子字符串时,返回0
8.子字符串替换函数STUFF(C1,N1,N2,C2)
功能:
用C2替换C1从N1位起N2位长度的原有字符串,如果N2为0则为插入效果,如果C2为空串则为删除效果
例:
.?
STUFF(A,5,4,[是个])
十一是个节
.?
STUFF(A,5,0,[是我国的])
十一是我国的国庆节
.?
STUFF(A,5,4,"")
十一节
.C=[VisualFoxPro]
.?
C,STUFF(C,7,1,"")
VisualFoxProVisualFoxPro
注:
此函数可以用来删除字符中部的空格
9.字符替换函数CHRTRAN(C1,C2,C3)
功能:
当C1中一个或多个与C2中某个字符相同时,就用C3中相对应的(与C2相同位置)替换这些字符。
【C2字符多于C3字符则多出删除;C3字符多于C2字符则多出部分忽略】
例:
.B=[我想我是海]
.C=[COMPUTER]
.?
CHRT(B,[我海],[你湖])
你想你是湖
.?
CHRT(C,[OMPUTER],[omputer])
Computer
.?
CHRT([学习计算机],[计算机],[电脑])
学习电脑
10.字符串匹配函数LIKE(C1,C2)
注:
【C1中可以使用通配符?
和*】
例:
.?
LIKE("*节",A)
.T.
.?
LIKE("*国庆*",A)
.T.
.?
LIKE("?
?
一*",A)
.T.
.?
LIKE([十一国庆节],A)
.T.
三.日期和时间函数
1.系统日期和系统时间函数
取系统日期格式:
DATE()D
取系统时间格式:
TIME()C
取系统日期时间格式:
DATETIME()T
2.求年份、月份和天数函数
年份格式:
YEAR(D|T)N
月份格式:
MONTH(D|T)N
天数格式:
DAY(D|T)N
例:
.?
YEAR(DATE())
2006
.?
YEAR(DATE())+3
2009
.?
MONTH(DATE()+30)
8
.?
DAY(DATE())
15
3.时、分、秒函数
时格式:
HOUR(T)N
分格式:
MINUTE(T)N
秒格式:
SEC(T)N
例:
.A={^2006-4-3,7:
8:
29PM}
.?
HOUR(A),MINUTE(A),SEC(A)
19829
四.数据类型转换函数
1.数值转换成字符串函数STR(N[,长度][,小数位])
【长度默认为10位,小数位默认为0位】
例:
.?
[张飞今年]+18+[岁!
]
出错提示
.?
[张飞今年]+STR(18)+[岁!
]
张飞今年18岁!
.?
[张飞今年]+STR(18,2)+[岁!
]
张飞今年18岁!
例:
显示"XXXX年XX月DD日"的日期格式
.YY=YEAR(DATE())
.MM=MONTH(DATE())
.DD=DAY(DATE())
.?
[今天是:
]+STR(YY,4)+[年]+ALLTRIM(
STR(MM))+"月"+ALLT(STR(DD))+[日]
今天是:
2006年7月15日
.XM=[张三丰]
.GZ=2345.67
.?
XM+[的工资为:
]+STR(GZ,4)+[元]
张三丰的工资为:
2346元
.?
XM+[的工资为:
]+STR(GZ,3)+[元]
张三丰的工资为:
***元
.?
XM+[的工资为:
]+STR(GZ,7,2)+"元"
张三丰的工资为:
2345.67元
2.字符串转换成数值函数VAL(C)
例:
.?
VAL('123')+123
246
3.字符串转换成日期或日期时间函数
字符串转换成日期格式:
CTOD(C)
字符串转换成日期时间函数:
CTOT(C)
注:
括号内应为日期或日期时间格式的字符串,并有对应的日期或日期时间存在,否则将转换为没有数据的空日期或空日期时间;另外,使用命令时,SETSTRICTDATE的设置不能为2
4.日期或日期时间转换成字符串函数
日期转换字符串函数:
DTOC(D[,1])
日期时间转换字符串函数:
TTOC(T[,1|2])
例:
显示"XXXX年XX月XX日"的日期格式
.RQ=DTOC(DATE(),1)
.?
[今天是:
]+LEFT(RQ,4)+[年]+SUBS(R
Q,5,2)+[月]+RIGHT(RQ,2)+[日]
今天是:
2006年07月16日
.?
[现在是:
]+TTOC(DATET())
现在是:
07/16/0602:
49:
42PM
.?
[现在是:
]+TTOC(DATET(),2)
现在是:
02:
50:
05PM
5.宏替换函数
格式:
&<字符型变量>
【替换出字符型变量的值,&和它后面所跟的变量之间不能有空格。
即去引号】
例:
.A=[B]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机二级VF第二章 数据与数据运算 计算机 二级 VF 第二 数据 运算