全国计算机等级考试二级教程——Visual FoxPro程序设计 格式2:STORE <表达式> TO <内存变量名表>
说明:?当内存变量与字段变量同名时,在内存变量名前加M.(或M->)区分
同名的字段变量。
?格式1一次只能给一个变量赋值;
格式2一次可以给多个用逗号分隔的变量赋值。
?在使用变量之前不需要定义,当使用赋值命令后,即建立了内存变量
?可以通过对内存变量重新赋值来改变其内容和类型。 例: ZF1=‘银川’
STORE 18.4 to A1,A2,A3
L1=.T. S1=$500.89
Store {^2004-09-15} to RQ1,RQ2 ?? ZF1,A1,A2,A3,L1,S1,RQ1,RQ2 2.数组
?定义:是内存中连续的一片存储区域,数组中的每个变量称为数组元素,每个数组元素的数据类型可以不相同,每个数组元素通过数组名及相应的下标来访问。 ?创建命令:
DIMENSION 〈数组名〉(〈下标上限1〉[,〈下标上限2〉])[,??] DECLEAR <数组名〉(〈下标上限1〉[,〈下标上限2〉]) [,??] 例: dimension x(8),y(3,4)
8个元素 12个元素
§3.1.3内存变量常用命令
1.内存变量的赋值 2.表达式值的显示 3.内存变量的显示 格式1:
LIST MEMORY [LIKE〈通配符〉][TO PRINTER|TO FILE 〈文件名〉] 格式2:
DISPLAY MEMORY [LIKE〈通配符〉][TO PRINTER| TO FILE〈文件名〉] 功能:显示内存变量的当前信息,包括变量名、作用域、类型、取值。
-21-
第三章 数据与数据运算 说明:①选用LIKE只显示与通配符相匹配的内存变量。
②[TO PRINTER]显示的同时送往打印机;
[TO FILE] 存入给定文件名的文本文件.TXT中。
③ LIST滚动显示,DISP分页显示
4.内存变量的清除
格式1:CLEAR MEMORY
格式2:RELEASE<内存变量名表> 格式3:RELEASE ALL [EXTENDED]
格式4:RELEASE ALL [LIKE<通配符>|EXCEPT<通配符>] 5.表中数据与数组数据之间的交换 ①将表的当前记录复制到数组
格式1:SCATTER [F1ELDS<字段名表>] [MEMO] TO <数组名> [BLANK] 功能:复制表的当前记录的指定字段到数组元素,若不指定字段 ,则复制除备注型M和通用型G之外的全部字段。
格式2:SCATTER [F1ELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]TO<数组名>[BLANK]
功能:复制用通配符指定包括或排除的字段 ②将数组数据复制到表的当前记录。
格式1:GATHER FROM <数组名>[FIELDS <字段名表>][MEMO]
功能:将数组中的数据作为一个记录复制到表的当前记录中,若数组元素个
数多于记录中字段的个数,则多余部分被忽略。
格式2:GATHER FROM <数组名>[FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>][MEMO]
功能:复制用通配符指定包括或排除的字段
§3.2表达式
定义:同类型的各种数据(常量、变量、函数)通过同类型运算符按一定规则连接起来的式子。
?型:N、C、D、L??值:按运算符的运算规则求出表达式的值§3.2.1数值、字符与日期时间表达式
一、数值表达式
定义:由算术运算符将数值型常量、变量、函数连接起来形成,运算结果仍
-22-
全国计算机等级考试二级教程——Visual FoxPro程序设计 为数值型。
?算术运算符优先级
A.( ) > B. **或^ > C.*、/、% > D.+、_ ?求余运算
%或MOD( ) 求余或取模,余数的正负号与除数一致 ........二、字符表达式
定义:由字符运算符与字符型常量、变量、函数构成,运算结果仍为字符型 +:将两个字符串连接形成一个新字符串
-:连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符
串尾部
三、日期时间表达式
定义:由日期型运算符与日期型或数值型的常量、变量或函数构成。运算结
果为日期型或数值型。
日期运算符:+、-
对日期表达式的格式有一些限制,合法的如教材P64表3.3 ? {^2005-09-16,10:10:10AM}-{^2004-09-16,09:10:10AM}
§3.2.2关系表达式
定义:也称简单逻辑表达式,由关系运算符与其他表达式组成,其作用是比
较两个表达式的大小或前后,其运算结果是逻辑型。
1.形式:<表达式1><关系运算符><表达式2> 说明:①数值型和货币型数据比较
按数值的大小比较
②日期和日期时间型数据比较
早的日期或时间小,晚的日期或时间大
③逻辑型数据比较 .T. 大于.F.
④子串包含测试
测试前字符串是否为后字符串的子字符串 2.设置字符的排列次序
当字符串比较时,按从左向右顺序比较,对字符序列的排序设置友人机会话和命令两种方式
①在人机会话方式下设置
?Machine“工具”→“选项”→数据选项卡→排序序列→ ??PinYin?Stroke ??机器??拼音?笔画?②命令方式设置
-23-
第三章 数据与数据运算 SET COLLATE TO “<排序次序名>” 次序名 说明:
A.Machine: 按ASCⅡ码值排列
空格<“0”<“1”?<“9”<“A”<“B”?<“Z”<“a”<”b”?<”z”<任何汉字
B.PinYin:按照拼音次序排列 空格<小写字母<大写字母
C.Stroke : 无论中文、西文,按照书写笔画的多少排序。 3.字符串精确比较与EXACT设置 SET EXACT ON/ OFF
?set exact off 非精确比较
右边的字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真 .T.
?set exact on 精确比较
当=时,现在较短字符串尾部加上若干个空格,使两个字符串长度相等,再比较
当==时,须两个字符串完全相同(包括空格及各字符的位置)
?Machine??PinYin?Stroke?§3.2.3逻辑表达式
定义:由逻辑运算符将逻辑数据连接起来的式子,其运算结果为逻辑值。 1.逻辑运算符: .NOT. 、.AND. 、.OR.(NOT>AND>OR)
2.运算符优先级: 算术运算符>字符运算符和日期时间运算符>关系运算符>逻辑运算符
例:? X<50 .OR. “A”>“B”
? (3*6<>20/4) .AND.(‘A’>‘B’)
? (‘微型计算机’==‘计算机’) OR (‘计算机’$‘计算机世界’) 年龄=20
性别 =“男” 婚否=.F. 学历=“大学”
? 年龄>18 .AND. (.NOT. (性别=“女”))
-24-
全国计算机等级考试二级教程——Visual FoxPro程序设计 ? 婚否=.F. .AND. 学历=“大学”.OR. 性别=“女” ? .NOT. 性别=”男” .OR. .NOT. 婚否=.T.
§3.3常用函数
函数特点:自由变量(或称参数)的值,经过某些特定的运算后,得到相应的
函数值
格式:函数名(自变量1,自变量2,??自变量N) 类型:每个函数的自变量和函数值都有规定的数据类型 掌握:?自变量类型 ?函数名和功能 ?函数值类型
?数值函数??字符函数分为5类??日期和时间函数
??数据类型转换函数??测试函数§3.3.1数值函数
特点:自变量和返回值都是数值型数据
1. 绝对值和符号函数
格式: ?ABS(<数值表达式>)
?SIGN(<数值表达式>)
功能:?返回绝对值
?正 1 ?返回符号??负 ?1
??0 02. 求平方根函数
格式:SQRT(<数值表达式>)
功能:返回指定表达式的平方根,自变量不能为负
3. 圆周率函数
格式:PI( )
功能:返回圆周率 A=PI( )
4. 求整数函数
格式: ①INT (<数值表达式>)
-25-