第3章 VFP的常量变量表达式和函数
更新时间:2023-09-30 13:39:01 阅读量: 综合文库 文档下载
- 第3章适应几次就好了推荐度:
- 相关推荐
第3章 Visual FoxPro的常量、变量、表达式和函数
3.1 Visual FoxPro的常量
一、常量的认识
1、常量是表示一个确定的数据,如65.8等。
2、Visual FoxPro中,常量的类型有数值型、货币型、字符型、逻辑型、日期型、日期时间型6种。
二、数值型常量
1、数值型常量表示的是一个具体的数,因此,数值型常量也称为常数。 2、数值型常量的表示 ·日常表示法
如12、+56、-64.8等。 ·科学表示法
1.6E12表示1.6×1012; 1.6E-12表示1.6×10; -1.6E12表示-1.6×1012; -1.6E-12表示-1.6×10-12。
三、货币型常量
1、货币型常量用来表示一个具体的货币值。货币型常量的小数位数最多4位。 2、货币型常量的表示 如$12,$12.68,-$12.68等。
四、字符型常量
1、字符型常量用来表示一串字符(数字、符号、汉字统称为字符),因此,字符型常量也称为字符串。
2、字符型常量的表示
如'abcd'、\、[abcd]均表示字符串abcd。 3、说明
·表示字符型常量前后的'、\或[]称为字符型常量的定界符,它表示字符串的开始和结束,不是字符串的组成内容。字符串的前后定界符必须一致,如'abcd\等是错误的。
·当字符串中包含定界符时,必须使用与之不同的定界符作为字符串的定界符,如字符串ab'cd应表示为\或[ab'cd]。
·字符型常量中的字母大小写是区分的,比如\和\是不同的两个字符串。 注意:其他场合,字母的大小写是不区分的。
·组成字符串的内容中可以有空格,如\ cd\、\ bc d\、\ \等都是正确的字符串。 ·定界符中没有任何内容时,也是正确的字符串,这样的字符串称为空串。 注意:空串并不是指全部由空格组成的字符串。
第1页·共14页
-12
五、逻辑型常量
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}。 说明:这种表示格式不受系统当前日期格式的影响。
七、日期时间型常量
1、日期时间型常量用来表示一个日期和时间。 2、日期时间型常量的表示
格式:{^日期,时间}
其中,日期的书写格式与日期型常量中的日期格式相同,时间的书写格式有:8:30:30、18:15:25、8:10:30A、8:10:30AM、8:10:30P、8:10:30PM。
〖练习〗
通过显示命令显示你的姓名、所在专业、年龄、月消费金额、出生日期、是否党员(假设真值表示是党员、假值表示不是党员)、我们下次课的日期及时间。
3.2 Visual FoxPro的变量
一、变量的认识
1、变量是一个用名称(称为变量名)来表示的量,它的值是可改变的。
2、变量名一般以字母或汉字开始,其后可以是字母、汉字、数字及某些符号(如下划线)。 〖思考〗
a,aa,b12,c_1,a1B2,2d4,同学们,“同学们”,\同学们\以上哪些可以作为变量名?
3、变量的类型由其值的类型决定。
二、给变量赋值
1、赋值命令的格式 变量=表达式
store 表达式 to 变量1,变量2,?? 2、赋值命令举例
例1:下列赋值命令是否正确?正确的说出含义,错误的说出原因。 Store 88 to a1,a2,a3 Store 8+8 to b1,b2,b3
Store 8,9,10 to c1,c2,c3 d1=d2=d3=55
第2页·共14页
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、list memory命令
格式:LIST MEMORY [LIKE 通配名] [TO PRINTER] [TO FILE 文件名]。 功能:显示变量信息。
说明:
·变量信息包括变量名、类型、值等内容。
·命令格式中,中括号项表示中括号里的内容不是必须有的,看实际情况。这样的项称为选项。
〖思考〗使用选项时,中括号要否?
第3页·共14页
·“LIKE 通配名”选项解释
表示只显示和通配名一致的变量信息。没有该选项时,表示显示全部的变量信息。
说明:通配名是指包含?或*的变量名,其中,?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。比如a?c表示这样的一些变量:第一位是a,第二为任意,第三位是c;a*c表示这样的一些变量:第一位是a,最后一位是c,中间内容任意。 ·“TO PRINTER”选项解释
表示将变量信息同时送打印机打印。 ·“TO FILE 文件名”选项解释
表示将变量信息同时存入到指定的文件中。
·显示全部变量信息时,不仅有我们自己使用的变量,而且包括VFP本身所固有的变量(这些变量称为系统变量,系统变量名均以下划线开始)。
·当显示的变量信息超出一个屏幕时,前面的信息会滚出屏幕。
2、display memory命令
格式:DISPLAY MEMORY [LIKE 通配名] [TO PRINTER] [TO FILE 文件名]。
功能:显示变量信息。
说明:与list memory命令的唯一区别在于:当显示的变量信息超出一个屏幕时,该命令能做到一个屏幕一个屏幕地显示。 3、clear memory命令 格式:clear memory
功能:清除所有变量。
说明:系统变量是我们清除不掉的。 4、release命令
格式1:release 变量1,变量2,?? 功能:清除指定的变量。 格式2:release all
功能:清除所有变量。
格式3:release all like 通配名 功能:清除和通配名一致的变量。 格式4:release all except 通配名 功能:清除和通配名不一致的变量。
〖练习〗
一、试用二维数组表示如下矩阵并予以显示: 1 0 0 0 0 0
1 0
0 1
0 0
0 0 0 1
二、用一个下标方式表示上题对角线上各元素,并通过显示命令显示出他们的值。 三、分别为变量abc,xb,mbn赋值{^2012-12-15},.f.,25,然后显示: 1、这三个变量的值; 2、这三个变量的信息。
四、VFP中,能否使用三维数组? 五、练习其他有关内容。
第4页·共14页
3.3 Visual FoxPro的函数
一、认识
·可以通过VFP提供的函数对数据进行运算。
·通过函数对数据进行运算时,参加运算的叫自变量或参数,运算结果就是函数值。 ·函数的一般使用格式:函数名(自变量,自变量,??)
注意:VFP中,当一个函数不需要自变量时,圆括号也要写上,如DATE()等。
二、常用数值函数 1、ABS函数
功能:求一个数的绝对值。 例1:ABS(67) 例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: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)
第5页·共14页
例3:FLOOR(-1.3)
例4:FLOOR(-2) 8、ROUND函数
功能:对自变量的值进行四舍五入运算。运算时,第二个自变量表示精确到哪一位。 例1:ROUND(345.345,2) 例2:ROUND(345.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”)
三、常用字符处理函数 1、LEN函数
功能:求字符串的长度。
说明:一个汉字长度为2,一个英文字符(包括空格)长度为1。 例:LEN(\教程\
2、LOWER函数
功能:将自变量中的所有字母转化为小写字母。 例:LOWER(\教程\3、UPPER函数
功能:将自变量中的所有字母转化为大写字母。 例:UPPER(\教程\4、TRIM或RTRIM函数
功能:将字符型自变量右边空格去掉。 例:TRIM(\ Visual FoxPro \5、LTRIM函数
功能:将字符型自变量左边空格去掉。
例:LTRIM(\ Visual FoxPro \6、ALLTRIM函数
功能:将字符型自变量左、右两边的空格均去掉。
第6页·共14页
例:ALLTRIM(\ Visual FoxPro \7、LEFT函数
功能:从一个字符串左边开始取子串。 例1:LEFT(\下午好!\例2:LEFT(\下午好!\8、RIGHT函数
功能:从一个字符串右边取子串。 例1:RIGHT(\下午好!\例2:RIGHT(\下午好!\9、SUBSTR函数
功能:从一个字符串中取子串。 例1:SUBSTR(\下午好!\例2:SUBSTR(\下午好!\10、SPACE函数
功能:产生指定个数空格组成的字符串。 例:SPACE(10)
11、REPLICATE函数
功能:由指定字符串重复组合产生字符串。 例1:REPLICATE(?*?,10) 例2:REPLICATE(?ABCD?,5) 12、AT函数
功能:求第一个字符串在第二个字符串中出现的位置。 例1:AT(\例2:AT(\13、ATC函数
功能:求第一个字符串在第二个字符串中出现的位置,但不区分字母大小写。 例1:ATC(\例2:ATC(\14、OCCURS函数
功能:求第一个字符串在第二个字符串中出现的次数。 例1:OCCURS(\例2:OCCURS(\例3:OCCURS(\15、STUFF函数
功能:字符串内容替换。
例:STUFF(\思考:
·在\的a、b之间插入\和\。 ·“淮北煤炭师范学院”已改名为“淮北师范大学”了,淮北师范大学的你,能通过STUFF函数,将“淮北煤炭师范学院”中的“煤炭”二字删除、“学院”二字改为“大学”,使得结果是“淮北师范大学”吗?
16、CHRTRAN函数
功能:字符串内容替换。
例1:CHRTRAN(\”12”)
第7页·共14页
例2:CHRTRAN(\”1”)
例3:CHRTRAN(\”123”)
说明:该函数对汉字进行替换时,会出现异常。 例4:CHRTRAN(\大家好!\大家\你\
例5:CHRTRAN(\淮北煤炭师范学院\学院煤炭\大学\17、LIKE函数
功能:如果两个字符串一样,则函数值为真值,否则是假值。 例1:LIKE(\例2:LIKE(\例3:LIKE(\
说明:前一个字符串中可以出现通配符?和*。?表示该位置可以是任意的某个符号,*表示该位置可以是任意多的符号。 例4:LIKE(\例5:LIKE(\
四、常用日期、时间函数 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)
第8页·共14页
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(\例2:VAL(\例3:VAL(\上午好!\3、DTOC函数
功能:将日期型或日期时间型自变量转换为相应的日期字符串。
例:DTOC(DATE())
说明:转换后的字符串组成和当前日期格式有关,若加上1参数,将转化为YYYYMMDD这种固定格式的字符串,如:DTOC(DATE(),1) 4、TTOC函数
功能:将日期时间型自变量转换为相应的字符串。 例:TTOC(DATETIME())
说明:转换后的字符串组成和当前日期时间格式有关,若加上1参数,将转化为YYYYMMDDHHMMSS这种固定格式的字符串,如:TTOC(DATETIME(),1) 5、CTOD函数
功能:将日期形式的字符串转化为日期型。
说明:字符串的日期形式应和当前日期格式一致,否则将转化为空日期。 例:CTOD (\6、CTOT函数
功能:将日期时间形式的字符串转化为日期时间型。
说明:字符串的日期时间形式应和当前日期时间格式一致,否则将转化为空日期时间。 例:CTOT (\7、ASC函数
功能:求字符型自变量中第一个字符的ASCII码。 例:ASC('A') 8、CHR函数
功能:根据ASCII码求对应的字符。 例:CHR(65)
六、常用测试函数 1、EMPTY函数
功能:判断一个数据是否空值,是为真,否则为假。
例:EMPTY (0),EMPTY (\,EMPTY (\,EMPTY (\ \,EMPTY ({}) 2、VARTYPE函数
功能:判断自变量的数据类型,返回相应的字母。
例:VARTYPE(23),VARTYPE('23') 3、BETWEEN函数
功能:判断第一个自变量的值是否在后两个自变量之间,是,函数值为真值;不是,函数值
第9页·共14页
为假值。
例: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的值为正时,B赋以值8+20;当变量A的值为负时,B赋以值8-20;当变量A的值为0时,B赋以值8。 四、先在命令窗口进行如下赋值: A='CLE' B='X' C='&B+Y' X=10
Y=20
然后在命令窗口输入下列各行并回车,看看现象或结果和自己预想的是否一致: ?A,&A ?B,&B ?C,&C
第10页·共14页
正在阅读:
第3章 VFP的常量变量表达式和函数09-30
河南省郑州市中考数学预测试卷05-14
深层渗碳淬火齿轮剥落原因分析05-28
2014-2015高中英语人教版必修4同步练习:Unit 4 Secti04-21
神华宁煤集团董事长王俭会上重要讲话06-09
WAVES效果器L1中文说明书10-12
9、初一下册第十章数据的收集、整理与描述05-28
外国世界遗产之美06-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 常量
- 表达式
- 变量
- 函数
- VFP
- 2019年整理--反贪局长事迹材料
- 期货公司审计参考要点 - 13598
- 病原生物与免疫学复习题2015(有答案)
- 丰田生产方式及其应用
- 放射科辐射安全应急预案
- 四川合江县事业单位2014年招聘职位表
- 数据库课程设计工资管理系统 - 图文
- 计划行为理论的发展及应用(健康行为)
- 《诺曼底号遇难记》教学设计
- 伽玛分布
- 双起升桥吊吊具锚定工况优化 - 图文
- 《应用文写作》教案全集
- 最新ISOTS22163:2017一整套程序文件(轨道交通业质量管理体系)
- 基于Matlab振幅调制与解调及GUI界面设计
- 给妈妈的一封信英语作文
- 扫描仪典型故障及排除
- 2019深圳中考英语词汇测试表
- 人教三上品社教案
- 中小企业融资难的困境与对策
- 2005年版华北电网电气设备交接和预防性试验规程(华北电力集团公司)1