2015年全国计算机等级考试二级VFP辅导笔记:数据与数据运算
发布时间:2010/10/11 11:34:45 来源:城市学习网 编辑:ziteng
第三章 数据与数据运算
1、字段数据类型(11种
字符型
双精度型
数值型
整型
(4)
逻辑型
(1)
货币型
(8)
日期型
(8)
备注型
(4)
时间型
(8)
通用型
(4)
浮点(动)型
* N包括Y,F,B,
2、变量:在程序运行过程中,其值可能发生变化的量。
3、变量的分类:字段变量,内存变量,数组变量,系统变量,对象变量。
4、常用的函数
①、数值型函数
1.绝对值函数
【函数格式】 ?abs(<数值表达式
【函数功能】 返回指定“数值表达式”的绝对值
【返回值类型】 数值型
eg:
2.平方根函数
【函数格式】 ?sqrt(<数值表达式
【函数功能】 返回指定“数值表达式”值的平方根。“数值表达式”的值必须是大于或等于零
【返回值类型】 数值型
eg:
3.取整函数
【函数格式】 ?int(<数值表达式
【函数功能】 返回指定“数值表达式”整数部分的值
【返回值类型】 数值型
eg:
4.四舍五入函数
【函数格式】 ?round(<数值表达式1>,<数值表达式
【函数功能】 对指定的<数值表达式1>进行四舍五入运算
【使用说明】 <数值表达式2>指定四舍五入运算精确的位数。如果“数值表达式2”是正整数,它指定保留的小数位数;如果“数值表达式2”是0,它指定精确到个位;如果“数值表达式2”是负整数,它指定精确的整数位数
【返回值类型】 数值型
eg:
5.求余函数
【函数格式】 ?mod(<数值表达式1>, <数值表达式
【函数功能】 求<数值表达式1>除以<数值表达式2>后的模
【使用说明】 若两参数的值大于0,则模为余数;若两参数一正一负,则模为余数与“数值表达式2”之和;若两参数均为负,则模为余数取反。遵循的原则:一、模的符号与表达式2的相同;二、余数的绝对值小于除数(<表达式2>)的绝对值
【返回值类型】 数值型
eg:
6. e次方函数
【函数格式】 ?exp(<数值表达式
【函数功能】 返回ex的值(x为<数值表达式
【返回值类型】 数值型
eg:
7.最大值函数
【函数格式】 ?max(<表达式1>, <表达式2>…
【函数功能】 返回各个表达式中的最大值。其中各个表达式的数据类型相同
【返回值类型】 字符型、数值型、日期型,由表达式决定
eg:
?max(”a”,”b”,”d”,”e”,”y”
8.最小值函数
【函数格式】 ?min(<表达式1>, <表达式2>…
【函数功能】 返回各个表达式中的最小值。其中各个表达式的数据类型相同
【返回值类型】 字符型、数值型、日期型,由表达式决定
eg:
?min(”a”,”b”,”d”,”e”,”y”
9.对数函数
【函数格式】 ?log(<数值表达式
【函数功能】 返回以e为底的自然对数值
【返回值类型】 数值型
eg:
10. 圆周率函数
【函数格式】 ?pi(<表达式
【函数功能】 求表达式的圆周率
【返回值类型】 数值型
eg:
②、字符型函数
字符串长度测试函数
【函数格式】 ?len(<字符表达式
【函数功能】 返回字符型表达式的长度(字节数
【返回值类型】 数值型
eg:?len(”df”
?len(”dfjj”
12.小写字母转换大写函数
【函数格式】 ?upper(<字符表达式
【函数功能】 把字符表达式中的小写字母转换为大写字母
【返回值类型】 字符型
eg:?upper(”good”
?upper(”school”
13. 大写字母转换小写函数
【函数格式】 ?lower(<字符表达式
【函数功能】 把字符表达式中的大写字母转换为小写字母
【返回值类型】 字符型
eg:?lower(“GOOD”
?lower(”SCHOOL”
14.生成空格字符串函数
【函数格式】 ?space(<数字
【函数功能】 返回一个全是空格的字符串,空格数由<数字>决定
【返回值类型】 字符型
eg:?space(5)+”kk” □□□□□
?space(3) □□□
15.删除尾空格函数
【函数格式】 ?rtrim(<字符表达式>)或?trim(<字符表达式
【函数功能】 删除指定字符串右边的尾随空格
【返回值类型】 字符型
eg:?trim(”□ab□a□□□”) □ab□
16.删除前空格函数
【函数格式】 ?ltrim(<字符表达式
【函数功能】 删除指定字符串左边的空格
【返回值类型】 字符型
eg:?ltrim(”□□□ab□□ax□x□□□”) ab□□ax□x□□□
17.删除所有空格函数
【函数格式】 ?alltrim(<字符表达式
【函数功能】 删除指定字符串左右两边的空格
【返回值类型】 字符型
eg:?alltrim(” □□□abc□□□”)+”def”
18.子字符串函数
【函数格式】 ?substr(<字符表达式>,<起始位置>,<字符个数
【函数功能】 从指定的字符串中截取字符,形成一个新的字符串
【使用说明】 <起始位置>是数值型表达式,它指定从第几个字符开始截取,[<字符个数>]也是数值型表达式,它指定连续截取字符的个数。如果省略“字符个数”,则截取到最后一个字符为止。
【返回值类型】 字符型
eg:?substr(”abcdef”
?substr(”abcdef”
19.左子串函数
【函数格式】 ?left(<字符表达式>),<字符个数
【函数功能】 从指定是字符串左边第一个字符开始截取字符,形成一个新的字符串
【使用说明】 <字符个数>是数值型表达式,它指定连续截取字符的个数
【返回值类型】 字符型
eg:?left(”abcde”
?left(”abcdefg”
20. 右子串函数
【函数格式】 ??right(<字符表达式>),<字符个数
【函数功能】 从指定是字符串右边第一个字符开始截取字符,形成一个新的字符串
【返回值类型】 <字符个数>是数值型表达式,它指定连续截取字符的个数
字符型
eg:?right(”abcde”
?right(”abcdefg” [NextPage] 21.字符串1在字符串2出现的次数
【函数格式】 ?occurs(<字符表达式1>,<字符表达式
【函数功能】 返回字符表达式1在字符表达式2中出现的次数
【返回值类型】 数值型
eg:?occurs(”A”,”ABCDABCD”
?occurs(”A”,”abcdabcda”
22.求位置函数
【函数格式】 ?at(<字符表达式1>,<字符表达式1>,<数值表达式
或?atc(<字符表达式1>,<字符表达式1>,<数值表达式
【函数功能】 返回<字符表达式1>在<字符表达式2>从左边数第<数值表达式>次数出现的位置
【使用说明】 at区分大小写,而atc不区分大小写
【返回值类型】 数值型
eg:?at(”a”,”bacda”
?at(”a”,”bacdaaabdea”
?at(”A”,”abcdaaa”
?atc(”A”,”BACDAAABDEa”
23.求位置函数
【函数格式】 ?rat(<字符表达式1>,<字符表达式2>,<数值表达式
【函数功能】 返回<字符表达式1>在<字符表达式2>从右边数第<数值表达式>次数出现的位置
【返回值类型】 数值型
eg:?rat(”a”,”bacda”
?rat(”a”,”bacdaaabdea”
?rat(”A”,”abcdaaa”
24.替换函数
【函数格式】 ?stuff(<字符表达式1>,<数值表达式1>,<数值表达式2>,<字符表达式
【函数功能】 从指定的字符串中截取字符,形成一个新的字符串
【使用说明】 截取<字符表达式1>中,从<数值表达式1>开始,<字符表达式2>替换<数值表达式2>位数,形成新的字符串。
【返回值类型】 字符型
eg:?stuff(”计算机ABC”,3,4,”你好”) 计你好
?stuff(”数据库”,5,6,”管理系统”) 数据管理系统
?stuff(”计算机ABC”,5,4,”你好”) 计算你好
25.替换函数
【函数格式】 ?chrtran(<字符表达式1>,<字符表达式2>,<字符表达式
【函数功能】 用<字符表达式3>替换<字符表达式1>中与<字符表达式2>相同的字符串,并形成一个新的字符串
【返回值类型】 字符型
eg:?chrtran(”计算机ABCD”,”ABCD”,”你好”) 计算机你好
26.匹配函数
【函数格式】 ?like(<字符表达式1>,<字符表达式
【函数功能】 判断<字符表达式1>是否与<字符表达式2>完全相同
【使用说明】 若<字符表达式1>与<字符表达式2>完全相同,则显示逻辑值为真,反之为假
【返回值类型】 逻辑型
eg:
?like("abc□
?like("abc□
?like("abc□","abc□
③、日期与时间函数
27.日期函数
【函数格式】
【函数功能】 返回当前系统日期。返回日期的约定格式为
【返回值类型】 日期型
28.时间函数
【函数格式】
【函数功能】 返回当前系统时间。返回时间的约定格式为hh:mm:ss。其中hh表示小时,mm表示分,ss表示秒。
【返回值类型】 字符型
29.日期时间函数
【函数格式】
【函数功能】 返回当前系统日期与时间。
【返回值类型】 字符型
30.年函数
【函数格式】 ?year(<日期表达式
【函数功能】 返回<日期表达式>的年的数值,返回的年用四位数字表示
【返回值类型】 数值型
eg:?year(date()) 2007 ****系统当前日期为
月函数
【函数格式】 ?month(<日期表达式
【函数功能】 返回<日期表达式>的月的数值
【返回值类型】 数值型
eg:?month(date()) 7 ****系统当前日期为
32.月函数
【函数格式】 ?cmonth(<日期表达式
【函数功能】 以英文单词形式返回<时间表达式>中的月的数值
【返回值类型】 字符型
eg:?cmonth(date()) July ****系统当前日期为
33.日函数
【函数格式】 ?day(<日期表达式
【函数功能】 返回<日期表达式>的日的数值
【返回值类型】 数值型
eg:?day(date()) 24 ****系统当前日期为
34.星期函数
【函数格式】 ?dow(<日期表达式
或?cdow(<日期表达式
【函数功能】 返回<日期表达式>对应的当天星期几
【返回值类型】 数值型 字符型
eg:?dow(date()) 3 ****系统当前日期为
?cdow(date()) Tuesday ****系统当前日期为
35.时函数
【函数格式】 ?hour(<时间日期表达式
【函数功能】 返回<时间日期表达式>的时的数值
【返回值类型】 数值型
eg:?hour(datetime()) 13 *****系统当前时间为13:26:
36.分函数
【函数格式】 ?minute(<时间日期表达式
【函数功能】 返回<时间日期表达式>的分的数值
【返回值类型】 数值型
eg:?minute(datetime()) 26 *****系统当前时间为13:26:
37.秒函数
【函数格式】 ?sec(<时间日期表达式
【函数功能】 返回<时间日期表达式>的秒的数值
【返回值类型】 数值型
eg:?sec(datetime()) 46 *****系统当前时间为13:26:
④、转换函数
38.数值转换为字符函数
【函数格式】 ?str(<数值表达式>,[,<长度>[,<小数位数
【函数功能】 把<数值表达式>的值转换为字符串
【使用说明】 ①.<数值表达式>指定被转换的数据。<长度>指定转换后字符串的总长度,长度的缺省值为10。<小数位数>指定转换后允许保留的小数位数
②.如果“长度”大于<数值表达式>的字符个数,在字符前面用空格补齐;如果“长度”小于整数部分的数字长度且不指定<小数位数>,输出一串星号(*)。
③.如果不指定<小数位数>,那么只返回<数值表达式>的整数部分,若<数值表达式>有小数部分则进行四舍五入。若指定<小数位数>,则返回指定的小数位数,并按该有效位数进行四舍五入。长度的缺省值为
【返回值类型】 字符型
eg:
39.字符转换为数值函数
【函数格式】 ?val(<字符表达式
【函数功能】 <字符表达式>指定被转换的字符型文字。val()函数从左到右依次转换,遇到非数字字符就停止转换
【返回值类型】 数值型
eg:?val(”125.587”
?val(”246xs35”
?val(”xs135”
40.字符转换为日期函数
【函数格式】 ?ctod(<字符表达式
【函数功能】 把字符型日期转换为日期型数据
【使用说明】 <字符表达式>指定被转换的字符型数据
【返回值类型】 日期型
eg:?ctod(”06/10/2007”
41.日期转换为字符函数
【函数格式】 ?dtoc(<日期表达式>[,
【函数功能】 把日期型数据转换为字符型数据
【使用说明】 ①<日期表达式>指定被转换的日期型数据
②选择1,按yyyymmdd的格式返回结果。缺省该选项,按mm/dd/yy的格式返回结果
【返回值类型】 字符型
eg:
42.字符转换为ASCⅡ码函数
【函数格式】 ?asc(<字符表达式
【函数功能】 返回<字符表达式>值的第一个字符的ASCⅡ码
【返回值类型】 数值型
eg:?asc(”a”
?asc(”A”[NextPage] 43. ASCⅡ码转换为字符函数
【函数格式】 ?chr(<数值表达式
【函数功能】 返回<数值表达式>值表示的ASCⅡ码转换为字符
【返回值类型】 字符型
eg:
⑤、其他函数
44.测试首字符是否为字符函数
【函数格式】 ?isalpha(<字符表达式
【函数功能】 测试<字符表达式>首字符是否为字符
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”
?isalpha(”123aaa”
45.测试首字符是否为0—9数字函数
【函数格式】 ?isdigit(<字符表达式
【函数功能】 测试<字符表达式>首字符是否为0—9数字
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”
?isdigit(”123aaa”
46.测试首字符是否为小写函数
【函数格式】 ?islower(eg:? <字符表达式
【函数功能】 测试首字符是否为小写函数
【返回值类型】 逻辑型
eg:?isalpha(”aaabbbccc”
47.测试首字符是大写函数
【函数格式】 ?isupper(<字符表达式
【函数功能】 测试首字符是否为大写函数
【返回值类型】 逻辑型
eg:?isdigit(”aaabbbccc”
48.宏代换函数
【函数格式】 &<字符型内存变量
【函数功能】 返回字符型内存变量的值
【返回值类型】 字符型
eg:①a=”y”
y=”123”
②a=”b”
b=”123”
49.测试数据范围函数
【函数格式】 ?between(<表达式1>,<表达式2>,<表达式
【函数功能】 如果<表达式1>的值在<表达式2>和<表达式3>之间,则返回逻辑真值,反之为假
【返回值类型】 逻辑型
eg:
?between(“c”,”a”,”y”
50.测试数据是否为空函数
【函数格式】 ?empty(<表达式
【函数功能】 测试指定表达式是否为空,如果表达式为空,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:?empty(“□□□”
?empty(“0”
?empty(“54”
51.测试数据是否为空函数
【函数格式】 ?isnull(<表达式
【函数功能】 测试指定表达式是否为空,如果表达式为null,返回逻辑真值,反之为假值
【返回值类型】 逻辑型
eg:
?isnull(“125”
?isnull(“□□□”
52.测试类型函数
【函数格式】 ?vartype(<表达式
【函数功能】 测试指定表达式的数据类型
【返回值类型】 字符型
eg:
?vartype(“addsdfsd” 去括号函数
【函数格式】 ?type(<”表达式”
【函数功能】 去掉最外一层括号,并判断指定表达式的数据类型
【返回值类型】 字符型
l type函数返回值为C,N,D,L,M,S,U(S为屏幕型,U为未定义的数据类型
eg:?type([“123”
?type(‘{06/10/2007}’
?type(“5>2”
小结:
1. 函数都要加括号,都要有自变量,都必须带参数
2.函数的类型与返回值必须保持一致
3. 带括号的是函数,不带括号的是命令。
5、表达式(优先级顺序由高到低排列
①.算术运算符
运算符
说明
结果
()
分组优先
单目
取数的相反数
单目
取数的原值
或
乘幂
取模
乘
除
加
减
l 运算顺序为:先乘方,再乘除与取模,后加减,同一级别运算由左向右,圆括号可以改变运算的先后次序,若有圆括号嵌套,则按先内后外的次序处理。
②字符运算符
运算符
操作
结果
将两个串简单连接在一起,参加连接的串可以是字符串,字符字段,内存变量等
”visual□”+”foxpro”
”计算机”+[文化
”计算机□”+[文化
□
计算机文化
计算机□文化
连接两个字符串,并将前一个字符串的尾部空格移至后一个字符串之后
”计算机□”-[文化
”□windows□”-“98”
计算机文化□
□windows98□
包含比较运算。用于查看一个串是否包含在另一个串中
”I”$”Beijing”
”i”$”Beijing”
l 两字符串相加表示原位连接
l 两字符串相减,将第一个字符串后面的空格去掉,放到总字符串后,总字符串数不变。
③日期时间运算符
l 两日期相减,表示相差的天数
l 两时间相减,表示相差的秒数
l 一个日期加/减一个数,表示多个天以后/前
l 一个时间加/减一个数,表示多个秒以后/前
l set stric to 0 是将严格日期转换为传统(普通)日期
l 两日期/时间相加=错误
④关系运算符
运算符
操作
结果
小于比较运算
大于比较运算
等于比较运算
”abcd”=”ab”
不等于比较运算
小于或等于比较运算
大于或等于比较运算
字符串精确等于比较
”abcd”= =”ab”
* set exact off (左包含右,返回值为真,右包含左,返回值为假
eg:?”ab”=”abc”
?”abc”=”abc”
?”abcd”=”abc”
* set exact on (先用空格补齐位数,在做比较
eg:?”ab□”=”abc”
?”abc□”=”abc”
?”abcde”=”abcd”
?”ab”=”ab□□□”
?”ab”=”abc□□□”
⑤逻辑运算符
l not或!当条件成立时,返回值为真,反之为假(右包含左为真,左包含右为假
l and 左右同时为真,返回值为真,反之为假
l or 左右同时为假,返回值为假,只有一个为真是,返回值为真
l 优先级顺序:
while>for ?for>while 字段变量>内存变量
⑥运算符的优先级
圆括号>算术运算符>字符串运算符>日期和日期时间运算符>关系运算符>逻辑运算符