第3章VFP的常量变量表达式和函数_第1页
第3章VFP的常量变量表达式和函数_第2页
第3章VFP的常量变量表达式和函数_第3页
第3章VFP的常量变量表达式和函数_第4页
第3章VFP的常量变量表达式和函数_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 Visual FoxPro的常量、变量、表达式和函数31 Visual FoxPro的常量一、常量的认识1、常量是表示一个确定的数据,如65.8等。2、Visual FoxPro中,常量的类型有数值型、货币型、字符型、逻辑型、日期型、日期时间型6种。二、数值型常量1、数值型常量表示的是一个具体的数,因此,数值型常量也称为常数。2、数值型常量的表示日常表示法如12、+56、-64.8等。科学表示法1.6E12表示1.61012;1.6E-12表示1.610-12;-1.6E12表示-1.61012;-1.6E-12表示-1.610-12。三、货币型常量1、货币型常量用来表示一个具体的货币

2、值。货币型常量的小数位数最多4位。2、货币型常量的表示如$12,$12.68,-$12.68等。四、字符型常量1、字符型常量用来表示一串字符(数字、符号、汉字统称为字符),因此,字符型常量也称为字符串。2、字符型常量的表示如abcd、abcd、abcd均表示字符串abcd。3、说明表示字符型常量前后的、或称为字符型常量的定界符,它表示字符串的开始和结束,不是字符串的组成内容。字符串的前后定界符必须一致,如abcd等是错误的。当字符串中包含定界符时,必须使用与之不同的定界符作为字符串的定界符,如字符串abcd应表示为abcd或abcd。字符型常量中的字母大小写是区分的,比如abcd和ABCD是不

3、同的两个字符串。注意:其他场合,字母的大小写是不区分的。组成字符串的内容中可以有空格,如ab cd、a bc d、 等都是正确的字符串。定界符中没有任何内容时,也是正确的字符串,这样的字符串称为空串。注意:空串并不是指全部由空格组成的字符串。五、逻辑型常量1、逻辑型常量用来表示一个逻辑值。逻辑值只有两个:真值和假值。2、逻辑型常量的表示真值:.T. 、.t. 、.Y. 、.y.假值:.F. 、.f. 、.N. 、.n.六、日期型常量1、日期型常量用来表示一个日期。2、日期型常量的表示如2010年12月9日可表示为:2010-12-9、2010.12.9、2010/12/9、2010 12 9。

4、说明:这种表示格式不受系统当前日期格式的影响。七、日期时间型常量1、日期时间型常量用来表示一个日期和时间。2、日期时间型常量的表示格式:日期,时间其中,日期的书写格式与日期型常量中的日期格式相同,时间的书写格式有:8:30:30、18:15:25、8:10:30A、8:10:30AM、8:10:30P、8:10:30PM。练习通过显示命令显示你的姓名、所在专业、年龄、月消费金额、出生日期、是否党员(假设真值表示是党员、假值表示不是党员)、我们下次课的日期及时间。32 Visual FoxPro的变量一、变量的认识1、变量是一个用名称(称为变量名)来表示的量,它的值是可改变的。2、变量名一般以字

5、母或汉字开始,其后可以是字母、汉字、数字及某些符号(如下划线)。思考a,aa,b12,c_1,a1B2,2d4,同学们,“同学们”,同学们以上哪些可以作为变量名?3、变量的类型由其值的类型决定。二、给变量赋值1、赋值命令的格式变量=表达式store 表达式 to 变量1,变量2,2、赋值命令举例例1:下列赋值命令是否正确?正确的说出含义,错误的说出原因。Store 88 to a1,a2,a3Store 8+8 to b1,b2,b3Store 8,9,10 to c1,c2,c3d1=d2=d3=55p=10p=”生物工程和环境科学”例2:为变量a赋一个值12,为变量x、y、z赋值34.2,

6、并验证。三、数组变量的另一种使用形式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、数组的使用数组必须先定义,然后

7、才能使用。说明:普通变量在第一次赋值时被自动定义,即无需预先定义。5、数组的定义一维数组的定义:dimension|declare 数组名(下标上限)二维数组的定义:dimension|declare 数组名(第一个下标上限,第二个下标上限)说明:下标上限指下标的最大值。下标下限指下标的最小取值。VFP中,下标的下限规定为1。一个命令可同时定义多个数组,之间用逗号分隔。例:定义一维数组A,有4个元素;定义二维数组B,有3行4列元素。6、有关说明数组定义后,如果未对其赋值,则各元素为假值;给数组赋一个值时,其元素均得到该值,但通常都是为其元素分别赋值(因为各元素值往往不同);数组不直接参加运算,

