visual foxpro 6.0 表达式

2024-11-25 03:05:07
推荐回答(2个)
回答1:

3.5 Visual FoxPro V6.0数据类型、常量、变量、表达式

一、数据类型

在进行数据收集、筛选之后,要进行数据定义,定义其名称、类型等,然后依据不同的数据类型归并。Visual FoxPro V6.0定义了几种常用的数据类型:字符型、数值型、浮点型、日期型、逻辑型、备注型、通用型和图像类型。
1.字符型 C(Character)用来描述文字数据,长度不超过254字节。例如:姓名、地址、电话号码等数据都可定义成字符型。
2.数值型 N(Numeric)用来描述数值数据,长度在3~20字节。例如:课程成绩、基本工资等。
3.浮点型 F(Float)相当于数值类型,采用科学计数法表示数值, 长度也在3~20字节。
4.日期型 D(Date)长度固定为8个字节,格式为MM/DD/YY。 MM表示月份,DD表示日期,YY表示年份。例如:出生年月、工作时间等数据应定义为日期型。
5.逻辑型 L(Logic)长度固定为1个字节,取值范围只有“真”和“假”两种,“真”用T表示,“假”用F表示。条件判断的结果用逻辑型数据表达更为合适。
6.备注型 M(Memo)长度固定为4个字节,用来描述不定长的数据。例如:简历、说明等。只有数据库字段可以使用此类型,它可以保存任意类型的数据,其内容存储在数据库之外的一个独立的文件中,数据长度不限。该文件与数据库文件具有相同的名字,只是扩展名为.FPT。
7.通用型 G(General)长度固定为4个字节,是一种特殊的备注型,用来描述Windows OLE(对象链接与嵌入)对象。 例如:图形图像、声音、电子表格等,它们是由别的应用程序创建的。一个对象链接到一个通用字段中,Visual FoxPro保存的仅是该对象的一个引用不是实际对象, 一旦对对象进行编辑,则会修改原始对象;相反,一个对象嵌入到一个通用字段中,Visual FoxPro保存的是该对象的拷贝文件,存放在备注文件中, 编辑时不用担心引起原始对象的改变。

二、常量

数据可分为常量与变量两大类。常量是数据处理过程中固定不变的量,并不是所有的数据类型都可以定义常量,例如,逻辑值真是逻辑型常量,还有字符型常量、数值型常量、日期型常量。此外,Visual FoxPro中的另一种特殊常量--编译常量, 这种常量需用预处理指令#DEFINE来定义,在编译后,常量的具体内容取代了该常量在源代码中的位置。

三、变量

1.变量的命名
变量是指在程序运行过程中值可以改变的量,用一个标识符表示,这个标识符称为变量名。变量名仅能使用字母、数字和下划线,而且首字符必须是字母,长度不得超过254个字符。注意变量名不要和系统变量或保留字冲突。如:X1、Ret_Code都是正确的变量名。
2.变量的种类
变量有字段变量、内存变量、数组变量和系统变量。因为变量中的数据是有类型的,所以我们把变量中数据的类型也称为变量的类型。表中每一列称为一个字段,即字段变量,字段变量永久性地保存数据,它的作用域是全局的,一经定义,其类型和宽度便确定下来。
内存变量是一种临时存放数据的变量,具有瞬时性。根据内存变量作用域的范围又可分为全局变量、局部变量、私有变量、公共变量和默认变量,像过程或函数内部有效的变量就属于局部变量。内存变量具有字符型、数值型、日期型和逻辑型数据类型,可见内存变量的类型随着存储的数据类型的变化而变化。
内存变量的赋值命令:
格式 <内存变量>=<表达式> &&给单个内存变量赋值
STORE <表达式> TO <内存变量表> &&给多个内存变量赋值
功能 计算表达式的值,并把该值赋给指定的一个或几个内存变量。
实例 S=“ABC” 给内存变量S赋“ABC”字符型数据。
STORE 2*3 TO a,b,c 给a,b,c三个内存变量赋 2*3的值6。
内存变量的显示:
格式 LIST MEMORY ?<表达式表>
DISP MEMORY ?<表达式表>
功能 LIST MEMORY 一次性显示已定义的所有内存变量名、类 型、值,并输出在命令行的下一行上。
DISP MEMORY 输出所有内存变量,按任一键自动滚一屏。
内存变量文件的存盘、读盘:
格式 SAVE TO <文件名>!MEMO<备注字段名>
〔ADDITIVE〕
RESTORE FROM<文件名>!MEMO<备注字段名>
〔ADDITIVE〕
功能 SAVE命令把内存变量储存到变量文件或数据库表中的备注字 段。
RESTORE命令把指定的内存变量文件或备注字段内容调入内存。
〔ADDITIVE〕表示保留当前内存中的全部内存变量,把给定内存变量文件中的内存变量追加在后面。
实例 SAVE TO A:f1 把全部内存变量保存到A盘中名为f1的 文件中。
内存变量的清除:
格式 RELEASE [<变量名表>!ALL LIKE<变量名通配符>!
ALL EXCEPT<变量名通配符>]
功能 释放当前内存中指定的内存变量
实例 RELEASE a,b
以上有内存变量命令的几点说明:“<>”里的内容是必选的;“[ ]”里的内容是可选的;“?”通配符代表一个任意字符;“*”通配符代表任意多个字符;“!”或者的意思。
数组变量是按一定顺序排列的一组数据集合,数组中每个变量称为数组元素。数组元素用数组名以及该元素在数组中排列位置的下标一起表示。如:X(0),X(1),a(2,1),a(1,3)等。数组元素的下标个数称为数组的维数,a是个二维数组,依此类推我们可以定义多维数组。 数组使用之前要先定义,定义的命令:
DIMENSION <数组名>(<下标1>[,<下标2>] ...)<下标>个数据表示维数,<下标>值表示该维的长度。
系统变量是系统自己定义的一些变量,以“_”字符开头。

