当前位置:文档之家› 第2章 Visual FoxPro数据及数据运算

第2章 Visual FoxPro数据及数据运算

第2章Visual FoxPro 数据及数据运算2.1 数据类型数据类型是数据的基本属性,不同的数据类型有不同的存储方式和运算规则。

下表列出了VFP中的主要数据类型。

VFP的主要数据类型2.2 常量和变量2.2.1 常量常量指在命令操作或程序运行过程中其值始终保持不变的量。

VFP中经常用到的常量类型是字符型、数值型、货币型、日期型、日期时间型、逻辑型和浮动型。

1. 字符型常量字符型常量也叫字符串,它由数字、字母、空格等可打印的字符和汉字组成。

使用时必须用定界符括起来,定界符有:单引号(‘’)、双引号(“”)或方括号([ ])。

2. 数值型常量数值型常量即数学中的常数,包括整数和小数。

3. 货币型常量货币型常量用来表示货币值,其表示方法是在字符前面加一个前置符“$”。

货币数据在存取和计算时采用4位小数,多于4位的,系统将自动将多余的小数四舍五入。

4. 日期型常量日期型常量用来表示一个确定的日期。

其表示方式是用花括号({ })将日期括起来,默认格式为{ mm/dd/yy}例如“{10/15/03}”,表示2003年10月15日。

“/”是系统默认的年、月、日之间分隔符,还可用连字符(-)或句点(.)作为分隔符。

可以通过设置来选用其他的日期格式,比如{ mm/dd/yyyy}和严格的日期格式{ ^yyyy /mm/dd}等。

例如“{10/15/2003}”和“{^2003/10/15}”均表示2003年10月15日。

日期型常量用8个字节存储,其取值范围是{^0001/01/01}~{^9999/12/31}。

5. 日期时间型常量日期时间型常量包括日期和时间两部分内容,使用一对花括号来作为定界符。

其格式为:{<日期> <时间>}。

<日期>部分常量的格式与日期型常量相似,<时间>部分的格式为[hh[:mm[ss]]][a|p]。

其中,hh表示小时(默认为12),mm表示分钟(默认为0),ss表示秒(默认为0),a代表上午,p代表下午,如果不加a或p,默认为a。

6. 逻辑型常量逻辑型常量的取值只有两个:逻辑真(.T.、.t.、.Y.、.y.)和逻辑假(.F.、.f.、.N.、.n.)。

前后两个句点是定界符,它们不能省略。

7. 浮动型常量浮动型常量,也称为浮点型常量。

是数值型常量的浮点格式,例如:23E+8、-4.51E-2等。

2.2.2 变量变量指在命令操作和程序执行过程中其值可以改变的量。

VFP中的变量分为字段变量和内存变量两大类。

1. 字段变量数据表中的每个字段都是一个字段变量,字段名就是字段变量名。

它依附于表,随着表的打开和关闭而在内存中存储和释放。

字段变量的类型有字符型、数值型、货币型、浮点型、双精度型、整型、日期型、日期时间型、逻辑型、备注型、通用型等。

字段变量是一种多值变量,其值随记录指针的变化而不同。

一个数据表文件有多少条记录,字段变量就有多少个值。

2. 内存变量内存变量是一种独立于数据表而存在的变量,它是内存中一个临时的工作单元。

常用来保存所需要的常数、中间结果或对数据表和数据库进行某种处理后的结果等。

内存变量的类型取决于变量值的类型,主要有:字符型、数值型、货币型、日期型、日期时间型、逻辑型和屏幕型。

其中,屏幕型内存变量不能进行运算,只能用于保存屏幕画面。

当内存变量中存放的数据类型改变时,内存变量的类型也随之改变。

当内存变量名和字段变量名相同时,系统优先引用字段变量。

若要引用内存变量,需在内存变量名前加前缀M.或M->。

2.3 运算符和表达式运算符是表示数据之间运算方式的符号,不同类型的数据要用不同的运算符。

表达式是由常量、变量、函数通过运算符连接起来的式子,单个的常量、变量、函数通常也被称为表达式。

表达式通常计算均能得到一个结果,称为表达式的值,按表达式值的类型划分,表达式可分为算术表达式、字符表达式、日期时间表达式、关系表达式和逻辑表达式。

2.3.1 算术运算符和算术表达式算术运算符用于对运算对象进行算术运算,算术表达式由数值型常量、变量、函数和算术运算符组成,其运算结果仍是数值型数据。

算术运算符有如下几种,按优先级由高到低依次是:•( ):括号。

优先级最高。

•-:负号。

优先级次于括号。

•**或^:乘方。

优先级次于负号。

•*、/、%:分别是乘号、除号和取余号,优先级次于乘方。

当表达式中出现同时出现乘、除、取余运算时,它们的优先级相同。

同时出现时,按从左到右顺序运算。

•+、-:加号和减号。

优先级最低。

同时出现时,按从左到右顺序运算。

2.3.2 字符运算符和字符表达式字符运算符用于对两个字符型数据进行连接运算。

字符表达式由字符型常量、变量、函数和字符运算符组成,其运算结果仍为字符型数据,字符运算符主要有两个,其中:+:原样连接两个字符型数据。

-:在进行字符串的连接时,首先将前一个字符串尾部的空格移动到连接后的字符串的尾部。

2.3.3 日期运算符和日期时间型表达式日期运算符用于对日期型、日期时间型或数值型数据进行运算。

日期时间型表达式由日期型或日期时间型常量和日期运算符组成。