8、参加运算的是它的元素;二维数组元素也可以只用一个下标来表示。四、变量的有关命令1、list memory命令格式:LIST MEMORY LIKE 通配名 TO PRINTER TO FILE 文件名。功能:显示变量信息。说明:变量信息包括变量名、类型、值等内容。命令格式中,中括号项表示中括号里的内容不是必须有的,看实际情况。这样的项称为选项。思考使用选项时,中括号要否?“LIKE 通配名”选项解释表示只显示和通配名一致的变量信息。没有该选项时,表示显示全部的变量信息。说明:通配名是指包含?或*的变量名,其中,?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。比如a?c表示这样

9、的一些变量:第一位是a,第二为任意,第三位是c;a*c表示这样的一些变量:第一位是a,最后一位是c,中间内容任意。“TO PRINTER”选项解释表示将变量信息同时送打印机打印。“TO FILE 文件名”选项解释表示将变量信息同时存入到指定的文件中。显示全部变量信息时,不仅有我们自己使用的变量,而且包括VFP本身所固有的变量(这些变量称为系统变量,系统变量名均以下划线开始)。当显示的变量信息超出一个屏幕时,前面的信息会滚出屏幕。2、display memory命令格式:DISPLAY MEMORY LIKE 通配名 TO PRINTER TO FILE 文件名。功能:显示变量信息。说明:与li

10、st memory命令的唯一区别在于:当显示的变量信息超出一个屏幕时,该命令能做到一个屏幕一个屏幕地显示。3、clear memory命令格式:clear memory功能:清除所有变量。说明:系统变量是我们清除不掉的。4、release命令格式1:release 变量1,变量2,功能:清除指定的变量。格式2:release all功能:清除所有变量。格式3:release all like 通配名功能:清除和通配名一致的变量。格式4:release all except 通配名功能:清除和通配名不一致的变量。练习一、试用二维数组表示如下矩阵并予以显示:1000010000100001二、用一

11、个下标方式表示上题对角线上各元素,并通过显示命令显示出他们的值。三、分别为变量abc,xb,mbn赋值2012-12-15,.f.,25,然后显示:1、这三个变量的值;2、这三个变量的信息。四、VFP中,能否使用三维数组?五、练习其他有关内容。33 Visual FoxPro的函数一、认识可以通过VFP提供的函数对数据进行运算。通过函数对数据进行运算时,参加运算的叫自变量或参数,运算结果就是函数值。函数的一般使用格式:函数名(自变量,自变量,)注意:VFP中,当一个函数不需要自变量时,圆括号也要写上,如DATE()等。二、常用数值函数1、ABS函数功能:求一个数的绝对值。例1:ABS(67)例

12、2: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位小数。SET DECIMALS TO命令可设置运算结果的小数位数。4、PI函数功能:函数值为圆周率的值。例:PI()5、INT函数功能:返回自变量的整数部分。例1

13、:INT(1.3)例2:INT(1.6)例3:INT(-1.3)例4:INT(-1.6)6、CEILING函数功能:返回大于或等于自变量的最小整数。俗称天花板函数。例1:CEILING(1.3)例2:CEILING(2)例3:CEILING(-1.3)例4:CEILING(-2)7、FLOOR函数功能:返回小于或等于自变量的最大整数。俗称地板函数。例1:FLOOR(1.3)例2:FLOOR(2)例3:FLOOR(-1.3)例4:FLOOR(-2)8、ROUND函数功能:对自变量的值进行四舍五入运算。运算时,第二个自变量表示精确到哪一位。例1:ROUND(345.345,2)例2:ROUND(3

14、45.345,1)例3:ROUND(345.345,0)例4:ROUND(345.345,-1)9、MOD函数功能:求两个整数相除以后的余数。例1:MOD(10,3)例2:MOD(9,3)例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”

15、)三、常用字符处理函数1、LEN函数功能:求字符串的长度。说明:一个汉字长度为2,一个英文字符(包括空格)长度为1。例:LEN(Visual FoxPro教程)2、LOWER函数功能:将自变量中的所有字母转化为小写字母。例:LOWER(Visual FoxPro教程)3、UPPER函数功能:将自变量中的所有字母转化为大写字母。例:UPPER(Visual FoxPro教程)4、TRIM或RTRIM函数功能:将字符型自变量右边空格去掉。例:TRIM( Visual FoxPro )5、LTRIM函数功能:将字符型自变量左边空格去掉。例:LTRIM( Visual FoxPro )6、ALLTRI