四、表达式

表达式是由常量、变量、函数用运算符与圆括号连接起来的用于描述数据之间运算关系的一种形式。特别地,单个常量、变量与函数都称为表达式。表达式也有不同类型之分,其类型是以表达式的运算结果的类型确定的,分为字符型、数值型、关系型、逻辑型、日期型。
1.字符型表达式
字符型表达式由字符串运算符、字符型常量、变量和函数组成,运算结果是一个字符型数据。
+ 字符串连接,两个字符串首尾相连。
例1 “123”+“XY” 运算结果是“123XY”
- 字符串修剪连接, 两个字符串首尾相连,并将前串末尾的空格移到新串末尾。
例2 “福建 ”-“青圃” 运算结果是“福建青圃 ”
$ 包含运算,一个字符串是否包含在另一个字符串中,包含是真,否则是假。
例3 “GOOD”$“GOOD MORNING” 运算结果是真
2.数值表达式
数值表达式是由数值型常量、变量、函数通过算术运算符组成的句子。算术运算符有:( )、*、^、/ 、+、-、%。其中%表示求余运算。
例4 86.7*SQRT(84.5*2)其中,SQRT()是个函数。
3.关系表达式
关系表达式是对两个运算对象进行逻辑判别运算,运算对象的数据类型必须相同,运算结果是一个逻辑值。关系运算符有:<、>、=、<=、>=、==、<>。==表示恒等于。
例5 SEX<>"女"
4.逻辑型表达式
逻辑表达式是对逻辑型常量、变量、函数进行“OR”、“AND”、“NOT”等基本逻辑运算,运算结构是一个逻辑值。
OR运算法则:两个逻辑数据只要有一个为真,结果为真。
AND运算法则:两个逻辑数据同时为真,结果为真,否则为假。
NOT运算法则:只有一个运算对象,对其求反。
例6 “AB”>“BB”OR“AC”<“AD” 运算结果是真
注意:关系运算、逻辑运算、算术运算混合使用时,先进行算术运算,然后进行关系运算,最后进行逻辑运算。
5.日期型表达式
+ 当一个日期型数据与一个整数相加,这个整数代表天;当一个日期时间型数据与一个整数相加,这个整数代表秒。
例7 {11/12/96}+5 运算结果是{11/17/96}
{10/02/99 10:20:40}+120 运算结果是{10/02/99 10:22:40}
- 当两个运算对象是同一日期型或日期时间型数据时,得到的整数结果表示两个日期相隔的时间;当一个日期型数据或日期时间型数据减去一个整数时,结果是前趋时间。
例8 {10/12/99}-{10/02/99} 运算结果表示相隔10天
{01/01/98}-100 运算结果是{09/23/97}表示前趋时间

回答2:

1. X=NY
2. X3. ABS(X)>=ABS(Y) OR X4. X<100 AND X>=0
5. (N0 AND INT(K/K)=K/K)