当前位置:首页 >> 管理学 >> 第4讲 常量、变量、表达式和函数

第4讲 常量、变量、表达式和函数


常量、变量、 第4讲 常量、变量、表达式和函数
4.1 常量 4.2 变量 4.3 表达式 4.4 常用函数

上一页

下一页

1

4.1 常 量

4.1.1 数值型常量
数值型常量也就是常数,是由数字 ~ 、小数点和正负号构成的数字序列。 数值型常量也就是常数 是由数字0~9、小数点和正负号构成的数字序列。 是由数字 例如: 例如:123,123.45,-123.45等。 , , 等

4.1.2 字符型常量
字符型常量又称字符串,是由英文状态的单引号、 字符型常量又称字符串,是由英文状态的单引号、双引号和方括号括起来的 字符序列,这里的单引号、双引号和方括号又称定界符。 字符序列,这里的单引号、双引号和方括号又称定界符。 例如: 系统开发', 计算机 计算机]等 例如:”Visual FoxPro”, 'VF系统开发 ,[计算机 等。 , 系统开发

4.1.3 日期型常量
日期型常量是使用花括号括起来的日期型数据序列,花括号内包含年、 日期型常量是使用花括号括起来的日期型数据序列,花括号内包含年、月、 日三部分内容,各部分之间用分割符分割,( )(-) ,(/)( )。在 日三部分内容,各部分之间用分割符分割,( )( )和(.)。在Visual )。 FoxPro中日期型常量具有以下两种表示格式: 中日期型常量具有以下两种表示格式: 中日期型常量具有以下两种表示格式

上一页

下一页

返 回

2

4.1 常 量
4.1.1 数值型常量
数值型常量也就是常数,是由数字 ~ 、小数点和正负号构成的数字序列。 数值型常量也就是常数 是由数字0~9、小数点和正负号构成的数字序列。 是由数字 例如:123,123.45,-123.45等。 例如: , , 等

4.1.2 字符型常量
字符型常量又称字符串,是由英文状态的单引号、 字符型常量又称字符串,是由英文状态的单引号、双引号和方括号括起来的字符序 这里的单引号、双引号和方括号又称定界符。 列,这里的单引号、双引号和方括号又称定界符。 例如: 系统开发', 计算机 计算机]等 例如:”Visual FoxPro”, 'VF系统开发 ,[计算机 等。 , 系统开发

4.1.3 日期型常量
日期型常量是使用花括号括起来的日期型数据序列,花括号内包含年、 日期型常量是使用花括号括起来的日期型数据序列,花括号内包含年、月、日三部 分内容,各部分之间用分割符分割,( )(-) ,(/)( )。在 分内容,各部分之间用分割符分割,( )( )和(.)。在Visual FoxPro中日期型常 )。 中日期型常 量具有以下两种表示格式: 量具有以下两种表示格式: 1. 传统的日期格式:{MM/DD/YY}或{MM/DD/YYYY},其中 传统的日期格式: 或 ,其中MM、DD、YY分别表 、 、 分别表 示月、 示月、日、年。 例如: 例如:{04/28/05}或{04/28/2005} 或 2. 严格的日期格式:{^YYYY-MM-DD} 严格的日期格式: 格式中的符号“ 表明该日期格式是严格的 并按照YMD的格式来解释日期如 表明该日期格式是严格的, 格式中的符号“^”表明该日期格式是严格的,并按照 的格式来解释日期如 {^2005-04-28}

上一页

下一页

返 回

3

注意: 注意: Visual FoxPro默认日期格式为严格的日期格式,若要使用传统的日期格 默认日期格式为严格的日期格式, 默认日期格式为严格的日期格式 式须先执行命令SET STRICTDATE TO 0 式须先执行命令 传统的日期格式中年月日的默认顺序为MDY,若要改变可使用命令 传统的日期格式中年月日的默认顺序为 , SET DATE TO YMD/MDY/DMY 传统的日期格式中分割符的默认值为斜杠( ), ),若要改变可使用如下 传统的日期格式中分割符的默认值为斜杠(/),若要改变可使用如下 命令: 命令: 格式: 日期分割符] 格式:SET MARK TO [日期分割符 日期分割符 功能:用于设置日期分隔符, 功能:用于设置日期分隔符,如“-”、“.”等。格式中分隔符也可以用 、 等 单引号或双引号定界,只在信息窗口中按此设定显示, 单引号或双引号定界,只在信息窗口中按此设定显示,在命令窗口中都 可以用。 可以用。 传统的日期格式中年份的默认值为2位,若要显示世纪值即4位数的年份 传统的日期格式中年份的默认值为 位 若要显示世纪值即 位数的年份 值,可使用如下命令: 可使用如下命令: 格式: 格式: SET CENTURY ON/OFF 功能:用语设置显示日期型数据是否显示世纪, 表示年份用 表示年份用4位 功能:用语设置显示日期型数据是否显示世纪,ON表示年份用 位, OFF则只显示 位。 则只显示2位 则只显示

上一页

下一页

返 回

4

【例4.1】在命令窗口输入如下命令,查看各种日期数据的输出结果。 4.1】在命令窗口输入如下命令,查看各种日期数据的输出结果。 解:SET STRICTDATE TO 0 SET CENTURY OFF ?{04/28/05} && ? 号用来显示表达式的值 主屏幕显示 04/28/05 接着再输入命令 SET CENTURY ON ?{04/28/05} 主屏幕显示 图 4-1 错误提示信息 04/28/2005 接着再输入命令 SET STRICTDATE TO 1 ?{04/28/05} 主屏幕提示出错信息如图4 所示。 主屏幕提示出错信息如图4-1所示。 5

上一页

下一页

返 回

4.1.4 日期时间型常量
日期时间型常量是用花括号括起来的日期时间型数据序列, 日期时间型常量是用花括号括起来的日期时间型数据序列,括号内主要包 括日期和时间两部分内容:{<日期 时间>},其中日期部分的表示格式与 括日期和时间两部分内容: 日期>,<时间 , 日期 时间 日期型常量相同,时间部分的表示格式为:[HH[:MM[:SS]]] [A|P] 这里的 日期型常量相同,时间部分的表示格式为: HH、MM、SS分别表示时、分和秒,A(或AM)和P(或PM)分别表示 、 、 分别表示时、分和秒, ( ) ( ) 分别表示时 上午和下午。 上午和下午。 4.2】在主窗口显示日期时间型常量的内容。 【例4.2】在主窗口显示日期时间型常量的内容。 在命令窗口输入命令: 解:在命令窗口输入命令: {^2005-04?{^2005-04-28,11:25:30 A} 主屏幕显示: 主屏幕显示: 04/28/05 11:25:30 AM

4.1.5 逻辑型常量
逻辑型常量只有两个值: 表示“ 逻辑型常量只有两个值:“真”与“假”,用.T.或.t.,.Y.或.y.表示“真”, 或 , 或 表示 表示“ 用.F.或.f.,.N.或.n.表示“假”。 或 , 或 表示 注意:逻辑型常量前后两边的小圆点作为逻辑型常量的定界符不能省略。 注意:逻辑型常量前后两边的小圆点作为逻辑型常量的定界符不能省略。
上一页 下一页 返 回

6

4.2 变 量
变量是指在程序运行过程中可以变化的量,即变量的值是可以随时更改的。 变量是指在程序运行过程中可以变化的量,即变量的值是可以随时更改的。 中的变量可以分为字段变量和内存变量两大类。 在Visual FoxPro中的变量可以分为字段变量和内存变量两大类。 中的变量可以分为字段变量和内存变量两大类

4.2.1 字段变量
字段变量是指数据表中已定义的任意一个字段,由于在一个数据表中, 字段变量是指数据表中已定义的任意一个字段,由于在一个数据表中,字 段的值是随着记录行的变化而变化的,所以称它为变量。 段的值是随着记录行的变化而变化的,所以称它为变量。使用字段变量首 先要建立数据表,在建立表的过程中创建字段变量。 先要建立数据表,在建立表的过程中创建字段变量。

4.2.2 内存变量
内存变量是指内存中的一个存储单元,该单元的名称称为内存变量名, 内存变量是指内存中的一个存储单元,该单元的名称称为内存变量名,该 单元内存放的数据,称为内存变量的值, 单元内存放的数据,称为内存变量的值,而内存变量的类型取决于内存变 量值的类型,它可以是数值型、字符型、逻辑型、日期型和日期时间型。 量值的类型,它可以是数值型、字符型、逻辑型、日期型和日期时间型。 1.内存变量的命名 . 为区分不同的存储单元,对不同的存储单元就应该具有不同的名称, 为区分不同的存储单元,对不同的存储单元就应该具有不同的名称,即每 个内存变量都应该有自己的名称。 个内存变量都应该有自己的名称。在Visual FoxPro中内存变量名可以由字 中 也可以是汉字)、数字和下划线组成,其长度不超过128个字符,且 )、数字和下划线组成 个字符, 母(也可以是汉字)、数字和下划线组成,其长度不超过 个字符 须以字母或下划线开头。 须以字母或下划线开头。
上一页 下一页 返 回