16、M函数功能:将字符型自变量左、右两边的空格均去掉。例:ALLTRIM( Visual FoxPro )7、LEFT函数功能:从一个字符串左边开始取子串。例1:LEFT(下午好!,2)例2:LEFT(下午好!,4)8、RIGHT函数功能:从一个字符串右边取子串。例1:RIGHT(下午好!,2)例2:RIGHT(下午好!,4)9、SUBSTR函数功能:从一个字符串中取子串。例1:SUBSTR(下午好!,3,4)例2:SUBSTR(下午好!,3)10、SPACE函数功能:产生指定个数空格组成的字符串。例:SPACE(10)11、REPLICATE函数功能:由指定字符串重复组合产生字符串。例1:REP

17、LICATE(*,10)例2:REPLICATE(ABCD,5)12、AT函数功能:求第一个字符串在第二个字符串中出现的位置。例1:AT(ab,huABygabhgtabagf)例2:AT(ab, huABygabhgtabagf ,2)13、ATC函数功能:求第一个字符串在第二个字符串中出现的位置,但不区分字母大小写。例1:ATC(ab, huABygabhgtabagf )例2:ATC(ab, huABygabhgtabagf ,2)14、OCCURS函数功能:求第一个字符串在第二个字符串中出现的次数。例1:OCCURS(a,abScaBdA)例2:OCCURS(ab,abScaBdA)例

18、3:OCCURS(abc,abScaBdA)15、STUFF函数功能:字符串内容替换。例:STUFF(gtyabku,3,4,AA)思考:在ab的a、b之间插入和。“淮北煤炭师范学院”已改名为“淮北师范大学”了,淮北师范大学的你,能通过STUFF函数,将“淮北煤炭师范学院”中的“煤炭”二字删除、“学院”二字改为“大学”,使得结果是“淮北师范大学”吗?16、CHRTRAN函数功能:字符串内容替换。例1:CHRTRAN(aBCAAC,AC,”12”)例2:CHRTRAN(aBCAAC,AC,”1”)例3:CHRTRAN(aBCAAC,AC,”123”)说明:该函数对汉字进行替换时,会出现异常。例4

19、:CHRTRAN(大家好!,大家,你)例5:CHRTRAN(淮北煤炭师范学院,学院煤炭,大学)17、LIKE函数功能:如果两个字符串一样,则函数值为真值,否则是假值。例1:LIKE(abc,ABC)例2:LIKE(abc,ab)例3:LIKE(abc,abc)说明:前一个字符串中可以出现通配符?和*。?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。例4:LIKE(ab*,ab)例5:LIKE(ab,ab*)四、常用日期、时间函数1、DATE函数功能:返回当前系统日期。例:DATE()2、TIME函数功能:返回当前系统时间。例:TIME()说明:函数值为字符型。3、DATETI

20、ME函数功能:返回当前系统日期及时间。例:DATETIME()思考:函数值什么类型?4、YEAR函数、MONTH函数、DAY函数功能:分别返回日期或日期时间型自变量中的年份、月份和日子。例:分别求出今天的年、月、日。5、HOUR函数、MINUTE函数、SEC函数功能:分别返回日期时间型自变量中的时、分、秒。例:分别求出现在的时、分、秒。五、常用转换函数1、STR函数功能:将数值型自变量转换为字符型。例:STR (123.456)说明:函数值默认10位,不带小数部分。可以加上第2、第3个参数,用来分别表示总位数和小数位数。默认或指定位数比实际位数多时,函数值的左边补以相应个数的空格,以保证总位数

