1、第三章 数据与数据运算,数据与数据运算,Visual FoxPro数据类型,数据存储,函数,运算符,表达式,例题精解,Visual FoxPro数据类型,返回,数据存储,常量字段变量变量 简单变量VFP数据 内存变量下标变量 (数组元素)系统函数函数自定义函数,返回,数据存储,一、常量常量是指在操作过程中值保持不变的数据。有N,Y,C,D,T,L共6种类型。1、数值(N)型常量:正负整数或小数。可用普通记数法和科学记数法表示。2、货币(Y)型常量:用于表示货币值的常量。以前置符$开头,小数保留4位,超过4位小数,则自动四舍五入。3、字符(C)型常量:用定界符(“ ”, , )括起来的字符串。4
2、、日期(D)型常量,下一页,返回,5、日期时间(T)型常量6、逻辑(L)型常量:只有逻辑真和逻辑假两个值。二、变量 1、变量是指在操作过程中值可以改变的数据。2、变量的含意:计算机中的变量是内存中一个存储区域,变量名是存储区域的标识名,变量值是存放在该存储区域中的数据。3、VFP的变量分类,数据存储,下一页,返回,上一页,4、字段变量是创建表文件时定义的变量。字段变量的类型在创建表文件已经确定。5、内存变量是独立于表文件之外而保存于内存中的变量。内存变量的类型决定于它所存储的数据的类型。,数据存储,返回,上一页,函数,一、 VFP函数的概念与分类1、VFP函数的概念VFP函数实质是一段具有特定
3、功能的程序,只不过程序代码对用户是不可见的,用户只需知道函数的功能和用法。VFP函数在形式与使用上都与数学函数相似。各函数要求参数(自变量)必须是特定类型的数据。函数有一个返回值(函数值),返回值的类型不一定与参数的数据类型一致。,下一页,返回,函数的类型决定于返回值的类型。若不注意到这一点,在构造表达式时,将可能产生数据类型不匹配的错误。二、VFP函数的分类 、按函数提供的方式分类 按提供的方式函数可分为系统函数和自定义函数两大类。、按数据类型分类 按数据类型函数可分为数值函数、字符函数、日期函数、日期时间函数和逻辑函数等。,函数,下一页,返回,上一页,、按函数功能分类按功能函数可分为:转换
4、函数、测试函数和宏替换函数等。,函数,下一页,返回,上一页,运算符,一、算术运算符二、字符连接运算符三、关系运算符(又称比较运算符)四、逻辑运算符,返回,算术运算符,返回,二、字符连接运算符,返回,三、关系运算符(又称比较运算符),下一页,返回,三、关系运算符(又称比较运算符),返回,上一页,四、逻辑运算符,返回,表达式,一、表达式的基本概念 1、表达式的定义:用运算符把常量、变量和函数连接起来的式子。2、构造表达式的规则:只有类型相同的数据之间才能进行运算操作。所以,在构造表达式时,要保证数据类型的统一,以及运算符与数据类型的统一。3、表达式的值:即表达式的运算结果。4、表达式的类型:取决于
5、表达式值的类型。,下一页,返回,5、常量、变量和函数可以看作表达式的简单特例。二、书写表达式的规则1、表达式要写在同一个横行内。 2、在表达式中,运算嵌套关系的表示只用圆括号( ),而不用方括号 和花括号 。 3、乘号*不能省略。三、数值表达式(又称算术表达式)用算术运算符把数值型数据连接起来的式子称为数值表达式。,表达式,下一页,返回,上一页,四、字符表达式:用字符连接运算符(+或-)把字符型数据连接起来的式子称为字符表达式。五、日期时间表达式:用运算符把日期时间型数据连接起来的式子称为日期时间表达式。六、关系表达式:用关系运算符把同类型的表达式(数据)连接而成的式子。关系运算的结果是逻辑值
6、。,表达式,下一页,返回,上一页,关系运算规则:1、N型和Y型数据比较:按值的大小。 2、C型数据比较:英文字符按ASCII码值大小;汉字按内码值大小。 3、D型和T型数据比较:按早晚,越早越小,越晚越大。 4、L型数据比较:.T.大于.F. 5、关系表达式的值是L型数据。七、逻辑表达式:用逻辑运算符将逻辑型数据连接而成的式子。,表达式,下一页,返回,上一页,例题精解,【例31】3E-4是( )。A)字符变量 B)内存变量 C)字符型表达式 D)数值常量解:数值(N)型常量即正负整数或小数。它有两种记数法。 (1)普通记数法:12,24,3.416, (2)科学记数法:5.863E12(表示5
7、.8631012)3.246E-8(表示3.24610-8)答:31 D,下一页,返回,【例32】以下内存变量名中,非法的是( )。A)ABC B)AB_C C)ABC123 D)ABC 123解:内存变量名用于标识内存变量。内存变量名的构成约定如下:可以由字母、汉字、数字和下划线组成;必须以字母或汉字开头;内存变量名中不能嵌入空格;内存变量名长度不超过128个字符。答:32 D,下一页,返回,上一页,【例33】以下正确的日期型数据是( )。A)2004/07/18 B)“2004/07/18“ C)2004-07-18 D)2004-07-18解:A)是数值表达式,B)是字符串常量,C)是严
8、格格式的日期常量,D)缺少字符“”。答:33 C,下一页,返回,上一页,【例34】以下赋值语句中,正确的是( )。A)STORE 8,9 TO X,Y B)8=X C)X=8,Y=9 D)STORE 8 TO X,Y解:A)内存变量赋值命令格式是STORE TO ,从中可以看出:作为赋值的数据只能一个,而不能多个。B)内存变量名不能写在赋值号的右边。C)在VFP中,一行只能写一条命令。D)该命令等价于X=8与Y=8两条命令。答:34 D,下一页,返回,上一页,【例35】以下日期时间表达式中,错误的是( )。A)2004-07-18-DATE() B)2004-07-18 07:36:28AM-
9、10 C)2004-07-18+DATE() D)2004-07-18+500解:A)是-,其值是天数,为N型数据。B)是-,其值是新的日期时间型数据,为T型数据。C)是+,出错。D)是,其值是新的C型常量。答:35 C,下一页,返回,上一页,【例36】以下表达式中,值为假的是( )。A)? 10-20 B)? .T.-,其值是天数6,为N型数据。D)是关系表达式,$是字符串包含运算符。子串包含于算符后的主串中,则返回.T.。答:36 B,下一页,返回,上一页,【例37】以下为数值表达式的是( )。A)10+21=31 B)“2004/07/18“-2002-07-18 C)CTOD(“07/
10、18/04“)-10 D)LEN(SPACE(30)-2解:A)是关系表达式,其值是L型数据.T.。B)是字符表达式,其值是C型数据。C)是日期表达式,-,其值是新的日期,为D型数据。D)是数值表达式。其中SPACE(30)是C型函数,产生30个空格串;LEN(SPACE(30)是N型函数,返回字符串的长度30。答:37 D,下一页,返回,上一页,【例38】执行命令:NA=“财会”,再执行命令:NO=“三班”,若要输出:财会三班,正确的命令是( )。A)? &NA.三班 B)? “&NANO“ C)? “&NA.NO“ D)? “&NA.三班“解:A)等价于:? 财会三班,在这里“财会三班”作为变量名,由于“财会三班”这个变量尚未定义,所以将显示“找不到变量 财会三班”的出错提示。B)是输出字符串常量“&NANO”。C)输出结果是:财会NO,因为&NA被宏替换为财会,但NO作为字符串,照原样输出。D)圆点作为字符型内存变量结束的标记,“&NA.三班”等价于“财会三班”。答:38 D,返回,上一页,