第3章VFP的常量变量表达式和函数Word文档格式.docx
《第3章VFP的常量变量表达式和函数Word文档格式.docx》由会员分享,可在线阅读,更多相关《第3章VFP的常量变量表达式和函数Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
真值和假值。
2、逻辑型常量的表示
真值:
.T.、.t.、.Y.、.y.
假值:
.F.、.f.、.N.、.n.
六、日期型常量
1、日期型常量用来表示一个日期。
2、日期型常量的表示
如2010年12月9日可表示为:
{^2010-12-9}、{^2010.12.9}、{^2010/12/9}、{^2010129}。
说明:
这种表示格式不受系统当前日期格式的影响。
七、日期时间型常量
1、日期时间型常量用来表示一个日期和时间。
2、日期时间型常量的表示
格式:
{^日期,时间}
其中,日期的书写格式与日期型常量中的日期格式相同,时间的书写格式有:
8:
30:
30、18:
15:
25、8:
10:
30A、8:
30AM、8:
30P、8:
30PM。
〖练习〗
通过显示命令显示你的姓名、所在专业、年龄、月消费金额、出生日期、是否党员(假设真值表示是党员、假值表示不是党员)、我们下次课的日期及时间。
3.2VisualFoxPro的变量
一、变量的认识
1、变量是一个用名称(称为变量名)来表示的量,它的值是可改变的。
2、变量名一般以字母或汉字开始,其后可以是字母、汉字、数字及某些符号(如下划线)。
〖思考〗
a,aa,b12,c_1,a1B2,2d4,同学们,“同学们”,"
同学们"
以上哪些可以作为变量名?
3、变量的类型由其值的类型决定。
二、给变量赋值
1、赋值命令的格式
变量=表达式
store表达式to变量1,变量2,……
2、赋值命令举例
例1:
下列赋值命令是否正确?
正确的说出含义,错误的说出原因。
Store88toa1,a2,a3
Store8+8tob1,b2,b3
Store8,9,10toc1,c2,c3
d1=d2=d3=55
p=10
p=”生物工程和环境科学”
例2:
为变量a赋一个值12,为变量x、y、z赋值34.2,并验证。
三、数组——变量的另一种使用形式
1、数组的认识1
普通变量(简称变量)的情况是:
一个变量里只能“放”一个值。
数组变量(简称数组)的情况是:
一个变量里可以“放”多个值。
2、数组的认识2
数组中,之所以能“放”多个值,是因为它有多个元素。
如,假设a是一个数组,其有两个元素,则两个元素分别表示为a
(1)、a
(2)。
假设b是一个有两行两列4个元素的数组,则4个元素分别表示为b(1,1)、b(1,2)、b(2,1)、b(2,2)。
3、数组的认识3
如果一个数组,其元素不分“行”、“列”,则该数组称为一维数组;
如果一个数组,其元素按“行”、“列”排列,则该数组称为二维数组。
4、数组的使用
数组必须先定义,然后才能使用。
普通变量在第一次赋值时被自动定义,即无需预先定义。
5、数组的定义
一维数组的定义:
dimension|declare数组名(下标上限)
二维数组的定义:
dimension|declare数组名(第一个下标上限,第二个下标上限)
下标上限指下标的最大值。
下标下限指下标的最小取值。
VFP中,下标的下限规定为1。
一个命令可同时定义多个数组,之间用逗号分隔。
例:
定义一维数组A,有4个元素;
定义二维数组B,有3行4列元素。
6、有关说明
数组定义后,如果未对其赋值,则各元素为假值;
给数组赋一个值时,其元素均得到该值,但通常都是为其元素分别赋值(因为各元素值往往不同);
数组不直接参加运算,参加运算的是它的元素;
二维数组元素也可以只用一个下标来表示。
四、变量的有关命令
1、listmemory命令
LISTMEMORY[LIKE通配名][TOPRINTER][TOFILE文件名]。
功能:
显示变量信息。
变量信息包括变量名、类型、值等内容。
命令格式中,中括号项表示中括号里的内容不是必须有的,看实际情况。
这样的项称为选项。
〖思考〗使用选项时,中括号要否?
“LIKE通配名”选项解释
表示只显示和通配名一致的变量信息。
没有该选项时,表示显示全部的变量信息。
通配名是指包含?
或*的变量名,其中,?
表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。
比如a?
c表示这样的一些变量:
第一位是a,第二为任意,第三位是c;
a*c表示这样的一些变量:
第一位是a,最后一位是c,中间内容任意。
“TOPRINTER”选项解释
表示将变量信息同时送打印机打印。
“TOFILE文件名”选项解释
表示将变量信息同时存入到指定的文件中。
显示全部变量信息时,不仅有我们自己使用的变量,而且包括VFP本身所固有的变量(这些变量称为系统变量,系统变量名均以下划线开始)。
当显示的变量信息超出一个屏幕时,前面的信息会滚出屏幕。
2、displaymemory命令
DISPLAYMEMORY[LIKE通配名][TOPRINTER][TOFILE文件名]。
与listmemory命令的唯一区别在于:
当显示的变量信息超出一个屏幕时,该命令能做到一个屏幕一个屏幕地显示。
3、clearmemory命令
clearmemory
清除所有变量。
系统变量是我们清除不掉的。
4、release命令
格式1:
release变量1,变量2,……
清除指定的变量。
格式2:
releaseall
格式3:
releasealllike通配名
清除和通配名一致的变量。
格式4:
releaseallexcept通配名
清除和通配名不一致的变量。
一、试用二维数组表示如下矩阵并予以显示:
1000
0100
0010
0001
二、用一个下标方式表示上题对角线上各元素,并通过显示命令显示出他们的值。
三、分别为变量abc,xb,mbn赋值{^2012-12-15},.f.,25,然后显示:
1、这三个变量的值;
2、这三个变量的信息。
四、VFP中,能否使用三维数组?
五、练习其他有关内容。
3.3VisualFoxPro的函数
一、认识
可以通过VFP提供的函数对数据进行运算。
通过函数对数据进行运算时,参加运算的叫自变量或参数,运算结果就是函数值。
函数的一般使用格式:
函数名(自变量,自变量,……)
VFP中,当一个函数不需要自变量时,圆括号也要写上,如DATE()等。
二、常用数值函数
1、ABS函数
求一个数的绝对值。
ABS(67)
ABS(-67+89)
例3:
ABS(-82)
思考:
如何验证函数值?
2、SIGN函数
当自变量值正时,返回1;
当自变量值负时,返回-1;
当自变量值为0时,返回0。
SIGN(56-73)
试用SIGN函数写出为变量B赋值的赋值命令,要求:
当变量A的值为正时,B赋以值8+20;
当变量A的值为负时,B赋以值8-20;
当变量A的值为0时,B赋以值8。
3、SQRT函数
求正数的平方根。
SQRT
(2)
默认计算结果为2位小数。
SETDECIMALSTO命令可设置运算结果的小数位数。
4、PI函数
函数值为圆周率的值。
PI()
5、INT函数
返回自变量的整数部分。
INT(1.3)
INT(1.6)
INT(-1.3)
例4:
INT(-1.6)
6、CEILING函数
返回大于或等于自变量的最小整数。
俗称天花板函数。
CEILING(1.3)
CEILING
(2)
CEILING(-1.3)
CEILING(-2)
7、FLOOR函数
返回小于或等于自变量的最大整数。
俗称地板函数。
FLOOR(1.3)
FLOOR
(2)
FLOOR(-1.3)
FLOOR(-2)
8、ROUND函数
对自变量的值进行四舍五入运算。
运算时,第二个自变量表示精确到哪一位。
ROUND(345.345,2)
ROUND(345.345,1)
ROUND(345.345,0)
ROUND(345.345,-1)
9、MOD函数
求两个整数相除以后的余数。
MOD(10,3)
MOD(9,3)
MOD(11,3)
有负数的求余不考虑。
10、MAX函数
从多个自变量中挑出最大的值。
MAX(1,2,7,4,5)
自变量也可以是非数值型的,但自变量的类型应一致。
如:
MAX(“A”,”ABC”,”BC”)
11、MIN函数
从多个自变量中挑出最小的值。
MIN(1,2,7,4,5)
MIN(“A”,”ABC”,”BC”)
三、常用字符处理函数
1、LEN函数
求字符串的长度。
一个汉字长度为2,一个英文字符(包括空格)长度为1。
LEN("
VisualFoxPro教程"
)
2、LOWER函数
将自变量中的所有字母转化为小写字母。
LOWER("
3、UPPER函数
将自变量中的所有字母转化为大写字母。
UPPER("
4、TRIM或RTRIM函数
将字符型自变量右边空格去掉。
TRIM("
VisualFoxPro"
5、LTRIM函数
将字符型自变量左边空格去掉。
LTRIM("
6、ALLTRIM函数
将字符型自变量左、右两边的空格均去掉。
ALLTRIM("
7、LEFT函数
从一个字符串左边开始取子串。
LEFT("
下午好!
"
2)
4)
8、RIGHT函数
从一个字符串右边取子串。
RIGHT("
9、SUBSTR函数
从一个字符串中取子串。
SUBSTR("
3,4)
3)
10、SPACE函数
产生指定个数空格组成的字符串。
SPACE(10)
11、REPLICATE函数
由指定字符串重复组合产生字符串。
REPLICATE(‘*’,10)
REPLICATE(‘ABCD’,5)
12、AT函数
求第一个字符串在第二个字符串中出现的位置。
AT("
ab"
"
huABygabhgtabagf"
huABygabhgtabagf"
13、ATC函数
求第一个字符串在第二个字符串中出现的位置,但不区分字母大小写。
ATC("
14、OCCURS函数
求第一个字符串在第二个字符串中出现的次数。
OCCURS("
a"
abScaBdA"
abc"
15、STUFF函数
字符串内容替换。
STUFF("
gtyabku"
3,4,"
AA"
在"
的a、b之间插入"
。
“淮北煤炭师范学院”已改名为“淮北师范大学”了,淮北师范大学的你,能通过STUFF函数,将“淮北煤炭师范学院”中的“煤炭”二字删除、“学院”二字改为“大学”,使得结果是“淮北师范大学”吗?
16、CHRTRAN函数
CHRTRAN("
aBCAAC"
AC"
”12”)
”1”)
”123”)
该函数对汉字进行替换时,会出现异常。
大家好!
大家"
你"
例5:
淮北煤炭师范学院"
学院煤炭"
大学"
17、LIKE函数
如果两个字符串一样,则函数值为真值,否则是假值。
LIKE("
ABC"
前一个字符串中可以出现通配符?
和*。
?
ab*"
四、常用日期、时间函数
1、DATE函数
返回当前系统日期。
DATE()
2、TIME函数
返回当前系统时间。
TIME()
函数值为字符型。
3、DATETIME函数
返回当前系统日期及时间。
DATETIME()
函数值什么类型?
4、YEAR函数、MONTH函数、DAY函数
分别返回日期或日期时间型自变量中的年份、月份和日子。
分别求出今天的年、月、日。
5、HOUR函数、MINUTE函数、SEC函数
分别返回日期时间型自变量中的时、分、秒。
分别求出现在的时、分、秒。
五、常用转换函数
1、STR函数
将数值型自变量转换为字符型。
STR(123.456)
函数值默认10位,不带小数部分。
可以加上第2、第3个参数,用来分别表示总位数和小数位数。
默认或指定位数比实际位数多时,函数值的左边补以相应个数的空格,以保证总位数;
默认或指定位数比实际位数少时,先减少小数位数,还不够时,只好返回默认或指定位数个*。
练习:
验证以下函数值,看看和自己预想的是否一致。
STR(123.456,5)
STR(123.456,5,1)
STR(123.456,5,2)
STR(123.456,6,2)
STR(123.456,3,2)
STR(123.456,2)
2、VAL函数
将字符型自变量转换为数值型。
VAL("
1234.56"
123a"
上午好!
3、DTOC函数
将日期型或日期时间型自变量转换为相应的日期字符串。
DTOC(DATE())
转换后的字符串组成和当前日期格式有关,若加上1参数,将转化为YYYYMMDD这种固定格式的字符串,如:
DTOC(DATE(),1)
4、TTOC函数
将日期时间型自变量转换为相应的字符串。
TTOC(DATETIME())
转换后的字符串组成和当前日期时间格式有关,若加上1参数,将转化为YYYYMMDDHHMMSS这种固定格式的字符串,如:
TTOC(DATETIME(),1)
5、CTOD函数
将日期形式的字符串转化为日期型。
字符串的日期形式应和当前日期格式一致,否则将转化为空日期。
CTOD("
2010/5/1"
6、CTOT函数
将日期时间形式的字符串转化为日期时间型。
字符串的日期时间形式应和当前日期时间格式一致,否则将转化为空日期时间。
CTOT("
2010/5/110:
30"
7、ASC函数
求字符型自变量中第一个字符的ASCII码。
ASC('
A'
8、CHR函数
根据ASCII码求对应的字符。
CHR(65)
六、常用测试函数
1、EMPTY函数
判断一个数据是否空值,是为真,否则为假。
EMPTY(0),EMPTY("
0"
),EMPTY("
),EMPTY({})
2、VARTYPE函数
判断自变量的数据类型,返回相应的字母。
VARTYPE(23),VARTYPE('
23'
3、BETWEEN函数
判断第一个自变量的值是否在后两个自变量之间,是,函数值为真值;
不是,函数值为假值。
BETWEEN(3,1,6),BETWEEN(3,6,1),BETWEEN(3,3,6),BETWEEN(3,4,6),BETWEEN(“e”,”a”,”x”)
七、其它常用函数
1、条件函数
用法:
IIF(逻辑型表达式,表达式1,表达式2)
如果逻辑型表达式的值为真,则表达式1的值作为函数值,否则,表达式2的值作为函数值。
函数IIF(X>
10,’AAA’,’BBB’)
当变量X分别取值10、0、100时,函数IIF(X>
10,’AAA’,IIF(X<
10,’BBB’,’CCC’))的值。
2、宏替换函数
&
字符型变量.
用字符型变量的值(不带定界符)替换整个宏替换函数。
假设A=’76+28’,问A和&
A.分别等价于什么?
1)该函数是一个十分有用又十分特殊的函数。
2)宏替换函数出现在字符串中时也还有效,而其它函数出现在字符串中时被当作一个个字符处理。
若A='
ABC'
,则'
X&
A.Y'
等价于'
XABCY'
;
而'
XABS(-86)Y'
却不等价于'
X86Y'
3)宏替换函数最后的小数点是宏替换函数的结束标记。
当宏替换函数和其后的内容能够明确区分清楚时,该结束标记可以省略。
下面的表达式中,哪些宏替换函数的结束标记可以省略?
A.+52,&
A.6-285,’&
A.BCDEFG’。
一、STR函数将数值型自变量转换为字符型时,函数值默认10位,试予以验证。
二、试通过VARTYPE函数了解下列函数值的类型:
LEN函数、AT函数、OCCURS函数、DATE函数、TIME函数、DATETIME函数、STR函数、VAL函数、DTOC函数、TTOC函数、CTOD函数、CTOT函数、EMPTY函数、BETWEEN函数、VARTYPE函数。
三、试用IIF函数写出为变量B赋值的赋值命令,要求:
四、先在命令窗口进行如下赋值:
A='
CLE'
B='
X'
C='
B+Y'
X=10
Y=20
然后在命令窗口输入下列各行并回车,看看现象或结果和自己预想的是否一致:
?
A,&
A
B,&
B
C,&
C
AAR
A.AR
五、练习其他函数。
3.4VisualFoxPro的表达式
表达式即运算对象(常量、变量、函数)通过运算符号进行运算的式子。
不同的运算符号有不同的优先级,运算时,优先级高的运算符号先算,优先级低的运算符号后算,同等优先级的自左至右进行运算。
如10+30-20/5。
为了让优先级低的运算符先算,应使用圆括号。
只能使用圆括号。
表达式中的所有符号应并列书写,不能像数学中那样书写。
单个运算对象,也认为是表达式(表达式特例)。
二、数值表达式
1、认识
对数值型、货币型数据进行运算的式子,其值为数值型或货币型。
2、运算符及优先级
**或^:
乘方运算;
*:
乘法运算;
/:
除运算;
%:
求余运算;
+:
加运算;
-:
减运算。
试写出下列算式的VFP表达式。
三、字符表达式
对字符型数据进行运算的式子,其结果仍为字符型。
将前后两个字符串进行合并,如"
abc"
+"
def"
,其结果为字符串"
abcdef"
将前后两个字符串进行合并,但将前面字符串尾部的空格挪到合并后的字符串尾部。
如"
-"
abcdef"
四、日期时间表达式
有日期时间型数据参加运算的式子,其结果类型依情况而定。
2、表达式实例
日期+数值或数值+日期
日期-数值
不能数值-日期
日期-日期
日期时间+数值或数值+日期时间
日期时间-数值
不能数值-日期时间
日期时间-日期时间
五、关系表达式
对类型一致的数据进行比较的式子,如A<
B,2+3>
56,'
春节'
>
'
圣诞节'
等。
如果比较成立,结果为逻辑值真,否则为假。
2、比较符号
比较符号又叫关系运算符。
关系运算符:
(见关系运算符)
关系表达式“1<
2<
3”的值是什么?
3、VFP中数据大小的规定
除使用$(属于)关系运算符的关系表达式外,关系表达式的运算结果和关系运算符两边数据的大小密切相关,因此,必须清楚VFP中关于数据大小的规定。
1)数值型、货币型的大小
同算术中大小。
2)日期型、日期时间型的大小
靠后的日期、时间大。
3)逻辑型的大小
真大于假。
4)字符型的大小
单个字符大小的规定
当设置为Machine(机器)顺序时
字符大小:
空格<
数字字符(’0’到’9’)<
大写字母<
小写字母;
汉字大小:
常用汉字以拼音顺序排大小,如’李’小于’张’。
当设置为PinYin(拼音)顺序时