21、;默认或指定位数比实际位数少时,先减少小数位数,还不够时,只好返回默认或指定位数个*。练习:验证以下函数值,看看和自己预想的是否一致。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函数功能:将字符型自变量转换为数值型。例1:VAL(1234.56)例2:VAL(123a)例3:VAL(上午好!)3、DTOC函数功能:将日期型或日期时间型自变量转换为相应的日期字符串。例:DTOC(DATE()说明:转换后的字符串组成和当前日期格式有关,若

22、加上1参数,将转化为YYYYMMDD这种固定格式的字符串,如:DTOC(DATE(),1)4、TTOC函数功能:将日期时间型自变量转换为相应的字符串。例:TTOC(DATETIME()说明:转换后的字符串组成和当前日期时间格式有关,若加上1参数,将转化为YYYYMMDDHHMMSS这种固定格式的字符串,如:TTOC(DATETIME(),1)5、CTOD函数功能:将日期形式的字符串转化为日期型。说明:字符串的日期形式应和当前日期格式一致,否则将转化为空日期。例:CTOD (2010/5/1)6、CTOT函数功能:将日期时间形式的字符串转化为日期时间型。说明:字符串的日期时间形式应和当前日期时间

23、格式一致,否则将转化为空日期时间。例:CTOT (2010/5/1 10:8:30)7、ASC函数功能:求字符型自变量中第一个字符的ASCII码。例:ASC(A)8、CHR函数功能:根据ASCII码求对应的字符。例:CHR(65)六、常用测试函数1、EMPTY函数功能:判断一个数据是否空值,是为真,否则为假。例:EMPTY (0),EMPTY (0),EMPTY (),EMPTY ( ),EMPTY ()2、VARTYPE函数功能:判断自变量的数据类型,返回相应的字母。例:VARTYPE(23),VARTYPE(23)3、BETWEEN函数功能:判断第一个自变量的值是否在后两个自变量之间,是,

24、函数值为真值;不是,函数值为假值。例: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(X10,AAA,BBB)思考:当变量X分别取值10、0、100时,函数IIF(X10,AAA,IIF(X10,BBB,CCC)的值。2、宏替换函数用法:&字符型变量.功能:用字符型变量的值(不带定界符)替换整个宏替换函数。

25、例:假设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位,试予以验证。二、试通过VART

26、YPE函数了解下列函数值的类型:LEN函数、AT函数、OCCURS函数、DATE函数、TIME函数、DATETIME函数、STR函数、VAL函数、DTOC函数、TTOC函数、CTOD函数、CTOT函数、EMPTY函数、BETWEEN函数、VARTYPE函数。三、试用IIF函数写出为变量B赋值的赋值命令,要求:当变量A的值为正时,B赋以值8+20;当变量A的值为负时,B赋以值8-20;当变量A的值为0时,B赋以值8。四、先在命令窗口进行如下赋值:A=CLEB=XC=&B+YX=10Y=20然后在命令窗口输入下列各行并回车,看看现象或结果和自己预想的是否一致:?A,&A?B,&B?C,&C&AAR

27、&A.AR五、练习其他函数。34 Visual FoxPro的表达式一、认识表达式即运算对象(常量、变量、函数)通过运算符号进行运算的式子。不同的运算符号有不同的优先级,运算时,优先级高的运算符号先算,优先级低的运算符号后算,同等优先级的自左至右进行运算。如10+30-20/5。为了让优先级低的运算符先算,应使用圆括号。注意:只能使用圆括号。表达式中的所有符号应并列书写,不能像数学中那样书写。单个运算对象,也认为是表达式(表达式特例)。二、数值表达式1、认识对数值型、货币型数据进行运算的式子,其值为数值型或货币型。2、运算符及优先级*或:乘方运算;*:乘法运算;/:除运算;%:求余运算;+:加

28、运算;-:减运算。例:试写出下列算式的VFP表达式。三、字符表达式1、认识对字符型数据进行运算的式子,其结果仍为字符型。2、运算符及优先级+:将前后两个字符串进行合并,如abc +def,其结果为字符串abc def。-:将前后两个字符串进行合并,但将前面字符串尾部的空格挪到合并后的字符串尾部。如abc -def,其结果为字符串abcdef 。四、日期时间表达式1、认识有日期时间型数据参加运算的式子,其结果类型依情况而定。2、表达式实例日期+数值 或 数值+日期日期-数值注意:不能数值-日期日期-日期日期时间+数值 或 数值+日期时间日期时间-数值注意:不能数值-日期时间日期时间-日期时间五、

29、关系表达式1、认识对类型一致的数据进行比较的式子,如A56,春节圣诞节等。如果比较成立,结果为逻辑值真,否则为假。2、比较符号比较符号又叫关系运算符。关系运算符:(见关系运算符)思考:关系表达式“1 2 3”的值是什么?3、VFP中数据大小的规定除使用$(属于)关系运算符的关系表达式外,关系表达式的运算结果和关系运算符两边数据的大小密切相关,因此,必须清楚VFP中关于数据大小的规定。1)数值型、货币型的大小同算术中大小。2)日期型、日期时间型的大小靠后的日期、时间大。3)逻辑型的大小真大于假。4)字符型的大小单个字符大小的规定当设置为Machine(机器)顺序时字符大小:空格数字字符(0到9)

30、大写字母小写字母;汉字大小:常用汉字以拼音顺序排大小,如李小于张。当设置为PinYin(拼音)顺序时字符大小:空格数字字符(0到9) aAbB;汉字大小:以拼音顺序排大小,如李小于张。当设置为Stroke(笔画)顺序时字符大小:空格数字字符(0到9)aAbB;汉字大小:以书写笔画多少确定大小,笔画多的大。三种顺序的设置方法一:“选项”对话框中设置。方法二:用命令设置:set collate to Machineset collate to PinYinset collate to Stroke字符串大小的规定基本规则自左至右,逐个字符进行比较,直到某个字符能分辨出大小为止。非精确比较方式(默认方式)在前面字符没能区分出大小的情况下,两个字符串的比较以右边字符串的结束而结束。精确比较方式在前面字符没能区分出大小的情况下,两个字符串的比较以最长字符串的结束而结束。说明:关系运算符“=”按当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论