计算机二级VF第二章 数据与数据运算.docx

上传人:b****6 文档编号:6865552 上传时间:2023-01-11 格式:DOCX 页数:23 大小:23.48KB
下载 相关 举报
计算机二级VF第二章 数据与数据运算.docx_第1页
第1页 / 共23页
计算机二级VF第二章 数据与数据运算.docx_第2页
第2页 / 共23页
计算机二级VF第二章 数据与数据运算.docx_第3页
第3页 / 共23页
计算机二级VF第二章 数据与数据运算.docx_第4页
第4页 / 共23页
计算机二级VF第二章 数据与数据运算.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

计算机二级VF第二章 数据与数据运算.docx

《计算机二级VF第二章 数据与数据运算.docx》由会员分享,可在线阅读,更多相关《计算机二级VF第二章 数据与数据运算.docx(23页珍藏版)》请在冰豆网上搜索。

计算机二级VF第二章 数据与数据运算.docx

计算机二级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]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1