7

2.内存变量的赋值命令 . 格式1 内存变量名>=<表达式> >=<表达式 格式1:<内存变量名>=<表达式> 格式2 <表达式 表达式> <内存变量名表 内存变量名表> 格式2:STORE <表达式> TO <内存变量名表> 功能:计算表达式,并将计算结果赋值给内存变量。 功能:计算表达式,并将计算结果赋值给内存变量。 4.3】定义内存变量并将其赋值。 【例4.3】定义内存变量并将其赋值。 解:在命令窗口输入以下命令: 在命令窗口输入以下命令: Y=500 张三” STORE “张三” TO 姓名 张三 STORE 8 TO M,N 注意:格式2可以同时为多个变量赋相同的值,格式1只能为单个变量赋值。 注意:格式2可以同时为多个变量赋相同的值,格式1只能为单个变量赋值。 例如: M,N=8。 例如:STORE 8 TO M,N 就不能改写为 M,N=8。 3.表达式值的显示命令 . 格式1:? <表达式表> 格式1 <表达式表> 表达式表 格式2 <表达式表 表达式表> 格式2:?? <表达式表> 功能:计算表达式,并将计算结果在主屏幕中显示。 功能:计算表达式,并将计算结果在主屏幕中显示。 区别:格式1自动产生换行符,表示要换行显示结果,而格式2 区别:格式1自动产生换行符,表示要换行显示结果,而格式2不会产生换 行符,表示要在当前行光标所在位置起显示结果。 行符,表示要在当前行光标所在位置起显示结果。
上一页 下一页 返 回

8

注意:系统规定,如果内存变量与打开的当前数据表文件中的字段同名, 注意:系统规定,如果内存变量与打开的当前数据表文件中的字段同名, 在显示时字段变量优先于内存变量,此时若要显示内存变量的内容, 在显示时字段变量优先于内存变量,此时若要显示内存变量的内容,必须 在内存变量名前加写“M→”或 M.”以示区别 以示区别。 在内存变量名前加写“M→ 或“M. 以示区别。 4.内存变量的显示命令 . 格式: 格式:DISPLAY MEMORY 功能:分屏显示显示内存变量的当前信息,包括变量名、作用范围、 功能:分屏显示显示内存变量的当前信息,包括变量名、作用范围、类型 和值。 和值。 【例4.4】分屏显示所有内存变量。 4.4】分屏显示所有内存变量。

[解] 解 在命令窗口中输入以下命令并按Enter键: 在命令窗口中输入以下命令并按 键 DISPLAY MEMORY 说明:教师需要对显示的结果做出必要的解释。 说明:教师需要对显示的结果做出必要的解释。

上一页

下一页

返 回

9

5.内存变量的清除命令 .
所谓内存变量的清除,是指清除内存存储单元中存放的内容, 所谓内存变量的清除,是指清除内存存储单元中存放的内容,并收回该内存变量所 占用的内存空间。它有以下几种命令格式。 占用的内存空间。它有以下几种命令格式。 格式1 格式1:CLEAR MEMORY 格式2 <内存变量名表 内存变量名表> 格式2:RELEASE <内存变量名表> 格式3: <通配符 通配符>] 格式3: RELEASE ALL [LIKE <通配符>] 功能:清除内存变量。 功能:清除内存变量。 区别:格式1清除所有的内存变量,格式2清除指定的内存变量,格式3 区别:格式1清除所有的内存变量,格式2清除指定的内存变量,格式3清除与通配 符相匹配的内存变量。 符相匹配的内存变量。 4.5】清除所有以A 【例4.5】清除所有以A开头的内存变量 解:在命令窗口输入命令 RELEASE ALL LIKE A*