有两个符号:用于一个日期和一个整数相加的符号“+”以及用于一个日期减去另一个日期或整数的符号“-”。

其运算结果是日期型、日期时间型或数值型数据。

日期时间表达式的格式有一定限制,不能任意组合,比如,不可以用“+”运算符将两个日期连接起来。

下表列出了正确的日期时间表达式的格式。

正确的日期时间表达式格式2.3.4 关系运算符和关系表达式关系运算符用于完成比较运算,关系表达式由关系运算符、数值表达式、字符表达式、日期时间表达式或货币表达式组成,但运算符两边的数据类型必须一致。

其运算结果为逻辑值.T.或.F.。

2.3.5 逻辑运算符和逻辑表达式逻辑运算符用于对逻辑型数据进行逻辑运算,逻辑表达式由逻辑常量、变量、函数及关系型表达式和逻辑运算符构成,其运算结果为逻辑值.T.或.F.。

逻辑运算符有三个,:.NOT.或NOT或!:逻辑非。

.AND.或AND:逻辑与。

.OR.或OR:逻辑或。

优先等级从高到低依次为:NOT、AND、OR。

不同类型的运算符可以同时出现在同一个表达式中,此时它们的优先级从高到低依次是:算术运算符、字符运算符、日期时间运算符、关系运算符和逻辑运算符。

2.4 常用函数及应用函数是数据运算的一种特殊形式,用来实现某些特定的运算。

在VFP中,函数的表示形式一般是在函数名后跟一对圆括号,圆括号内给出函数的若干个自变量,即运算对象,不过只能有一个运算结果,称为函数值或返回值。

2.4.1 字符处理函数字符处理函数的自变量通常为字符型数据。

常用的字符处理函数如下表所示。

常用字符处理函数2.4.2 数值计算函数常用数值处理函数2.4.3 日期时间函数常用日期时间函数2.4.4 数据类型转换函数常用数据类型转换函数2.4.5 测试函数常用测试函数2.5 考点解析2.5.1考点扫描根据全国计算机等级考试大纲的要求,涉及本章内容的知识点主要有:1. 数据类型、常量、变量和数组。

2. 运算符和表达式。

3. 常用函数:字符处理函数、数值计算函数、日期时间函数、数据类型转换函数、测试函数。

2.5.2出题方向本章所涉及的知识是等级考试中的重要内容,一般在笔试中会出现大量的运算题和一些基本概念是,比如计算表达式的返回值、判断表达式是否书写正确等。

2.5.3 例题分析1.选择题例题1 以下变量名不合法的是_______。

A)常量B)_FoxProC)MM100 D)Visual FoxPro【答案】D)【解析】在VFP中,变量的命名规则是:变量名不得超过128个字符,变量名要以字母、汉字或下划线开头,变量名由字母、汉字、下划线或数字组成。

在答案D)中包含有空格,不符合变量名的定义。

例题2 以下对数组的描述中,错误的是_______。

A)刚定义的数组中每个元素都是没有值的B)使用DIMENSION和DECLARE来定义数组是没有区别的C)V FP中只有一维数组和二维数组两种D)同一数组中的各元素不但可以取不同的值,且数据类型也可以不同【答案】A)【解析】数组是按一定顺序排列的内存变量,用DIMENSION和DECLARE 命令都可以定义一个数组,数组定义后,每个元素都被默认地赋予逻辑值,取值为.F.。

在以后的使用过程中,同一数组中的各元素取值和数据类型均可以不同。

VFP中只能使用一维数组和二维数组。

例题3 下列字符型常量“Visual FoxPro”的表示方法中,错误的是_______。

A)“Visual FoxPro”B){Visual FoxPro}C)…Visual FoxPro‟D)[Visual FoxPro]【答案】B)【解析】字符型常量也叫字符串,它由数字、字母、空格等可打印的字符和汉字组成。

使用时必须用定界符括起来,定界符有:单引号(‟‟)、双引号(””)或方括号([ ])。

例题4 函数LEN(SPACE(10)+ SPACE(5))的结果为_______。

A)5 B)15 C)10 D)20【答案】B)【解析】SPACE( )函数是空格生成函数,生成的是空格字符,“+”用于字符串之间的连接,它将10个空格和5个空格连接在一起,再求其长度。

例题5 V AL(”-165B.67”)的值是_______。

A)-165.67 B)-165B.67C)-165.00 D)-16567【答案】C)【解析】V AL函数将字符型数据转换成数值型数据,其规则是:只能转换字符串中的数字,而且在转换的过程中一旦发现有不是数字的字符,立即停止转换。

在本题中,当转换到字符“B”时,停止转换。

例题6顺序键入以下命令,显示结果是_______。

STORE “10.67” TO XY=INT(&X+10)?YA)21 B)20 C)20.67 D)10.6710【答案】B)【解析】题中的运算符相当于Y=INT(10.67+10),即Y=20.67,取整后结果为20。

例题7将2003年10月19日存入日期型变量X中的正确方法是_______。

A)STORE DTOC(“10/19/2003”) TO XB)STORE “10/19/2003” TO XC)STORE 10/19/2003 TO XD)STORE CTOD(“10/19/2003”) TO X【答案】D)【解析】日期型常量必须使用函数CTOD(<字符表达式>)进行转换。

A)是个错误的语句,DTOC函数里面的参数应该为日期型数据,而“10/19/2003”是字符型数据,B)是将字符常量赋值给X,C)是将数值表达式赋值给变量X。

例题8执行下列命令后显示的结果是_______。

相关主题