数据和数据运算Word文档格式.docx
- 文档编号:7299321
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:31
- 大小:72.29KB
数据和数据运算Word文档格式.docx
《数据和数据运算Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据和数据运算Word文档格式.docx(31页珍藏版)》请在冰点文库上搜索。
日期型常量的定界符是一对花括号,花括号内以“^”开始,包括年、月、日三部分内容,各部分内容之间用分隔符分隔。
系统默认的分隔符为左斜杠(/),也可以用短横线(-)、圆点(.)或空格。
其严格格式为{^年-月-日},例如{^2011-07-07}。
5.日期时间型常量
日期时间型常量包括日期和时间两部分内容,也要放在一对花括号中,格式为{^<
日期>
<
时间>
}。
<
部分与日期型常量类似;
部分的格式为[HH[:
MM[:
SS]]A/P],其中HH、MM和SS分别代表时、分、秒,A和P分别代表上午和下午。
若指定的小时数大于等于12,则为下午时间。
例如{^2011-07-07,09:
18:
19A}。
6.货币型常量
货币型常量用于表示货币值,其书写格式与数值型常量类似,但是需加一个前置符号“$”。
货币型数据在存储和计算时,采用4位小数。
若小数位不足4位,则补0替代;
若超过4位,则四舍五入取4位。
【例3.2】货币型常量的显示。
在命令窗口中依次输入:
?
$123
$123.34567
工作区中的显示结果分别为:
123.0000
123.3457
货币型常量没有科学计数形式。
3.1.2变量
变量是指在命令操作期间或程序执行过程中其值可以改变的量。
VisualFoxPro6.0的变量有字段变量和内存变量两种。
确定一个变量需要3个要素:
变量名、数据类型和变量值。
每一个变量都有一个名字,可以通过变量名来访问变量。
变量名由字母或汉字开头,由字母、数字、汉字、下划线组成,长度不超过254个字符。
变量名应避免与VisualFoxPro6.0的保留字同名。
如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.或M->
,否则系统会默认访问同名的字段变量。
1.字段变量
字段变量就是表中的字段名,它是表中最基本的数据单元。
字段变量是一种多值变量,一个表有多少条记录,那么该表的每一个字段就有多少个值,当使用字段变量时,其值就是表中当前记录对应字段的值。
在表中,对字段必须先定义后赋值,然后再使用。
对字段变量的定义是在定义表结构时完成的,主要给出变量名、变量数据类型、变量数据宽度等。
字段变量的类型有N、C、D、L、备注型和通用型等。
2.内存变量
VisualFoxPro6.0的内存变量可分为系统内存变量和用户定义的内存变量。
系统内存变量是VisualFoxPro6.0自带的变量,以“_”开头,由系统命名创建并维护,可供用户使用。
系统内存变量不能被删除。
用户定义的内存变量是一种临时工作单元,它独立于表文件而存在,常用来保存在命令或程序执行中临时用到的数据,由用户根据需要创建或删除。
内存变量又包括简单内存变量和数组。
内存变量的类型由赋值给它的数据类型决定,有字符型(C)、数值型(N)、日期型(D)、日期时间型(T)、货币型(Y)和逻辑型(L)等。
1)内存变量的赋值
格式1:
STORE<
表达式>
TO<
内存变量名列表>
格式2:
内存变量名>
=<
说明:
①STORE命令可以将一个值同时赋给若干个内存变量,各内存变量间用逗号隔开。
例如,STORE3TOX,Y的功能是使变量X和Y的值都为3。
“=”号命令一次只能给一个变量赋值。
②进行赋值时,若该变量不存在,则在赋值时被建立;
若该变量已存在,则其值为赋值后的值。
③在执行赋值命令时,首先要计算表达式的值,然后再将其赋值给指定的变量。
内存变量的数据类型取决于表达式值的类型。
可以通过对内存变量重新赋值来改变其值和类型。
【例3.3】内存变量的赋值。
数值型:
年龄=35
字符型:
姓名=“朱小明”
逻辑型:
婚否=.T.
日期型:
出生日期={^1972-11-27}
STORE3+4TOA1,B1,C1
2)内存变量的显示
LISTMEMORY[LIKE<
通配符>
][TOPRINTER/TOFILE<
文件名>
]
DISPLAYMEMORY[LIKE<
功能:
显示内存变量的当前信息,包括变量名、作用域、类型、值。
①选用LIKE选项时,只显示与通配符相匹配的内存变量。
通配符有*和?
,*表示任意多个字符,?
表示任意一个字符。
例如,a*包括ab、abc、ax等,即变量名以字母a开头的所有变量;
a?
包括ab、ax等,即变量名以字母a开头且长度为2的所有变量。
②可选项TOPRINTER或TOFILE<
分别用于在显示内存变量的同时把显示结果送往打印机或存入给定文件名的文件中,文件扩展名为.txt。
③LIST命令一次显示所有内存变量,如果内存变量很多,一屏显示不下,则自动向上滚动,直到显示完毕为止。
DISPLAY命令分屏显示所有内存变量,如果内存变量很多,显示满屏时暂停,按任意键后再继续显示下一屏。
【例3.4】在例3.3的基础上,显示内存变量名为两个字符,且第一个字符任意、第二个字符为1的内存变量,并将满足条件的内存变量保存在文件BL中。
在命令窗口中输入:
LISTMEMORYLIKE?
1TOFILEBL
工作区中的显示结果为:
A1PubN7
B1PubN7
C1PubN7
3)表达式的显示
[表达式清单]
表达式清单
计算表达式清单中所有表达式的值,并输出显示。
①格式1中若无表达式清单,则会输出一个换行符,即光标换到下一行起始处,等待下一批数据的输出。
若格式1中指定了表达式清单,则将计算后的值在下一行的起始处输出。
②格式2是在当前光标处直接输出显示计算后的表达式的值。
【例3.5】在例3.3的基础上,在命令窗口中分别输入下列命令:
A1,B1
姓名,年龄
LISTMEMORYLIKEA?
77朱小明35
A1PubN7
(4)保存内存变量
存储内存变量的文件称为内存变量文件,默认的扩展名为.MEM。
格式:
SAVETO内存变量文件名[ALL[LIKE|EXCEPT<
]]
ALL表示将全部内存变量存入文件中;
ALLLIKE<
表示把内存变量中所有与通配符相匹配的内存变量都存入文件中;
ALLEXCEPT<
表示把与通配符不匹配的全部内存变量存入文件中。
【例3.6】将变量名以字母A开头的所有内存变量存储到文件NCBL中。
SAVETONCBLALLLIKEA*
5)内存变量的恢复
将已存入内存变量文件中的内存变量从文件中读出,装入内存中。
RESTOREFROM内存变量文件名[ADDITIVE]
参数ADDITIVE表示恢复内存变量时,只覆盖原内存中的同名变量,原内存中的其他变量保留。
【例3.7】将内存文件NCBL中的变量恢复并追加到内存。
RESTOREFROMNCBLADDITIVE
6)内存变量的清除
清除内存变量即取消原内存中为变量开辟的内存单元。
(1)清除所有内存变量
CLEARMEMORY
(2)清除指定内存变量
RELEASE内存变量清单[EXTENDED]
RELEASE[ALLLIKE|ALLEXCEPT<
格式1用于程序中时需用可选项[EXTENDED],否则不能删除公共内存变量。
【例3.8】清除内存如下变量。
RELEASE出生日期,婚否&
&
清除内存变量“出生日期”,“婚否”
RELEASEALLLIKE?
1&
清除变量名第二个字符为1的变量
RELEASEALL&
清除所有内存变量
3.数组
在VisualFoxPro中,数组是一组按一定顺序排列的内存变量,数组中的各个变量称为数组元素。
数组元素用数组名及该元素在数组中排列位置的下标一起表示,下标的个数称为数组的维数。
数组要先定义然后再引用。
定义数组的命令格式:
DECLARE/DIMENSION数组名1(下标上界[,<
下标上界…>
])[,…]
定义一维数组或二维数组以及有关数组各下标的上界值,下标上界值默认为1。
如A
(1)、A
(2)是一维数组元素,B(1,2)、B(2,3)是二维数组元素。
数组中各数组元素的取值类型可以互不相同,数组一经定义,它的每个元素就有了逻辑型初值.F.,可用赋值命令给数组元素赋值。
给数组名赋值等同于给该数组的每一个元素赋同一值。
二维数组各元素以行的顺序在内存中存储,它们也可以按排列的相对位置以一维数组元素的形式存取。
【例3.9】定义一维数组A和二维数组B,赋值后显示。
DIMENSIONA(4),B(3,2)&
定义一维数组A和二维数组B
STORE5TOA&
数组A中所有元素赋值为5
B
(1)="
HELLO"
B(4)=365
B(6)=.T.
A
(2)="
HAPPY"
A
(1),A
(2),A(3),A(4)
B(1,1),B(1,2),B(2,1)
B(4),B(5),B(6)
5HAPPY55
HELLO.F..F.
365.F..T.
字段变量是指存放在数据表中的数据项,内存变量是指存放单个数据的内存单元,数组变量是指存放多个数据的内存单元组。
4.系统变量
系统变量是由VisualFoxPro自身提供的内存变量。
系统变量名都以下划线开始,它与一般变量有相同的使用方法。
为避免与系统变量冲突,在定义内存变量和数组时,不要以下划线开始。
3.2运算符与表达式
3.2.1运算符
VisualFoxPro提供5种类型的运算符,包括算术运算符、字符运算符、日期及日期时间运算符、关系运算符和逻辑运算符。
1.算术运算符
算术运算符包括+(加)、-(减)、*(乘)、/(除)、%(取余)、**或^(乘方),其运算级别为先乘方,后乘除和求余,最后为加、减,有括号先算括号。
【例3.10】算术表达式的显示。
5+7&
显示结果为:
12
45/(4+5)&
5
45%(7+5)&
9
2*3**2&
18.00
2.字符运算符
字符运算符包括+(完全连接)、-(不完全连接)和$(包含运算符)。
(1)+(完全连接):
连接两个字符型数据。
(2)-(不完全连接):
将前一字符型数据尾部空格移到后一字符型数据之后,再连接。
(3)$(包含运算符):
前一字符串是否包含于后一字符串,若包含于,则其结果为.T.,否则为.F.。
【例3.11】字符串连接运算(下述表达式中的“”代表空格)。
"
计算机"
+"
考试"
&
计算机考试
-"
BC"
$"
ABC123"
&
.T.
B2"
.F.
3.日期与日期时间运算符
日期运算由算术运算符“+”“-”完成。
“日期+整数”为增加整数天后的日期,“日期-整数”为减少整数天前的日期,“日期-日期”为两日期间的天数。
“日期时间+整数”为增加若干秒后的日期时间,“日期时间-整数”为减少若干秒前的日期时间,“日期时间-日期时间”为两个日期时间之间相差的秒数。
【例3.12】日期与日期时间运算符的使用及输出。
{^2015-07-07}+35&
08/11/15
{^2015-07-07}-{^2015-01-01}&
187
{^2015-07-078:
00:
00}+3600&
07/07/1509:
00AM
4.关系运算符
关系运算符包括>
(大于)、<
(小于)、>
=(大于等于)、<
=(小于等于)、#或!
=或<
>
(不等于)、=(等于)、==(全等于)。
关系运算符由运算的先后顺序和括号来决定运算次序,关系比较的结果为逻辑值。
需注意的是,符号“=”(等于)在此表示比较运算符,不是赋值命令。
1)数值型数据的比较
这种比较按数值大小进行比较。
货币型、浮点型、双精度型、整型都与数值型类似。
2)字符型数据的比较
当两个字符串进行比较时,系统对两个字符串的字符自左向右逐个进行比较,一旦发现对应的两个字符不同,就根据这两个字符的排列顺序决定两个字符串的大小。
比较之前首先要设置字符的排列次序,VisualFoxPro提供了三种字符排序次序。
(1)Machine(机器)次序:
按照机内码顺序排序,即英文字符按照ASCII码值排序,汉字的一级汉字比二级汉字小,一级汉字内按汉语拼音顺序排序。
(2)PinYin(拼音)次序:
按照拼音次序排序。
对于英文字符而言,其顺序为:
空格<
数字<
小写字母<
大写字母。
(3)Stroke(笔画)次序:
无论中文英文,都按照书写笔画的多少排序。
设置排序序列的具体操作:
选择【工具】|【选项】命令,打开【选项】对话框,在【数据】选项卡中的【排序序列】下拉列表框中选择排序序列后,单击【确定】按钮,如图3.1所示。
图3.1设置排序序列
用“==”(全等于)比较两个字符串时,只有当两个字符串完全相同时,运算结果才为.T.,否则为.F.。
用“=”(等于)比较两个字符串时,运算结果与命令SETEXACTON/OFF有关。
(1)SETEXACTON:
在较短的字符串尾部加上空格使两个字符串长度相等,然后再进行比较。
(2)SETEXACTOFF:
只要右边的字符串与左边的字符串的前面部分内容相匹配,结果即为.T.。
SETEXACT对字符串比较的影响如表3.1所示。
表3.1SETEXACT对字符串比较的影响
比较
=(EXACTOFF)
=(EXACTON)
==(EXACTOFF/ON)
abc"
="
ab"
ab"
3)日期型、日期时间型数据的比较
日期型、日期时间型数据按时间的先后顺序确定大小,时间在前的小,时间在后的大。
【例3.13】日期型、日期时间型数据运算举例。
{^2015-09-01,09:
09:
09}<
10}&
{^2015-07-07}>
{^2015-01-01}
5.逻辑运算符
逻辑运算符包括AND(逻辑与)、OR(逻辑或)、NOT(逻辑非),优先级别由高到低为NOT、AND、OR,运算规则如表3.2所示。
表3.2逻辑运算规则
A
B
NOTA
AANDB
AORB
注释
结果与A相反
只有当两个操作数都为真时,结果才为真,否则为假
当两个操作数之一为真时,结果就为真,否则为假
【例3.14】逻辑运算并输出其结果。
3>
5.AND.6<
7&
AB"
XY"
.OR."
3"
35"
&
.NOT."
春"
秋"
3.2.2表达式
表达式是由各种类型的常量、变量、函数和运算符组成的一个有意义的式子。
1.表达式的书写格式
(1)所有内容在一行内写完,写不完时用分号(;
)续行。
(2)所有括号只能使用圆括号。
(3)乘除号不能省略。
(4)分子分母一般要括起来,以免产生歧义。
2.各类运算符的优先级
在每一类运算符中,各个运算符有一定的优先级。
不同类型的运算符也可能出现在同一个表达式中。
圆括号作为运算符,其中的内容作为整个表达式的子表达式,其结果首先要被计算出来,然后先执行算术运算符、字符运算符和日期运算符,其次执行关系运算符,最后执行逻辑运算符。
【例3.15】运算符综合使用举例。
5+4>
9.OR."
X"
Y"
XYZ"
.AND."
56"
23"
12*3>
=50.AND..NOT."
B"
BCA"
3.3常用函数
为了增强系统的功能和方便用户使用,VisualFoxPro提供了许多内部函数,每个函数可实现某项功能或完成某种运算,用户可以随时调用。
函数调用的一般形式为:
函数名([参数表])
其中,参数表用方括号括起来,表示有些函数不需要参数。
本节主要根据功能分类介绍一些常用函数。
根据函数返回值的类型,可以将函数分为数值函数、字符串函数、日期和时间函数、类型转换函数、测试函数等。
3.3.1数值函数
数值函数是指函数值为数值的一类函数,它们的自变量与函数值往往都是数值型数据。
1.求绝对值函数
命令格式:
ABS(数值表达式)
命令功能:
返回指定数值表达式的绝对值。
【例3.16】求绝对值并显示其结果。
ABS(-4*3)&
ABS(2*6)&
2.求算术平方根函数
SQRT(数值表达式)
返回指定数值表达式的算术平方根,数值表达式的值必须为非负数。
【例3.17】求平方根并显示其结果。
SQRT(2*5)&
3.16
3.取整函数
INT(数值表达式)
计算一个数值表达式的值,并返回其整数部分。
【例3.18】取整并显示其结果。
INT(-4*3.2)&
-12
INT(2*6.8)&
13
4.取最大值函数
MAX(数值表达式1,数值表达式2,…)
比较几个表达式的值,返回其中最大的值。
【例3.19】取最大值并显示其结果。
MAX(18,-4*3.2,6)&
18
MAX(MAX(10,2*6.8),-12)&
13.60
5.取余数函数
MOD(数值表达式1,数值表达式2)
求数值表达式1除以数值表达式2的余数。
【例3.20】用求余函数求值并显示其结果。
MOD(12,8)&
4
MOD(3,7)&
3
6.四舍五入函数
ROUND(数值表达式1,数值表达式2)
根据数值表达式2指定的小数位求数值表达式1四舍五入后的值。
【例3.21】对给出的数做四舍五入处理,并显示其结果。
ROUND(365.467,2)&
365.47
ROUND(365.467,4)&
365.4670
ROUND(365.467,0)&
365
ROUND(365.467,-2)&
400
ROUND(365.467,-3)&
若要求4位正整数X的每一位数字,相应的表达式可以是:
个位数字:
MOD(X,10)十位数字:
MOD(INT(X/10),10)
百位数字:
MOD(INT(X/100),10)千位数字:
INT(X/1000)
3.3.2字符串函数
字符串函数是处理字符型数据的函数,其自变量或函数值中至少有一个是字符型数据。
1.宏代换函数&
字符型内存变量>
[.字符表达式]
用于代换一个字符变量的内容,即调用字符型内存变量,表达式中的“.”用于表示宏代换变量的结束。
【例3.22】宏替换函数的使用。
a1="
abc="
happy"
a1,abc&
abchappy
a1&
abc
abcnewyear!
happynewyear!
2.求字符串长度函数
LEN(字符串表达式)
求字符串表达式的值,并返回字符串结果的长度。
【例3.23】求字符串的长度,并显示其结果。
LEN("
爱我中华"
)&
8
北京"
奥运"
)&
3.生成空格函数
SPACE(数值表达式)
产生由数值表达式结果指定数目的空格,返回结果为字符型。
【例3.24】空格函数的使用举例。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 运算