6.宏替换命令 .
格式:&<字符型内存变量>[.] 格式:&<字符型内存变量>[.] 字符型内存变量 功能:用字符型内存变量中存放的内容取代"&"号及其后面的变量名,[.]中的圆 "&"号及其后面的变量名 功能:用字符型内存变量中存放的内容取代"&"号及其后面的变量名,[.]中的圆 点用作结束的标识。 点用作结束的标识。 4.6】 的值。 【例4.6】设L=8,M=5,N="L+M",求表达式 , , ,求表达式5+&N的值。 的值 解: ? 5+&N 主屏幕显示结果为: 主屏幕显示结果为:18
上一页 下一页 返 回

10

4.2.3 数组
1.概念 数组是按一定顺序排列的一组内存变量,在内存中用一串连续的区域来存放, 数组是按一定顺序排列的一组内存变量,在内存中用一串连续的区域来存放, 数组用统一的名称来表示,称为数组名, 数组用统一的名称来表示,称为数组名,数组中的每一个内存变量都称为数组的元 数组元素用数组名及它在数组中的排列标号(简称下标)来表示。例如:A(1)、 素,数组元素用数组名及它在数组中的排列标号(简称下标)来表示。例如:A(1)、 A(2)、A(3)、A(4)其中 表示数组名, 其中A 为下标。 A(2)、A(3)、A(4)其中A表示数组名,1、2、3、4为下标。根据下标的个数又可以 把数组分为一维数组和二维数组,例如A(3)表示一维数组、A(3,4)表示二维数组 A(3)表示一维数组 表示二维数组。 把数组分为一维数组和二维数组,例如A(3)表示一维数组、A(3,4)表示二维数组。 2.数组的定义 与内存变量不同,数组在使用之前必须先定义后使用,具体定义格式如下: 与内存变量不同,数组在使用之前必须先定义后使用,具体定义格式如下: 格式1 <数组名>(<下标 数组名>(<下标1> [,<下标 下标2>]) 格式1:DIMENSION <数组名>(<下标1> [,<下标2>]) 格式2: <数组名>(<下标 数组名>(<下标1> [,<下标 下标2>]) 格式2: DECLARE <数组名>(<下标1> [,<下标2>]) 注意: 数组元素的下标从1开始,每个数组元素的默认值为逻辑假。 注意: 数组元素的下标从1开始,每个数组元素的默认值为逻辑假。 3.数组的赋值 数组的赋值和内存变量赋值方法相同,例如: "张三 张三" 数组的赋值和内存变量赋值方法相同,例如:A(1) = "张三",当省略下标时表示 将一个值赋值给数组的所有元素,例如:A=15。 将一个值赋值给数组的所有元素,例如:A=15。 FoxPro系统中 数组经常用于和表交换数据, 系统中, 在Visual FoxPro系统中,数组经常用于和表交换数据,使用方法在以后有关内容 中介绍。 中介绍。

上一页

下一页

返 回

11

4.3 表达式
表达式是指用括号和运算符把常量、变量以及函数连接而成的式子, 表达式是指用括号和运算符把常量、变量以及函数连接而成的式子,表达 式具有计算、判断和数据类型转换等作用。 式具有计算、判断和数据类型转换等作用。

4.3.1 运算符
运算符是对数据进行各种操作的一种符号,又称操作符。 运算符是对数据进行各种操作的一种符号,又称操作符。在Visual FoxPro 中运算符分为4 算术运算符、字符运算符、 中运算符分为4类,即:算术运算符、字符运算符、关系运算符和逻辑运算 符。 1.算术运算符 . 算术运算符是对数值型数据进行操作的一种符号, FoxPro中的算 算术运算符是对数值型数据进行操作的一种符号,在Visual FoxPro中的算 术运算符如表4 1所示。 术运算符如表4—1所示。 (),** ^,*、 **、 (),**、^,*、/、%,+、假定变量X的值为5 计算表达式3 X+5 的值。 【例4.7】假定变量X的值为5,计算表达式3+4X+53的值。 *X+5 解:? 3+4*X+5^3 主屏幕显示结果为: 主屏幕显示结果为: 148. 148.00 注意:表达式中4 之间的乘号不能省略。 注意:表达式中4和X之间的乘号不能省略。
上一页 下一页 返 回

12

作为一种特例, 作为一种特例,加法和减法运算符也可以用于日期型和日期时间 型数据的操作,其操作规则如下: 型数据的操作,其操作规则如下: 日期型数据+数值(天数) &&结果为日期型数据加上数值后 日期型数据+数值(天数) &&结果为日期型数据加上数值后 的一个新日期 日期型数据-数值(天数) &&结果为日期型数据减去数值后 日期型数据-数值(天数) &&结果为日期型数据减去数值后 的一个新日期 日期型数据1 日期型数据2 &&结果为两个日期间相差的天数 日期型数据1-日期型数据2 &&结果为两个日期间相差的天数 日期时间型数据+数值(秒数)&&结果为日期时间型数据加上 日期时间型数据+数值(秒数)&&结果为日期时间型数据加上 数值后的一个新日期时间 日期时间型数据-数值(秒数) &&结果为日期型数据减去数 日期时间型数据-数值(秒数) &&结果为日期型数据减去数 值后的一个新日期 日期时间型数据1 日期时间型数据2 &&结果为两个日期时 日期时间型数据1-日期时间型数据2 &&结果为两个日期时 间相差的秒数 两个日期型或日期时间型数据不能相加
上一页 下一页 返 回

13

【例4.8】日期型数据操作举例。 日期型数据操作举例。 {^2005 04-18}+ 2005}+10 解:? {^2005-04-18}+10 主屏幕显示结果为: 04/28/ 主屏幕显示结果为: 04/28/05 {^2005 04-18} 2005? {^2005-04-18}-10 主屏幕显示结果为: 04/08/ 主屏幕显示结果为: 04/08/05 {^2005 04-28} {^2005 04-18} 20052005? {^2005-04-28}-{^2005-04-18} 主屏幕显示结果为: 主屏幕显示结果为: 10 {^2005 04-28}+{^2005-04-18} 2005}+{^2005 ? {^2005-04-28}+{^2005-04-18} 主屏幕显示“操作符/操作数类型不匹配”的错误信息。 主屏幕显示“操作符/操作数类型不匹配”的错误信息。

上一页

下一页

返 回

14

2.字符运算符 . 字符运算符是对字符串进行连接操作的一种符号, 字符运算符是对字符串进行连接操作的一种符号,在Visual FoxPro 中的字符运算符如表4-2所示 所示。 中的字符运算符如表 所示。 +:将加号前后的字符串连接起来组成一个新的字符串。 :将加号前后的字符串连接起来组成一个新的字符串。 -:先将减号前字符串尾部的空格移至减号后字符串的尾部,然后 :先将减号前字符串尾部的空格移至减号后字符串的尾部, 再将两个字符串连接组成一个新的字符串。 再将两个字符串连接组成一个新的字符串。 【例4.9】在命令窗口分别输入M="FOX 】在命令窗口分别输入 的值。 和M-N的值。 的值 解:在命令窗口输入 ? M+N 主屏幕显示为: 主屏幕显示为: 接着再输入: 接着再输入: 主屏幕显示为: 主屏幕显示为:
上一页

"和N="PRO",求M+N 和 ,

FOX PRO ? M-N FOXPRO
下一页 返 回

15

3.关系运算符 . 关系运算符: 关系运算符: 小于、<=小于等于 小于等于、 大于、>=大于等于 大于等于、 等于、<>或 !=不 <小于、<=小于等于、>大于、>=大于等于、=等于、<>或#或!=不 等于、==字符串精确比较 字符串精确比较、 字符串包含测试。 等于、==字符串精确比较、$字符串包含测试。 两个数据的比较规则: 两个数据的比较规则: 两个数值型数据比较时,按值的大小直接比较。 (1) 两个数值型数据比较时,按值的大小直接比较。 4.10】在命令窗口分别输入A=5 B=8,分别求表达式A>B A=5和 A>B, 【例4.10】在命令窗口分别输入A=5和B=8,分别求表达式A>B, A=B,A=A+1的值 的值。 A=B,A=A+1的值。 在命令窗口输入: 解:在命令窗口输入: A>B,A=B,A=A+1 ? A>B,A=B,A=A+1 主屏幕显示结果都为逻辑假. 主屏幕显示结果都为逻辑假.F.

上一页

下一页

返 回

16

两个日期型数据比较时,按年、 日顺序比较。 (2) 两个日期型数据比较时,按年、月、日顺序比较。 例如:?{^2005-04-28}>{^2005-04显示结果为逻辑假.T. 例如:?{^2005-04-28}>{^2005-04-09} 显示结果为逻辑假.T. 两个字符型数据比较时,英文字符按ASCII码值的大小比较, ASCII码值的大小比较 (3) 两个字符型数据比较时,英文字符按ASCII码值的大小比较, 汉字按机内码值比较,即对常用的一级汉字而言, 汉字按机内码值比较,即对常用的一级汉字而言,根据它们的拼 音顺序决定大小。 音顺序决定大小。 注意: 注意: ①字符比较具有方向性。 字符比较具有方向性。 ②字符串比较可以有非精确比较(使用比较符“=”)和精确比 字符串比较可以有非精确比较(使用比较符“ ) 使用比较符“==”)两种形式,若要使比较符“ 也进行精 较(使用比较符“== )两种形式,若要使比较符“=”也进行精 确比较,必须使用命令SET ON/OFF进行设置 进行设置。 确比较,必须使用命令SET EXACT ON/OFF进行设置。

上一页

下一页

返 回

17

【例4.11】在命令窗口进行如下关 4.11】 系运算的操作,试给出操作结果。 系运算的操作,试给出操作结果。 解:? "ABC">"ACD" 主屏幕显示结果为: 主屏幕显示结果为: .F. "张三">"李四 张三">"李四" ? "张三">"李四" 主屏幕显示结果为: 主屏幕显示结果为: .T. ? "ABC"="AB" 主屏幕显示结果为: 主屏幕显示结果为: .T. ? "AB"="ABC" 主屏幕显示结果为: 主屏幕显示结果为: .F. ? "AB"$"XABY" 主屏幕显示结果为: 主屏幕显示结果为: .T. ? "XABY"$"AB" 主屏幕显示结果为: 主屏幕显示结果为: .F.

【例4.12】字符串精确比较示例。 4.12】字符串精确比较示例。 解:在命令窗口输入以下命令 SET EXACT OFF ? "ABC"="AB" 主屏幕显示结果为: 主屏幕显示结果为: .T. 在命令窗口输入以下命令 SET EXACT ON ? "ABC"="AB" 主屏幕显示结果为: 主屏幕显示结果为: .F.

上一页

下一页

返 回

18

4.逻辑运算符 . 逻辑运算符是对逻辑型数据进行操作的一种符号,其运算结果 逻辑运算符是对逻辑型数据进行操作的一种符号, 仍为逻辑值, FoxPro中的逻辑运算符如表 中的逻辑运算符如表4 所示。 仍为逻辑值,在Visual FoxPro中的逻辑运算符如表4-5所示。 NOT.或 逻辑非; .AND.—逻辑与 逻辑与; .OR.—逻辑或 .NOT.或!—逻辑非; 逻辑非 .AND. 逻辑与; .OR. 逻辑或 高 ←——————————————————→ 低 → 逻辑运算规则的定义: 逻辑运算规则的定义: 为真时结果为假,反之结果为真。 .NOT.A 当A为真时结果为假,反之结果为真。 都为真时结果为真,否则结果为假。 A.AND.B 当A和B都为真时结果为真,否则结果为假。 当中有一个为真时结果就为真,只有A A.OR.B 当A和B当中有一个为真时结果就为真,只有A和B 都为假时结果才为假。 都为假时结果才为假。

上一页

下一页

返 回

19

4.3.2 运算符的优先级别
运算符 () 算术运算符 字符运算符 关系运算符 逻辑运算符 优先级别 一级 二级 三级 四级 五级
低 高

级别示意图

计算表达式3^2>6.AND.(“张三”$“张” .OR. 6<>4+2)的值。 张三” 张 的值。 例4.13 计算表达式 张三 的值

上一页

下一页

20

4.3.3 表达式的值及表达式的类型 根据表达式的值可以将表达式划分为以下几种类型, 根据表达式的值可以将表达式划分为以下几种类型,即:数值型 表达式、字符型表达式、日期及日期时间型表达式和逻辑型表达 表达式、字符型表达式、 式。 以上各种表达式中逻辑表达式格外重要,因为在 以上各种表达式中逻辑表达式格外重要,因为在Visual FoxPro中 中 很多命令中都有<条件 条件>,这里的<条件 就是逻辑表达式。 条件>就是逻辑表达式 很多命令中都有 条件 ,这里的 条件 就是逻辑表达式。 4.14】查询在1981年7月1日之前出生 高考分数大于560并 日之前出生、 【例4.14】查询在1981年7月1日之前出生、高考分数大于560并 且性别为"男 的学员 构造查询条件表达式。 的学员, 且性别为 男"的学员,构造查询条件表达式。 条件表达式为: 解:条件表达式为: 出生日期<={^1981 07-01}.AND.高考分数>560.AND.性别 <={^1981高考分数>560.AND.性别=" 出生日期<={^1981-07-01}.AND.高考分数>560.AND.性别=" 男"

上一页

下一页

返 回

21

4.4 常用函数
4.4.1 数值函数
数值函数是指函数值为数值的一类函数。 数值函数是指函数值为数值的一类函数。 1.绝对值函数 . 格式:ABS(数值表达式 数值表达式) 格式:ABS(数值表达式) 功能:返回数值表达式的绝对值。 功能:返回数值表达式的绝对值。 【例4.15】从略 】 2. 2.取整函数 格式:INT(数值表达式 数值表达式) 格式:INT(数值表达式) 功能:返回指定数值表达式的整数部分。 功能:返回指定数值表达式的整数部分。 的整数值。 【例4.16】求表达式 】求表达式5.85的整数值。 的整数值 解:? INT(5.85) 主屏幕显示结果为: 主屏幕显示结果为: 5 注意:取整函数不具有四舍五入功能。 注意:取整函数不具有四舍五入功能。

上一页

下一页

返 回

22

3.四舍五入函数 . 格式:ROUND(数值表达式1,数值表达式 数值表达式1,数值表达式2) 格式:ROUND(数值表达式1,数值表达式2) 功能:对数值表达式1进行四舍五入,按数值表达式2 功能:对数值表达式1进行四舍五入,按数值表达式2给定的位数保留小数 的位数。 的位数。 做各种四舍五入操作。 【例4.17】对数 】对数123.456做各种四舍五入操作。 做各种四舍五入操作 解:? ROUND(123.456,2),ROUND(123.456,1),ROUND(123.456,0) 主屏幕显示结果为 123.46 123.5 123 ROUND(123.456,-1),ROUND(123.456,ROUND(125.456,? ROUND(123.456,-1),ROUND(123.456,-2), ROUND(125.456,-1), 主屏幕显示结果为: 主屏幕显示结果为: 120 100 123 4.平方根函数 . 格式:SQRT(数值表达式) 格式:SQRT(数值表达式) 数值表达式 功能:返回指定数值表达式的平方根值。 功能:返回指定数值表达式的平方根值。 5.圆周率函数 . 格式: 格式:PI() 功能:返回圆周率∏的值。 功能:返回圆周率∏的值。
上一页 下一页 返 回

23

6.求余数函数 . 格式:MOD(数值表达式1,数值表达式 数值表达式1,数值表达式2) 格式:MOD(数值表达式1,数值表达式2) 功能:返回<数值表达式1>除以<数值表达式2>的余数。 功能:返回<数值表达式1>除以<数值表达式2>的余数。 1>除以 2>的余数 求余规则:余数符号与除数的符号相同,其绝对值小于除数的绝对值, 求余规则:余数符号与除数的符号相同,其绝对值小于除数的绝对值,且 满足等式 被除数=除数 除数× 被除数 除数×商+余数 余数 4.18】用余数函数求两个数相除的余数。 【例4.18】用余数函数求两个数相除的余数。 MOD(5,3),MOD(-5,解:? MOD(5,3),MOD(-5,-3) 主屏幕显示结果为: 主屏幕显示结果为: 2 -2 MOD(5,-3),MOD(? MOD(5,-3),MOD(-5,3) 主屏幕显示结果为: 主屏幕显示结果为: -1 1 7.求最大值和最小值函数 . 格式:MAX(表达式表 表达式表) 功能:MAX返回所有表达式表值的最大值 返回所有表达式表值的最大值。 格式:MAX(表达式表) 功能:MAX返回所有表达式表值的最大值。 MIN(表达式表) MIN(表达式表) 功能:MIN返回所有表达式表值的最小值。 功能:MIN返回所有表达式表值的最小值。 表达式表 返回所有表达式表值的最小值 注意:这里的表达式必须为同类的表达式。 注意:这里的表达式必须为同类的表达式。

上一页

下一页

返 回

24

【例4.19】求以下数据的最大值和最小值。 】求以下数据的最大值和最小值。 15, 2,15,3 "2","15","13" 语文" 数学" 计算机" "语文","数学","计算机" 解:? MAX(2,5,3),MIN(2,5,3) 主屏幕显示结果为 5 2 ? MAX("2","15","13"),MIN("2","15","13") 主屏幕显示结果为 2 13 MAX("语文","数学","计算机"),MIN("语文","数学","计算机 语文","数学","计算机"),MIN("语文","数学","计算机") ? MAX("语文","数学","计算机"),MIN("语文","数学","计算机") 主屏幕显示结果为: 主屏幕显示结果为: 语文 计算机

上一页

下一页

返 回

25

4.4.2 字符函数
字符函数处理的对象通常为字符型表达式, 字符函数处理的对象通常为字符型表达式,但函数的返回值不一 定是字符型数据。 定是字符型数据。 1.求字符串长度函数 . 格式:LEN(字符表达式 字符表达式) 格式:LEN(字符表达式) 功能:返回指定字符表达式的长度, 功能:返回指定字符表达式的长度,即字符表达式所包含的字符 个数。 个数。 注意:一个汉字占两个字符的宽度。 注意:一个汉字占两个字符的宽度。 计算机"的长度 【例4.20】求字符串 】求字符串"IBM计算机 的长度。 计算机 的长度。 LEN("IBM计算机 计算机") 解:? LEN("IBM计算机") 主屏幕显示结果为: 主屏幕显示结果为:9 2.空格函数 . 格式:SPACE(数值表达式 数值表达式) 格式:SPACE(数值表达式) 功能:产生指定长度的空格字符串,长度由数值表达式的值确定。 功能:产生指定长度的空格字符串,长度由数值表达式的值确定。

上一页

下一页

返 回

26

3.删除字符串前后空格的函数 . 格式:TRIM(字符表达式 字符表达式) RTRIM(字符表达式 字符表达式) 格式:TRIM(字符表达式)或RTRIM(字符表达式) LTRIM(字符表达式 字符表达式) LTRIM(字符表达式) ALLTRIM(字符表达式 字符表达式) ALLTRIM(字符表达式) 功能:TRIM删除字符串右边的空格 即字符串末尾的空格。 删除字符串右边的空格, 功能:TRIM删除字符串右边的空格,即字符串末尾的空格。 LTRIM删除字符串左边的空格 删除字符串左边的空格, LTRIM删除字符串左边的空格,既字符串前导的空格 ALLTRIM删除字符串两端的空格 删除字符串两端的空格。 ALLTRIM删除字符串两端的空格。 注意:以上均不能删除字符串中间的空格。 注意:以上均不能删除字符串中间的空格。 尾部空格后, 【例4.21】先删除字符串“计算机 】先删除字符串“ ”尾部空格后,再计算它 的长度。 的长度。 LEN(TRIM(“计算机 解:? LEN(TRIM( 计算机 ”)) 主屏幕显示结果为: 主屏幕显示结果为: 6

上一页

下一页

返 回

27

4.取子串函数 . 格式:LEFT(字符表达式 长度) 字符表达式, 格式:LEFT(字符表达式,长度) RIGHT(字符表达式 长度) 字符表达式, RIGHT(字符表达式,长度) SUBSTR(字符表达式 字符表达式, 长度]) SUBSTR(字符表达式,起始位置 [,长度]) 功能:LEFT对字符串从左端开始取指定 长度"的子串作为函数值。 对字符串从左端开始取指定" 功能:LEFT对字符串从左端开始取指定"长度"的子串作为函数值。 RIGHT对字符串从右端开始取指定 长度" 对字符串从右端开始取指定" RIGHT对字符串从右端开始取指定"长度"的子串作为函数 值。 SUBSTR对字符串从指定的 起始位置"开始取指定"长度" 对字符串从指定的" SUBSTR对字符串从指定的"起始位置"开始取指定"长度"的 子串作为函数值,若省略"长度"则从指定的"起始位置" 子串作为函数值,若省略"长度"则从指定的"起始位置"开始取到 最后一个字符的子串作为函数值。 最后一个字符的子串作为函数值。 程序设计"中分别截取子串 【例4.22】在字符串 】在字符串"Visual FoxPro程序设计 中分别截取子串 程序设计 "Visual"、"程序设计 和"FoxPro"。 程序设计"和 、 程序设计 。 FoxPro程序设计 程序设计",6) 解:? LEFT("Visual FoxPro程序设计",6) 主屏幕显示结果为: 主屏幕显示结果为: Visual
上一页 下一页 返 回

28

FoxPro程序设计 程序设计",8) ? RIGHT("Visual FoxPro程序设计",8) 主屏幕显示结果为: 主屏幕显示结果为: 程序设计 FoxPro程序设计 程序设计",8,6) ? SUBSTR("Visual FoxPro程序设计",8,6) 主屏幕显示结果为: 主屏幕显示结果为: FoxPro 5.求子串位置函数 .
格式:AT(字符表达式1 字符表达式2 [,数值表达式] 格式:AT(字符表达式1,字符表达式2 [,数值表达式])

功能:求"字符表达式1"在"字符表达式2"中的开始位置,未找到 功能: 字符表达式1"在 字符表达式2"中的开始位置, 1" 2"中的开始位置 时结果为0 数值表达式]用于表明"字符表达式1" 1"是第几次 时结果为0, [,数值表达式]用于表明"字符表达式1"是第几次 出现的,若省略默认为1 出现的,若省略默认为1。 程序设计"中的 【例4.23】求子串 】求子串"FoxPro"在"Visual FoxPro程序设计 中的开始 在 程序设计 中的开始 位置。 位置。 FoxPro程序设计 程序设计") 解:? AT("FoxPro","Visual FoxPro程序设计") 主屏幕显示结果为: 主屏幕显示结果为: 8
上一页 下一页 返 回

29

4.4.3 日期和时间函数
日期和时间函数的自变量一般是日期表达式或日期时间表达式, 日期和时间函数的自变量一般是日期表达式或日期时间表达式, 但函数的返回值不一定是日期型或日期时间型。 但函数的返回值不一定是日期型或日期时间型。 1.系统日期和时间函数 . 格式: 格式:DATE() TIME() DATETIME() 功能:DATE()返回当前系统的日期 函数值为日期型。 返回当前系统的日期, 功能:DATE()返回当前系统的日期,函数值为日期型。 TIME()以24小时制返回当前系统的时间 函数值为字符型。 小时制返回当前系统的时间, TIME()以24小时制返回当前系统的时间,函数值为字符型。 DATETIME()返回当前系统的日期及时间 返回当前系统的日期及时间, DATETIME()返回当前系统的日期及时间,函数值为日期时 间型。 间型。 【例4.24】显示系统当前的日期、时间。 】显示系统当前的日期、时间。 解:? DATE(),TIME(),DATETIME() 主屏幕显示结果为: 主屏幕显示结果为: 04/28/05 11:34:45 04/28/05 11:35:40 AM
上一页 下一页 返 回

30

2.年、月、日函数 . 格式:YEAR(日期表达式 日期时间表达式) 日期表达式/ 格式:YEAR(日期表达式/日期时间表达式) MONTH(日期表达式 日期时间表达式) 日期表达式/ MONTH(日期表达式/日期时间表达式) DAY(日期表达式 日期时间表达式) 日期表达式/ DAY(日期表达式/日期时间表达式) 功能:YEAR函数返回日期表达式或日期时间表达式中的年份 函数返回日期表达式或日期时间表达式中的年份。 功能:YEAR函数返回日期表达式或日期时间表达式中的年份。 MONTH函数返回日期表达式或日期时间表达式中的月份 函数返回日期表达式或日期时间表达式中的月份。 MONTH函数返回日期表达式或日期时间表达式中的月份。 DAY函数返回日期表达式或日期时间表达式中的月份中的 DAY函数返回日期表达式或日期时间表达式中的月份中的 天数。 天数。 4.25】测试表达式{^2005 04- 11:35:45}中的年份 {^2005中的年份。 【例4.25】测试表达式{^2005-04-28 11:35:45}中的年份。 YEAR({^2005-04解:? YEAR({^2005-04-28 11:35:45}) 主屏幕显示结果为: 主屏幕显示结果为: 2005

上一页

下一页

返 回

31

3.时、分、秒函数 . 格式:HOUR(日期时间表达式) 格式:HOUR(日期时间表达式) 日期时间表达式 MINUTE(日期时间表达式 日期时间表达式) MINUTE(日期时间表达式) SEC(日期时间表达式 日期时间表达式) SEC(日期时间表达式) 功能:HOUR函数返回日期时间表达式中的小时部分 函数返回日期时间表达式中的小时部分。 功能:HOUR函数返回日期时间表达式中的小时部分。 MINUTE函数返回日期时间表达式中的分钟部分 函数返回日期时间表达式中的分钟部分。 MINUTE函数返回日期时间表达式中的分钟部分。 SEC函数返回日期时间表达式中的秒数部分 函数返回日期时间表达式中的秒数部分。 SEC函数返回日期时间表达式中的秒数部分。 三个函数的结果都为数值型。 三个函数的结果都为数值型。

上一页

下一页

返 回

32

4.4.4 数据类型转换函数 数据类型转换函数可以将某一种类型的数据转换成另一种类型的 数据。 数据。 1.数值转换为字符函数 格式:STR(数值表达式 长度] [,小数位数]) 格式:STR(数值表达式 [,长度] [,小数位数]) 功能:将数值表达式的值转换为字符串,转换时自动四舍五入。 功能:将数值表达式的值转换为字符串,转换时自动四舍五入。 默认长度为10 若不指定小数位则保留到整数位, 10, 默认长度为10,若不指定小数位则保留到整数位,如果长度小于 数值表达式值的整数位数,则返回一串* 数值表达式值的整数位数,则返回一串*号。长度大于转换后的 位数时, 位数时,右对齐左补空格
转换为字符型数据, 【例4.26】将数值型数据 】将数值型数据123.456转换为字符型数据,并显示其结 转换为字符型数据 果。 解:? STR(123.456) 主屏幕显示结果为: 主屏幕显示结果为: 凵凵凵凵凵凵凵123 凵凵凵凵凵凵凵123
33

上一页

下一页

返 回

STR(123 456, 123. STR(123 456, 123. STR(123 456, 123. ? STR(123.456,7,2), STR(123.456,5,2), STR(123.456,2) 主屏幕显示结果分别为: 主屏幕显示结果分别为: 凵123.46 123.5 ** 2.字符串转换为数值函数 . 格式:VAL(字符表达式 字符表达式) 格式:VAL(字符表达式) 功能:将字符数据转换为数值型数据(保留两位小数)。 )。但表达 功能:将字符数据转换为数值型数据(保留两位小数)。但表达 式的首字符必须为数字字符,否则转换结果为0 式的首字符必须为数字字符,否则转换结果为0。 分别转换为数值后相加, 【例4.27】将字符数据 】将字符数据"123"和"3.5"分别转换为数值后相加,并 和 分别转换为数值后相加 显示其结果。 显示其结果。 解:? VAL("123")+VAL("3.5") 主屏幕显示结果为: 主屏幕显示结果为: 126.50

上一页

下一页

返 回

34

3.字符型转换为日期或日期时间函数 . 格式:CTOD(字符表达式 字符表达式) 格式:CTOD(字符表达式) CTOT(字符表达式 字符表达式) CTOT(字符表达式) 功能:CTOD将日期格式的字符表达式的值转换为日期型数据 将日期格式的字符表达式的值转换为日期型数据。 功能:CTOD将日期格式的字符表达式的值转换为日期型数据。 CTOT将日期时间格式的字符表达式的值转换为日期时间型 CTOT将日期时间格式的字符表达式的值转换为日期时间型 数据。 数据。 和字符数据"11-28-05 【例4.28】分别将字符数据 】分别将字符数据"11-28-05"和字符数据 和字符数据 11:35:45"转换为日期型数据和日期时间型数据。 转换为日期型数据和日期时间型数据。 转换为日期型数据和日期时间型数据 CTOD("11-28-05"),CTOT("11-28解:? CTOD("11-28-05"),CTOT("11-28-05 11:35:45") 主屏幕显示结果为: 主屏幕显示结果为: 11/28/05 11/28/05 11:35:45 AM

上一页

下一页

返 回

35

4.日期或日期时间型转换为字符型函数 . 格式:DTOC(日期表达式 日期时间表达式) 日期表达式/ 格式:DTOC(日期表达式/日期时间表达式) TTOC(日期时间表达式 日期时间表达式) TTOC(日期时间表达式) 功能:DTOC将日期表达式或日期时间表达式的值转换为字符型 功能:DTOC将日期表达式或日期时间表达式的值转换为字符型 数据。 数据。 TTOC将日期时间表达式的值转换为字符型数据 将日期时间表达式的值转换为字符型数据。 TTOC将日期时间表达式的值转换为字符型数据。 5.大小写字母转换函数 . 格式:LOWER(字符表达式 字符表达式) 格式:LOWER(字符表达式) UPPER(字符表达式 字符表达式) UPPER(字符表达式) 功能:LOWER将字符表达式中的大写字母转换为小写 将字符表达式中的大写字母转换为小写, 功能:LOWER将字符表达式中的大写字母转换为小写,其他字 母不变。 母不变。 UPPER将字符表达式中的小写字母转换为大写 将字符表达式中的小写字母转换为大写, UPPER将字符表达式中的小写字母转换为大写,其他字 母不变。 母不变。

上一页

下一页

返 回

36

4.4.5 测试函数
1.数据类型测试函数 . 格式:VARTYPE(表达式) 格式:VARTYPE(表达式) 功能:测试表达式的类型,函数返回的结果是一个字符, 功能:测试表达式的类型,函数返回的结果是一个字符,各字符 的含义如下表所示。 的含义如下表所示。
返回的字母 C N Y O L
上一页

数据类型 字符型或备注型 数值型 货币型 对象型 逻辑型
下一页

返回的字母 G D T X U
返 回

数据类型 通用型 日期型 日期时间型 NULL型 型 未定义 37

2.条件测试函数 . 格式:IIF(逻辑表达式,表达式1,表达式2) 格式:IIF(逻辑表达式,表达式1 表达式2 功能:若逻辑表达式的值为真,则函数返回表达式1的值, 功能:若逻辑表达式的值为真,则函数返回表达式1的值,否 则函数返回表达式2的值。 则函数返回表达式2的值。 的真假, 【例4.29】判断逻辑表达式 】判断逻辑表达式180>150的真假,当为真时显示 的真假 "YES ",否则显示 ,否则显示"NO"。 。 解:? IIF(180>150, "YES","NO") 主屏幕显示结果为: 主屏幕显示结果为: YES

上一页

下一页

返 回

38

课后复习、 课后复习、作业及上机安排
(1) 阅读教材第 讲。 阅读教材第4讲 (2) 完成本讲的习题。 完成本讲的习题。 (3) 预习准备上机实验 : 预习准备上机实验2: 要求把实验内容中的空白部分事先填写相应的操作命令 。

上一页

下一页

返 回

39


更多相关文档:

第4讲 常量、变量、表达式和函数_图文.ppt

第4讲 常量变量表达式和函数 4.1 常量 4.2 变量 4.3 表达式 4.4 常用函数 上一页 下一页 1 4.1 常量 4.1.1 数值型常量数值型常量也就是常数,是由数字...

第02课常量变量表达式与数值函数_图文.ppt

第02课常量变量表达式与数值函数 - 第二课 常量变量和表达式 一、常量 1、定义: 2、分类: 数值常量 常量 指在程序运行过程中保持不变的量。 整数: 小数: ...

第4章(常量、变量及表达式)_图文.ppt

第4章(常量变量及表达式) - 《C语言程序设计》 第四章 数据类型、运算符、表达式及简单 的输入输出函数 第四章 数据类型、运算符、表达式及简单的输入输出...

第4章(常量、变量及表达式)_图文.ppt

第4章(常量变量及表达式) - 《C语言程序设计》 第四章 数据类型、运算符、表达式及简单 的输入输出函数 第四章 数据类型、运算符、表达式及简单的输入输出...

第4章 数据类型、常量、变量及表达式.ppt

第4章 数据类型、常量变量及表达式 1 熟悉VB程序中代码和语句书写规则; 2 掌握VB的数据类型; 3 掌握VB的 运算符和表达式的使用; 4 掌握常用内部函数的使用;...

第三章 常量、变量、表达式和函数_图文.ppt

第三章 数据与数据运算第一节 数据类型 第二节 常量与变量 第三节 运算符与表达式 第四函数 上一页 下一页 1 第一节 数据类型 (1)字符型:简称C型,...

常量、变量、函数与表达式.doc

常量变量函数与表达式常量常量(constant)是指在程序运行过程中保持不变的...Let a=4 Let a=6 Let a=3.14 a 先后有三个值,也就是说 a 的值是可以...

2 第4章(常量、变量及表达式)分析_图文.ppt

2 第4章(常量变量及表达式)分析 - 《C语言程序设计》 第四章 数据类型、运算符、表达式及简单 的输入输出函数 第四章 数据类型、运算符、表达式及简单的输入...

第4讲 常量.doc

第4讲 常量 - 常量变量第四讲 常量变量表达式 一、 常量 常量用以表示一个具体的、不变的值。常量也有不同的类型,不同类型的常量有不同的书写格 ...

《C语言程序设计》第4章(常量、变量及表达式)_图文.ppt

《C语言程序设计》第4章(常量变量及表达式) - 《C语言程序设计》 第四章 数据类型、运算符、表达式及简单 的输入输出函数 第四章 数据类型、运算符、表达式...

第08次课(常量、变量、表达式、函数).doc

第08次课(常量变量、表达式、函数) - 全国计算机等级考试(二级 Visual FoxPro) 变量、表达式、函数 第二部分 变量表达式及函数 一、 常量变量: 1.1 常量...

理论01常量变量表达式.ppt

四、内存变量产生的途径与类型 ? 五、表达式的概念 ? 六、表达式的产生与类型 VFP中数据的特点数据元素:常量,变量,函数和表达式数据类型是数据的一个重要属性。 ...

VF二级培训讲义(常量、变量、表达式、函数).doc

VF二级培训讲义(常量变量、表达式、函数) - 重庆市普通高校专转本统一选拔考试 变量、表达式、函数 变量、 第二部分 变量表达式及函数 一、 常量变量: ...

第1讲_变量运算符和表达式.ppt

第3章 数据数据运算数据元素: 数据元素: 常量变量常量变量函数和表达式 数据类型:根据数据元素的存储、表示与处理方式的 数据类型:根据数据元素的存储...

第2章 常量、变量、表达式及函数._图文.ppt

第2章 常量变量表达式及函数 第2章 常量变量表达式及函数 2.1 数据类 型 2.2 常量变量 2.3 表达式 2.4 常用函数 第2章 常量变量、表达式及...

第10次课(常量、变量、表达式、函数).doc

第10次课(常量变量、表达式、函数) - 全国计算机等级考试(二级 Visual FoxPro) 变量、表达式、函数 常量变量、 第五部分 常量变量表达式及函数 一、 ...

VFP程序设计理论01常量变量表达式PPT_图文.ppt

四、内存变量产生的途径与类型 ? 五、表达式的概念 ? 六、表达式的产生与类型 VFP中数据的特点数据元素:常量,变量,函数和表达式数据类型是数据的一个重要属性。 ...

第2章 常量、变量、表达式及函数.ppt

例如,表示学生档案的一张二维表如下所示: 第2章 常量变量表达式及函数 ??? Record # 1 2 3 4 5 6 学号 0001 0002 0003 0004 0005 0006 姓名 赵...

理论01常量变量表达式.ppt

四、内存变量产生的途径与类型 ? 五、表达式的概念 ? 六、表达式的产生与类型 VFP中数据的特点数据元素:常量,变量,函数和表达式数据类型是数据的一个重要属性。 ...

VF二级培训讲义(常量、变量、表达式、函数).doc

VF二级培训讲义(常量变量、表达式、函数) - 第二部分 变量表达式及函数 一、 常量变量: 1.1 常量: 1.数值型常量: ①.由 09、小数点、正负号构成...

更多相关标签:
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com