[IT认证]VFP第2章

上传人:鲁** 文档编号:577751941 上传时间:2024-08-22 格式:PPT 页数:76 大小:310.50KB
返回 下载 相关 举报
[IT认证]VFP第2章_第1页
第1页 / 共76页
[IT认证]VFP第2章_第2页
第2页 / 共76页
[IT认证]VFP第2章_第3页
第3页 / 共76页
[IT认证]VFP第2章_第4页
第4页 / 共76页
[IT认证]VFP第2章_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《[IT认证]VFP第2章》由会员分享,可在线阅读,更多相关《[IT认证]VFP第2章(76页珍藏版)》请在金锄头文库上搜索。

1、第第章章VFP程序设计基础程序设计基础2.1 常量与变量常量与变量2.2 表达式表达式2.3 常用函数常用函数2.4 程序与程序文件程序与程序文件2.5 程序的基本结构程序的基本结构第第 章章2.1.1常量常量字符型常量(字符型常量(字符型常量(字符型常量(C C)123 123 123 123 、 abcabcabcabc 数值型常量(数值型常量(数值型常量(数值型常量(N N) 123.45123.45、- - - -0.00230.0023、+21+21逻辑型常量(逻辑型常量(逻辑型常量(逻辑型常量(L L) .T.T.和和和和.F.F.(真和假)真和假)真和假)真和假)货币型常量(货币

2、型常量(货币型常量(货币型常量($ $)$123.45$123.45日期型常量(日期型常量(日期型常量(日期型常量(D D) YYYYMMDDYYYYMMDD日期时间型常量(日期时间型常量(日期时间型常量(日期时间型常量(T T) YYYYMMDDHHMMSSYYYYMMDDHHMMSSuu(1 1)严格的日期格式)严格的日期格式)严格的日期格式)严格的日期格式2000-09-012000-09-012.1 常量与变量常量与变量u(2)(2)日期格式的设置命令日期格式的设置命令Setmarkto“-”指定显示日期值所用的分隔符。指定显示日期值所用的分隔符。Setcenturyonoffto19

3、rollover51显示或解释显示或解释一个日期数据的完整年份。一个日期数据的完整年份。SetdatetoAMERICAN|JAPAN|YMD设置日期设置日期显示的格式。显示的格式。Setstrictdateto0|1|2设置是否对日期格式进行设置是否对日期格式进行检查。检查。2.1.2变量变量变量:变量:变量:变量:以字母、汉字和下划线开头,后接字母、数字、汉字和以字母、汉字和下划线开头,后接字母、数字、汉字和以字母、汉字和下划线开头,后接字母、数字、汉字和以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成。下划线构成。下划线构成。下划线构成。例如:例如:例如:例如:XYZXYZ、年

4、龄、年龄、年龄、年龄、A2A2、2X2X、_ _abab。字段变量:字段变量:字段变量:字段变量:表中的字段名称为表中的字段名称为表中的字段名称为表中的字段名称为字段变量字段变量字段变量字段变量。内存变量:内存变量:内存变量:内存变量:代表内存中的一个存储单元。代表内存中的一个存储单元。代表内存中的一个存储单元。代表内存中的一个存储单元。例如:例如:例如:例如:intinti,i,i=1i=1向简单内存变量赋值不必事先定义!向简单内存变量赋值不必事先定义!向简单内存变量赋值不必事先定义!向简单内存变量赋值不必事先定义!1 1、简单内存变量赋值、简单内存变量赋值、简单内存变量赋值、简单内存变量赋

5、值格式格式格式格式1 1: STORE“STORE“表达式表达式表达式表达式” ”TOTO变量名表变量名表变量名表变量名表格式格式格式格式2 2: 变量名变量名变量名变量名 =“=“表达式表达式表达式表达式” ”2.数组数组把具有相同类型的若干变量按有序的形式组织把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数起来。这些按序排列的同类数据元素的集合称为数组。数组分为一维数组和二维数组。组。数组分为一维数组和二维数组。 创建数组的命令格式有两种:创建数组的命令格式有两种:(1)dimension数组名数组名(元素个数元素个数)例例1:dimensionB(10

6、)(2)declare数组名数组名(行个数,列个数行个数,列个数)例例2:DECLAREA(2,3)A(1,1)A(1,2)A(1,3)A(2,1)A(2,2)A(2,3)B(1)B(1)B(2)B(2)B(3)B(3)B(4)B(4)B(5)B(5)B(6)B(6)B(7)B(7)B(8)B(8)B(9)B(9)B(10)B(10)数组赋值数组赋值数组赋值数组赋值例例例例1 1:dimensionB(10)dimensionB(10)B(1)=1B(2)=2B(3)=3.B(1)=1B(2)=2B(3)=3.例例例例2 2: declareA(2,3)declareA(2,3)A(1,3)=

7、24A(2,2)=“A(1,3)=24A(2,2)=“张三张三张三张三”为数组整体赋值:为数组整体赋值:为数组整体赋值:为数组整体赋值:A=0A=0所有数组元素的值均为所有数组元素的值均为所有数组元素的值均为所有数组元素的值均为0 0B(1)B(1)B(2)B(2)B(3)B(3)B(4)B(4)B(5)B(5)B(6)B(6)B(7)B(7)B(8)B(8)B(9)B(9)B(10)B(10)A(1,1)A(1,2)A(1,3)A(2,1)A(2,2)A(2,3)A(1)A(2)A(3)A(4)A(5)A(6)2.1.3内存变量常用命令内存变量常用命令1.1.内存变量的赋值内存变量的赋值内存

8、变量的赋值内存变量的赋值格式格式格式格式1 1: STORE“STORE“表达式表达式表达式表达式 ”TOTO变量名表变量名表变量名表变量名表格式格式格式格式2 2: 变量名变量名变量名变量名 =“=“表达式表达式表达式表达式 ” ” 2.2.表达式值的显示表达式值的显示表达式值的显示表达式值的显示格式格式格式格式1 1: ?表达式表达式表达式表达式格式格式格式格式2 2: ?表达式表达式表达式表达式3.3.内存变量的显示内存变量的显示内存变量的显示内存变量的显示格式格式格式格式1 1:LIST MEMORYLIST MEMORYLIST MEMORYLIST MEMORY格式格式格式格式1

9、1:DISPLAY MEMORYDISPLAY MEMORYDISPLAY MEMORYDISPLAY MEMORY4. 4. 4. 4. 内存变量的清除内存变量的清除内存变量的清除内存变量的清除格式格式格式格式1 1 1 1:CLEAR MEMORY -CLEAR MEMORY -CLEAR MEMORY -CLEAR MEMORY -清除所有内存变量清除所有内存变量清除所有内存变量清除所有内存变量格式格式格式格式2 2 2 2:RELEASE RELEASE RELEASE RELEASE 内存变量名内存变量名内存变量名内存变量名 -清除指定内存变量清除指定内存变量清除指定内存变量清除指定

10、内存变量格式格式格式格式3 3 3 3:RELEASE ALL LIKE/EXCEPTRELEASE ALL LIKE/EXCEPTRELEASE ALL LIKE/EXCEPTRELEASE ALL LIKE/EXCEPT如:如:如:如: RELEASE ALL LIKE ARELEASE ALL LIKE ARELEASE ALL LIKE ARELEASE ALL LIKE A? RELEASE ALL EXCEPT ARELEASE ALL EXCEPT ARELEASE ALL EXCEPT ARELEASE ALL EXCEPT A?例例例例2.42.42.42.4: 在命令窗口中

11、依次输入以下命令在命令窗口中依次输入以下命令在命令窗口中依次输入以下命令在命令窗口中依次输入以下命令CLEAR MEMORYCLEAR MEMORYCLEAR MEMORYCLEAR MEMORYDIMENSION y(2,2)DIMENSION y(2,2)DIMENSION y(2,2)DIMENSION y(2,2)STORE xxx TO x1,y(1,1) STORE xxx TO x1,y(1,1) STORE xxx TO x1,y(1,1) STORE xxx TO x1,y(1,1) y(3)=2001-03-23y(3)=2001-03-23y(3)=2001-03-23y

12、(3)=2001-03-23X2=$123.23X2=$123.23X2=$123.23X2=$123.23List memo like y*List memo like y*List memo like y*List memo like y*Display memoryDisplay memory结果:结果:或单引号和双引号都一样!5. 5. 5. 5. 表与数组之间的数据传递表与数组之间的数据传递表与数组之间的数据传递表与数组之间的数据传递(1 1 1 1)把)把)把)把当前记录当前记录当前记录当前记录复制到数组复制到数组复制到数组复制到数组 FIELDS FIELDS FIELDS FI

13、ELDS 字段名字段名字段名字段名1,1,1,1,字段名字段名字段名字段名2 TO 2 TO 2 TO 2 TO 数组名数组名数组名数组名(2 2 2 2)把数组数据复制到)把数组数据复制到)把数组数据复制到)把数组数据复制到当前记录当前记录当前记录当前记录 FROM FROM FROM FROM 数组名数组名数组名数组名 FIELDS FIELDS FIELDS FIELDS 字段名字段名字段名字段名1,1,1,1,字段名字段名字段名字段名2 2 2 2SCATTERSCATTERGATHERGATHERGATHERGATHER2.2表达式表达式将同类型的数据(如将同类型的数据(如常量常量、

14、变量、函数等)、变量、函数等),用,用运算符运算符号按一定的规则连接起来的、有意号按一定的规则连接起来的、有意义的式子称为表达式。义的式子称为表达式。例如:例如:67 a=“Hello”01表达式分类表达式分类:数值、字符与日期时间表达:数值、字符与日期时间表达式,关系表达式和逻辑表达式。式,关系表达式和逻辑表达式。2.2.1数值、字符与日期时间表达式数值、字符与日期时间表达式1.1.数值表达式数值表达式数值表达式数值表达式算术运算符:算术运算符:算术运算符:算术运算符: + - * / % + - * / % + - * / % + - * / % 先乘方,再乘除、后加减,括号优先先乘方,再

15、乘除、后加减,括号优先先乘方,再乘除、后加减,括号优先先乘方,再乘除、后加减,括号优先?(1/60-3/56)*18.4500(1/60-3/56)*18.4500结果:结果:结果:结果:-0.6809-0.6809求余运算:求余运算:求余运算:求余运算: %?12%512%5结果:结果:结果:结果:2 22.字符表达式字符表达式+ +22个字符串相加,即把个字符串相加,即把个字符串相加,即把个字符串相加,即把2 2个字符串连接成一个字符串。个字符串连接成一个字符串。个字符串连接成一个字符串。个字符串连接成一个字符串。 2 2个字符串相减,即把个字符串相减,即把个字符串相减,即把个字符串相减,

16、即把2 2个字符串连接起来,但将前字个字符串连接起来,但将前字个字符串连接起来,但将前字个字符串连接起来,但将前字符串尾部空格移到合并后的新字符串尾部。符串尾部空格移到合并后的新字符串尾部。符串尾部空格移到合并后的新字符串尾部。符串尾部空格移到合并后的新字符串尾部。a=“Hello ”b=“everyone!”?a+b, len(a+b) 结果为结果为Hello everyone!, 15?a-b, len(a-b) 结果为结果为Helloeveryone! , 15例例2.7:3.日期时间表达式日期时间表达式日期日期日期日期 整数:整数:整数:整数:得到另一个日期。得到另一个日期。得到另一个

17、日期。得到另一个日期。日期日期日期日期- - - -日期:日期:日期:日期:得到两个日期相隔的天数。得到两个日期相隔的天数。得到两个日期相隔的天数。得到两个日期相隔的天数。日期时间日期时间日期时间日期时间 秒数:得到另一个日期时间。秒数:得到另一个日期时间。秒数:得到另一个日期时间。秒数:得到另一个日期时间。日期时间日期时间日期时间日期时间- - - -日期时间:得到两个日期时间相差的秒数日期时间:得到两个日期时间相差的秒数日期时间:得到两个日期时间相差的秒数日期时间:得到两个日期时间相差的秒数 例:例:例:例:D1=2000-07-12D1=2000-07-12D2=2000-08-28D2

18、=2000-08-28?D2-D1D2-D14747两个日期相隔的天数为两个日期相隔的天数为两个日期相隔的天数为两个日期相隔的天数为4747天天天天?D1+20D1+2008/01/200008/01/2000 距离距离距离距离D1D1D1D1的的的的2020天后是天后是天后是天后是8 8月月月月1 1日日日日P 89 /42.2.2关系表达式关系表达式关关系系表表达达式式是是由由关关系系运运算算符符将将两两个个表表达达式式连连接接起起来来形形成成,即即:,结果是逻辑值(真和假)。,结果是逻辑值(真和假)。关系运算符关系运算符共有共有7个:个:、=、=、(或(或!=)、)、$例:例:0-10-

19、1、$150$105$150$105数值型、货币型数据比较数值型、货币型数据比较数值型、货币型数据比较数值型、货币型数据比较2002-01-102001-12-282002-01-102001-12-28日期型数据比较日期型数据比较日期型数据比较日期型数据比较.T.F.T.F. 逻辑型数据比较逻辑型数据比较逻辑型数据比较逻辑型数据比较“abc”“a”子子串串包包含含测试测试$字符串精确比较与字符串精确比较与EXACT设置设置SETEXACTONSETEXACTON为精确比较,参加比较的两个字符串为精确比较,参加比较的两个字符串为精确比较,参加比较的两个字符串为精确比较,参加比较的两个字符串必须

20、完全相同,才返回逻辑真值。必须完全相同,才返回逻辑真值。必须完全相同,才返回逻辑真值。必须完全相同,才返回逻辑真值。SETEXACTOFFSETEXACTOFF为不精确比较,为不精确比较,为不精确比较,为不精确比较, 例如:例如:例如:例如: 当当当当 SETEXACTONSETEXACTON? ABCDE=ABC&.F.ABCDE=ABC&.F.?ABCX=ABCX&.T.?ABCX=ABCX&.T.?ABCDE=ABC&.T.?ABCDE=ABC&.T.?ABC=ABCDE&.F.?ABC=ABCDE&.F.注意:注意:在用在用“=”比较两个字符串时,只有当两个字符串完比较两个字符串时,只

21、有当两个字符串完全相同时,运算结果才会是逻辑真全相同时,运算结果才会是逻辑真.T.,否则为逻辑假,否则为逻辑假.F.。当当当当 SETEXACTOFFSETEXACTOFF2.2.3逻辑表达式逻辑表达式逻辑表达式逻辑表达式逻辑表达式逻辑表达式是由是由是由是由逻辑运算符逻辑运算符逻辑运算符逻辑运算符将将将将逻辑型数据逻辑型数据逻辑型数据逻辑型数据连接起来形成的式子。连接起来形成的式子。连接起来形成的式子。连接起来形成的式子。逻辑运算符共有逻辑运算符共有逻辑运算符共有逻辑运算符共有3 3个:个:个:个:.AND.AND.( (逻辑与逻辑与逻辑与逻辑与).OR.OR.( (逻辑或逻辑或逻辑或逻辑或)

22、.NOT.NOT.( (逻辑非逻辑非逻辑非逻辑非) )例:例:例:例:查询基本工资高于查询基本工资高于查询基本工资高于查询基本工资高于18001800元的讲师和副教授。元的讲师和副教授。元的讲师和副教授。元的讲师和副教授。条件表达式应当写成:条件表达式应当写成:条件表达式应当写成:条件表达式应当写成:基本工资基本工资基本工资基本工资=1800=1800ANDAND (职称(职称(职称(职称=“=“讲师讲师讲师讲师”OROR 职称职称职称职称=“=“副教授副教授副教授副教授” ”)2.3 常用函数常用函数函数是数学中的一种对应关系,是从输入函数是数学中的一种对应关系,是从输入值的集合值的集合A到

23、所有的输出值的集合到所有的输出值的集合B的对应,记的对应,记作作f(x)。)。常用函数分为数值函数、字符处理函数、日期类函数、数据常用函数分为数值函数、字符处理函数、日期类函数、数据常用函数分为数值函数、字符处理函数、日期类函数、数据常用函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数和测试函数五类。类型转换函数和测试函数五类。类型转换函数和测试函数五类。类型转换函数和测试函数五类。y2.3.1数值函数数值函数1.绝对值和符号函数绝对值和符号函数格式:格式:ABS()返回绝对值;返回绝对值;SIGN()返回符号返回符号1、-1、0;例例2.12:STORE10TOx?ABS(5-x

24、)?ABS(x-5)?SIGN(5-x)?SIGN(x-10)结果结果:结果结果:结果结果:结果结果:2.求平方根函数求平方根函数格式:格式:SQRT()功能:返回指定表达式的平方根。功能:返回指定表达式的平方根。例例2.13:STORE-100TOx?SIGN(x)*SQRT(ABS(x)结果结果:3.圆周率函数圆周率函数格式:格式:PI()()功能:返回圆周率功能:返回圆周率4.求整数函数求整数函数格式:格式:INT()CEILING()FLOOR()功能:功能:INT()返回指定数值表达式的整数部分()返回指定数值表达式的整数部分CEILING()返回大于或等于指定数值表达式的最小整数(

25、)返回大于或等于指定数值表达式的最小整数FLOOR()返回小于或等于指定数值表达式的最大整数()返回小于或等于指定数值表达式的最大整数例例2.14:STORE5.8TOx?INT(x)?CEILING(x)?FLOOR(x)结果结果:结果结果:结果结果:?INT(-x)?CEILING(-x)?FLOOR(-x)结果结果:结果结果:结果结果:5.四舍五入函数四舍五入函数格式:格式:ROUND(,)功能:功能:返回指定表达式在指定位置四舍五入后的结返回指定表达式在指定位置四舍五入后的结果。若果。若“数值表达式数值表达式2”=0,表示要保留的小数位数;若表示要保留的小数位数;若“数值表达数值表达式

26、式2”0,表示整数部分的舍入位数。表示整数部分的舍入位数。例例2.15:X=345.345?ROUND(X,2)?ROUND(X,1)结果结果:结果结果:?ROUND(X,0)?ROUND(X,-1)结果结果:结果结果:6.求余数函数求余数函数格式:格式:MOD(,)功能:返回两个数值相除后的余数。余数的正负号与除数相功能:返回两个数值相除后的余数。余数的正负号与除数相同。如果被除数与除数同号,函数值即为两数相除的余数;同。如果被除数与除数同号,函数值即为两数相除的余数;被除数与除数异号,则函数值即为两数相除的余数再加上除被除数与除数异号,则函数值即为两数相除的余数再加上除数的值。数的值。例例

27、2.16:?MOD(10,3)?MOD(10,-3)结果结果:结果结果:?MOD(-10,3)?MOD(-10,-3)结果结果:结果结果:7.求最大值和最小值函数求最大值和最小值函数格式:格式:MAX(,)MIN(,)例例2.17:?MAX(2,12,05)?MIN(汽车汽车,飞机飞机,轮船轮船)结果结果:结果结果:1.求字符串长度函数求字符串长度函数格式:格式:LEN()功能:返回指定字符表达式值的长度。功能:返回指定字符表达式值的长度。例例2.18:x=“中文中文VFP6.0”?LEN(x)2.3.2字符函数字符函数结果结果:2.大小写转换函数大小写转换函数格式:格式:LOWER()UPP

28、ER()功能:功能:LOWER()将指定表达式值中的大写字母转换成小写字母。将指定表达式值中的大写字母转换成小写字母。UPPER()将指定表达式值中的小写字母转换成大写字母。将指定表达式值中的小写字母转换成大写字母。例例2.19:?LOWER(X1y2A*)?UPPER(n=1)结果结果:结果结果:3.空格字符串生成函数空格字符串生成函数格式:格式:SPACE()功能:功能:返回返回number个空格个空格例:例:name=张张+space(2)+三三“?name结果结果:4.删除前后空格函数删除前后空格函数格式:格式:TRIM()去掉字符串尾部的空格去掉字符串尾部的空格LTRIM()去掉字符

29、串首部的空格去掉字符串首部的空格ALLTRIM()去掉字符串前部和尾部的空格)去掉字符串前部和尾部的空格例:例:?trim(aaa)+b?c+ltrim(aaa)?c+alltrim(aaa)+b5.取子串函数取子串函数格式:格式:LEFT(,)RIGHT(,)SUBSTR(,)功能:功能:LEFT()从表达式的左端取指定长度的子串作为函数值()从表达式的左端取指定长度的子串作为函数值RIGHT()从表达式的右端取指定长度的子串作为函数值()从表达式的右端取指定长度的子串作为函数值SUBSTR()从表达式的指定起始位置取指定长度的子串()从表达式的指定起始位置取指定长度的子串例例2.21:ST

30、ORE“GOODBYE!”TOx?LEFT(x,2)?RIGHT(x,3)?SUBSTR(x,6,2)+SUBSTR(x,6)结果结果:结果结果:结果结果:6.计算子串出现次数函数计算子串出现次数函数格式:格式:OCCURS(,)功能:功能:返回第一个字符串在第二个字符串中出现的次数。返回第一个字符串在第二个字符串中出现的次数。例例2.22:STOREabracadabraTOs?OCCURS(a,s)?OCCURS(c,s)?OCCURS(b,s)?OCCURS(e,s)结果结果:结果结果:结果结果:结果结果:7.求子串位置函数求子串位置函数格式:格式:AT(,)ATC(,,)功能:功能:A

31、T():如果前者是后者的子串,则返回前者的首字符在后者中的如果前者是后者的子串,则返回前者的首字符在后者中的位置,或者返回位置,或者返回0。数值表明在表达式。数值表明在表达式2中搜索表达式中搜索表达式1值时第几值时第几次出现。次出现。ATC():与与AT()功能类似,但在子串比较时功能类似,但在子串比较时不区分字母大小写不区分字母大小写。例例2.23:STORE“ThisisVisualFoxPro”TOx?AT(“fox”,x)?AT(“is”,x,3)结果结果:结果结果:?ATC(“fox”,x)?AT(“xo”,x)结果结果:结果结果:8.子串替换函数子串替换函数格式:格式:STUFF(

32、,)功能:功能:用表达式用表达式2替换表达式替换表达式1中由起始位置和长度指明的子串。中由起始位置和长度指明的子串。例例2.24:STORE“GOODBYE!”TOs1STORE“MORNING”TOs2?STUFF(s1,6,3,s2)?STUFF(s1,1,4,s2)结果结果:结果结果:9.字符替换函数字符替换函数格式:格式:CHRTRAN(,)功能:功能:当表达式当表达式1中的一个或多个字符与表达式中的一个或多个字符与表达式2中的某个字中的某个字符相匹配时,就用表达式符相匹配时,就用表达式3中的中的对应字符对应字符替换这些字符。表达替换这些字符。表达式式2和表达式和表达式3的数量关系如下

33、:的数量关系如下:当表达式当表达式3=表达式表达式2当表达式当表达式3表达式表达式2例例2.25:x1=CHRTRAN(“ABACAD”,”ACD”,”X12”)y1=CHRTRAN(“计算机计算机ABC”,”计算机计算机”,”电脑电脑”)z1=CHRTRAN(“大家好!大家好!”,”大家大家”,”同志同志们们”)?x1,y1,z1结果结果:10.字符串匹配函数字符串匹配函数格式:格式:LIKE(,)功能:功能:比较两个字符串对应位置上的字符,若所有对应字符比较两个字符串对应位置上的字符,若所有对应字符都相匹配,返回真(都相匹配,返回真(T),否则返回假(),否则返回假(F)。)。例例2.26

34、:STORE“abc”TOxSTORE“abcd”TOy?LIKE(“ab*”,x)?LIKE(x,y)?LIKE(“Abc”,x)?LIKE(“ab*”,y)?LIKE(“?b?”,x)结果结果:结果结果:结果结果:结果结果:结果结果:注:通配符:注:通配符:*可与任何数目的字符相匹配;?可与任何单个字符相匹配。可与任何数目的字符相匹配;?可与任何单个字符相匹配。2.3.3日期和时间函数日期和时间函数1.系统日期和时间函数系统日期和时间函数格式:格式:DATE()显示当前系统日期()显示当前系统日期TIME()以()以24小时制的小时制的hh:mm:ss格式显示当前系统时间格式显示当前系统时

35、间DATETIME()显示当前系统日期时间()显示当前系统日期时间例例2.27:?DATE()?TIME()?DATETIME()结果结果:04/29/2010结果结果:16:59:05结果结果:04/29/201004:59:05PM2.年份、月份和天数函数年份、月份和天数函数格式:格式:YEAR()()从指定的日期表达式返回年份从指定的日期表达式返回年份MONTH()()从指定的日期表达式返回月份从指定的日期表达式返回月份DAY()()从指定的日期表达式返回天数从指定的日期表达式返回天数例例2.28:STORE2001-08-18TOd?YEAR(d)?MONTH(d)?DAY(d)结果结

36、果:结果结果:结果结果:3.时、分和秒函数时、分和秒函数格式:格式:HOUR()MINUTE()SEC()例例2.29:STORE2001-03-1802:30:50PTOt?HOUR(t)?MINUTE(t)?SEC(t)结果结果:结果结果:结果结果:2.3.4数据类型转换函数数据类型转换函数1.数值转换成字符串数值转换成字符串格式:格式:STR(,)功能:功能:将数值表达式的值转换成字符串。将数值表达式的值转换成字符串。例例2.30:STORE-123.456TOn?STR(n,9,2)?STR(n,3)?STR(n)?STR(n,6,2)?STR(n,6)结果结果:结果结果:结果结果:结

37、果结果:结果结果:负号占一位负号占一位如果如果值小于数值表达式的值小于数值表达式的整数部分位数,则返回整数部分位数,则返回*2.字符串转换成数值字符串转换成数值格式:格式:VAL()功能:功能:将字符型数据转成数值型数据。若字符串内出现非数字将字符型数据转成数值型数据。若字符串内出现非数字字符,只转换前面部分;若字符串的首字符不是数字符号,则字符,只转换前面部分;若字符串的首字符不是数字符号,则返回返回0。例例2.31:STORE-123.TOxSTORE45TOySTOREA45TOz?VAL(x+y)?VAL(z+y)?VAL(x+z) 结果结果:结果结果:结果结果:3.字符串转换成日期或

38、日期时间字符串转换成日期或日期时间格式:格式:CTOD()CTOT()功能:功能:CTOD()将表达式值转换成日期型数据()将表达式值转换成日期型数据CTOT()将表达式值转换成日期时间型数据()将表达式值转换成日期时间型数据4.日期或日期时间转换成字符串日期或日期时间转换成字符串格式:格式:DTOC(,1)TTOC(,1)功能:功能:DTOC()将日期型数据转换成字符串,如使用选项()将日期型数据转换成字符串,如使用选项1,则结,则结果字符串格式为果字符串格式为YYYYMMDD,共,共8字符。字符。TTOC()将日期时间型数据转换成字符串,如使用选项()将日期时间型数据转换成字符串,如使用选

39、项1,则结果字符串格式为则结果字符串格式为YYYYMMDDHHMMSS,共,共14字符。字符。例例2.33:?DTOC(08/18/0111:54:39PM)?DTOC(08/18/0111:54:39PM,1)?TTOC(08/18/0111:54:39PM)?TTOC(08/18/0111:54:39PM,1)结果结果:结果结果:结果结果:结果结果:5.宏替换函数宏替换函数格式:格式:&功能:功能:替换出字符型变量的内容。替换出字符型变量的内容。例例2.34:a=bb=庄稼庄稼?a结果:结果:b?&a结果:结果:庄稼庄稼 2.3.5测试函数测试函数1.值域测试函数值域测试函数2.空值(空值

40、(NULL值)测试函数值)测试函数3.空值(空值(“”)测试函数)测试函数4.数据类型测试函数数据类型测试函数5.表文件尾测试函数表文件尾测试函数6.表文件首测试函数表文件首测试函数7.记录号测试函数记录号测试函数8.记录个数测试函数记录个数测试函数9.条件测试函数条件测试函数10.记录删除测试函数记录删除测试函数2.3.5测试函数测试函数1.值域测试函数值域测试函数格式:格式:BETWEEN(,)功能:功能:判断表达式判断表达式1的值是否介于另外两个表达式的值之间。的值是否介于另外两个表达式的值之间。如果如果或或有一个是有一个是NULL值,则函数值也是值,则函数值也是NULL值。值。例例2.

41、35:STORENULLTOxSTORE100TOy?BETWEEN(150,y,y+100)?BETWEEN(90,x,y)结果结果:结果结果:2.空值(空值(NULL)测试函数)测试函数格式:格式:ISNULL()功能:功能:判断一个表达式的运算结果是否为判断一个表达式的运算结果是否为NULL值,若是值,若是NULL值则返回真(值则返回真(T),否则返回假(),否则返回假(F)。)。例例2.36:x=NULL?ISNULL(x)结果结果:3.空值(空值(“”)值测试函数)值测试函数格式:格式:EMPTY()功能:功能:判断是否为判断是否为“空空”值。值。例:例:X=“”Y=NULL?EMP

42、TY(X)?EMPTY(Y)结果结果:结果结果:4.数据类型测试函数数据类型测试函数格式:格式:VARTYPE(,)功能:功能:测试表达式的类型。若表达式值是测试表达式的类型。若表达式值是NULL,则根据逻辑,则根据逻辑表达式决定是否返回类型,表达式决定是否返回类型,T表示返回,表示返回,F(缺省)表示返回(缺省)表示返回X(表明结果是(表明结果是NULL值)。值)。例例2.37:STORENULLTOXSTORE10TOYSTORE$100.2TOZ?VARTYPE(X)?VARTYPE(Y)结果结果:结果结果:?VARTYPE(X,T)?VARTYPE(Z)结果结果:结果结果:5.表文件尾

43、测试函数表文件尾测试函数格式:格式:EOF(工作区号表别名)(工作区号表别名)例例2.38:USE仓库仓库GOBOTTOM?EOF()SKIP?EOF()首记录(TOP)文件起始标识BOF第2个记录 .第i 个记录 .尾记录(BOTTOM)文件结束标识EOF结果结果:结果结果:6.表文件首测试函数表文件首测试函数格式:格式:BOF()功能:功能:测试当前文件的记录指针是否指向文件首,若是则返测试当前文件的记录指针是否指向文件首,若是则返回回T,否则返回,否则返回F。例:例:USE仓库仓库GOBOTTOMSkip-1?EOF()结果结果:首记录(TOP)文件起始标识BOF第2个记录 .第i 个记

44、录 .尾记录(BOTTOM)文件结束标识EOF7.记录号测试函数记录号测试函数格式:格式:RECno(工作区号表别名)(工作区号表别名)功能:功能:返回当前表文件中当前记录的记录号返回当前表文件中当前记录的记录号例:例:?RECno(1)8.记录个数测试函数记录个数测试函数格式:格式:RECCOUNT(工作区号表别名)(工作区号表别名)功能:功能:返回当前表文件中的记录个数。返回当前表文件中的记录个数。例:例:?RECCOUNT(1)9.条件测试函数条件测试函数格式:格式:IIF(,)功能:功能:测试测试的值,若为真,函数返回表达式的值,若为真,函数返回表达式1的值;若为假,函数返回表达式的值

45、;若为假,函数返回表达式2的值。的值。例例2.39:X=100Y=300?IIF(X100,x-50,x+50)?IIF(Y100,Y-50,Y+50)结果结果:结果结果:10.记录删除测试函数记录删除测试函数格式:格式:DELETED(工作区号表别名)(工作区号表别名)功能:功能:测试当前表文件的测试当前表文件的当前记录当前记录是否被逻辑删除。若有就是否被逻辑删除。若有就返回真(返回真(T),否则返回假(),否则返回假(F)。)。例:例:?DELETED(“仓库仓库”)2.4程序与程序文件程序与程序文件2.4.1程序的概念程序的概念程序是计算机能够完成一定任务,按顺序设计的计算机指令程序是计

46、算机能够完成一定任务,按顺序设计的计算机指令程序是计算机能够完成一定任务,按顺序设计的计算机指令程序是计算机能够完成一定任务,按顺序设计的计算机指令的集合。的集合。的集合。的集合。程序的特点:程序的特点:程序的特点:程序的特点: 可以利用编辑器方便地输入、修改和保存。可以利用编辑器方便地输入、修改和保存。可以利用编辑器方便地输入、修改和保存。可以利用编辑器方便地输入、修改和保存。 可以多次运行程序文件。可以多次运行程序文件。可以多次运行程序文件。可以多次运行程序文件。 在程序中可以使用特有的命令和语句,完成复杂的功能。在程序中可以使用特有的命令和语句,完成复杂的功能。在程序中可以使用特有的命令

47、和语句,完成复杂的功能。在程序中可以使用特有的命令和语句,完成复杂的功能。2.4.2程序文件的建立和执行程序文件的建立和执行1.程序文件的建立和修改程序文件的建立和修改命令格式:命令格式:MODIFY COMMAND MODIFY COMMAND 文件名文件名功能:打开程序窗口。功能:打开程序窗口。2、程序的运行、程序的运行命令格式:命令格式:DO DO 文件名文件名功能:调用程序文件,运行程序。功能:调用程序文件,运行程序。例例2.4编写程序,计算圆的周长和面积。编写程序,计算圆的周长和面积。ClearR=3p=2*pi()*Ra=pi()*R2?”周长周长=”,p?”面积面积=”,a2.4

48、.3简单的输入简单的输入/输出命令输出命令1. INPUT1. INPUT命令命令格式:格式:INPUT INPUT 字符表达式字符表达式 TO TO 2. ACCEPT2. ACCEPT命令命令格式:格式:ACCEPT ACCEPT 字符表达式字符表达式 TO TO 3. WAIT3. WAIT命令命令格式:格式:WAIT WAIT 字符表达式字符表达式 TO TO WINDOW AT WINDOW AT 行,列行,列注:注:input 可输入任何类型数据; accept和wait 只输入字符型数据。 2.5程序的基本结构程序的基本结构三种基本结构:顺序、选择和循环。三种基本结构:顺序、选择

49、和循环。顺序结构顺序结构是一种按语句的顺序去执行的程是一种按语句的顺序去执行的程序结构。例如:序结构。例如: SELECT 1SELECT 1 USE XS USE XS LIST LIST SELECT 2 SELECT 2 USE CJ USE CJ LIST LIST2.5.1选择结构选择结构选择结构选择结构是根据条件判断的结果去执行是根据条件判断的结果去执行不同的语句,选择结构的框图如下:不同的语句,选择结构的框图如下:N条件?条件?Y语句组语句组A语句组语句组B1、IFELSE语句语句语句格式:语句格式:IF IF 条件条件 语句组语句组A A ELSE ELSE 语句组语句组B B

50、 ENDIF ENDIF例例2.41: 编写程序,其功能是:先从键盘上接收两个数编写程序,其功能是:先从键盘上接收两个数编写程序,其功能是:先从键盘上接收两个数编写程序,其功能是:先从键盘上接收两个数x x和和和和y y,然,然,然,然后判断后判断后判断后判断x x能否被能否被能否被能否被3 3整除。如果整除。如果整除。如果整除。如果x x能被能被能被能被3 3整除,那么整除,那么整除,那么整除,那么y y的值增加的值增加的值增加的值增加x x;否则否则否则否则y y的值不变。的值不变。的值不变。的值不变。CLEARINPUT X= TO xINPUT Y= TO yIF x%3=0y=y+x

51、ENDIF?Y=,y2、DOCASE(多分支)语句(多分支)语句条件条件1?语句组语句组B语句序列1条件条件2?语句组语句组B语句序列2条件条件n?语句组语句组B语句序列nOTHERWISE语句组语句组B语句序列真真真真假假假2、DOCASE语句语句命令格式:命令格式:命令格式:命令格式: DOCASEDOCASECASECASE条件条件条件条件1 1语句组语句组语句组语句组1 1CASECASE条件条件条件条件2 2 语句组语句组语句组语句组2 2CASECASE条件表条件表条件表条件表N N 语句组语句组语句组语句组N NOTHERWISEOTHERWISE语句组语句组语句组语句组N+1N

52、+1ENDCASEENDCASE例例2.43:编写程序,当输入成绩时,显示成绩等级。编写程序,当输入成绩时,显示成绩等级。CLEARINPUT请输入考试成绩:请输入考试成绩:TOchjDOCASECASEchj60dj=不合格不合格CASEchj90dj=通过通过OTHERWISEdj=优秀优秀ENDCASE?成绩等级:成绩等级:+dj2.5.2循环结构循环结构1. DO WHILE1. DO WHILE语句语句语句语句格式:格式:格式:格式: DO WHILE DO WHILE DO WHILE DO WHILE 条件条件条件条件 语句组语句组语句组语句组 ENDDOENDDOENDDOEN

53、DDO功能:功能:功能:功能: 根据条件执行循环。根据条件执行循环。根据条件执行循环。根据条件执行循环。 条件?条件?循环体真假循环结构循环结构循环结构循环结构是根据条件重复执行某些语句。是根据条件重复执行某些语句。是根据条件重复执行某些语句。是根据条件重复执行某些语句。 VFPVFP有有有有三种三种三种三种。循环结构循环结构循环结构循环结构例例2.44:计算计算1到到100的累加值的累加值Sclears=0i=1dowhilei=100s=s+ii=i+1enddo?s 条件?条件?循环体真假2. FOR语句语句格式:格式:格式:格式: FOR FOR FOR FOR = TO TO TO

54、TO STEP STEP STEP STEP ENDFOR ENDFOR ENDFOR ENDFOR功能:功能:功能:功能: 用于已知循环次数的循环。用于已知循环次数的循环。用于已知循环次数的循环。用于已知循环次数的循环。sum=0for i=1 to 100sum=sum+iendfor?sum 例例例例1:1:在屏幕上画出三角形在屏幕上画出三角形在屏幕上画出三角形在屏幕上画出三角形CLEARCLEARFORi=1TO5FORi=1TO5FORj=1TO2*i-1FORj=1TO2*i-1i,30-i+jSAY*i,30-i+jSAY*NEXTjNEXTjNEXTiNEXTi26272829

55、30313233343536373839403. SCAN语句语句格式:格式:SCAN FOR SCAN FOR 条件条件表达式表达式 语句组语句组 ENDSCANENDSCAN功能:功能:对表中的记录自动扫描,并执行相应的命令对表中的记录自动扫描,并执行相应的命令对表中的记录自动扫描,并执行相应的命令对表中的记录自动扫描,并执行相应的命令。例例1:显示显示显示显示仓库仓库仓库仓库表中所有表中所有表中所有表中所有面积面积面积面积在在在在6060以下的记录,显示一条画一以下的记录,显示一条画一以下的记录,显示一条画一以下的记录,显示一条画一条横线条横线条横线条横线。 USEUSE仓库仓库仓库仓库

56、SCANFORSCANFOR面积面积面积面积6060?仓库号仓库号仓库号仓库号, ,城市城市城市城市, ,面积面积面积面积?-?-ENDSCANENDSCAN例例2: 用用scan语句语句查询定位记录在赵伟上。查询定位记录在赵伟上。CLEARSCANFOR姓名姓名=赵伟赵伟DISPLAYENDSCAN例例3:用用scan语句扫描符合条件的记录,把语句扫描符合条件的记录,把年龄小于年龄小于30岁的人显示出来。岁的人显示出来。CLEARSCANFOR年龄年龄30DISPLAYENDSCAN2.6多模块程序设计多模块程序设计2.6.1模块的定义和调用模块的定义和调用1、模块及其定义、模块及其定义模块

57、可以是命令文件,也可以是过程模块可以是命令文件,也可以是过程模块可以是命令文件,也可以是过程模块可以是命令文件,也可以是过程过程的定义:过程的定义:过程的定义:过程的定义:PROCEDURE/FUNCTION PROCEDURE/FUNCTION PROCEDURE/FUNCTION PROCEDURE/FUNCTION 过程名过程名过程名过程名语句行语句行语句行语句行RETURN RETURN RETURN RETURN 表达式表达式表达式表达式ENDPROC/ENDFUNCENDPROC/ENDFUNCENDPROC/ENDFUNCENDPROC/ENDFUNC2.模块的调用模块的调用格式

58、格式1:DO文件名文件名/过程名过程名格式格式2:文件名文件名/过程名()过程名()要调用过程,应先打开过程文件:要调用过程,应先打开过程文件:SET PROCEDERE TO SET PROCEDERE TO 过程文件名过程文件名用完之后,要关闭过程文件:用完之后,要关闭过程文件:SET PROCEDURE TOSET PROCEDURE TO RELEASE PROCEDURE RELEASE PROCEDURE 过程文件名过程文件名2.6.2参数传递参数传递(1)参数语句)参数语句为了使过程或函数能够接受参数,在过程中的为了使过程或函数能够接受参数,在过程中的第一条可执行语句必须是参数语

59、句,格式为:第一条可执行语句必须是参数语句,格式为:PARAMETERS PARAMETERS 参数表参数表 LPARAMETERS LPARAMETERS 参数表参数表参数表也称为形参,最多可允许参数表也称为形参,最多可允许27个参数,参个参数,参数之间用逗号分开。数之间用逗号分开。(2)传递参数)传递参数当调用一个过程时,应该把实际的数据传递给当调用一个过程时,应该把实际的数据传递给虚参,称为实参。虚参,称为实参。格式格式1:DO DO 过程名过程名 WITH WITH 实参表实参表格式格式2:过程过程名名(实参表实参表)u实参可以是常量、变量或表达式实参可以是常量、变量或表达式u实参表与虚参表应在个数、位置上一一对应实参表与虚参表应在个数、位置上一一对应u参数传递有按值传递和引用传递两种,可用参数传递有按值传递和引用传递两种,可用SET UDFPARMS TO VALUE/REFERENCESET UDFPARMS TO VALUE/REFERENCE命令设置命令设置2.6.3变量的作用域变量的作用域1、全局变量、全局变量PUBLIC PUBLIC 内存变量表内存变量表2、私有变量、私有变量在程序直接使用的变量在程序直接使用的变量3、局部变量、局部变量LOCAL LOCAL 内存变量表内存变量表

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号