[IT认证]VFP第2章.ppt

上传人:sccc 文档编号:4593875 上传时间:2023-04-29 格式:PPT 页数:76 大小:310.50KB
返回 下载 相关 举报
[IT认证]VFP第2章.ppt_第1页
第1页 / 共76页
[IT认证]VFP第2章.ppt_第2页
第2页 / 共76页
[IT认证]VFP第2章.ppt_第3页
第3页 / 共76页
[IT认证]VFP第2章.ppt_第4页
第4页 / 共76页
[IT认证]VFP第2章.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《[IT认证]VFP第2章.ppt》由会员分享,可在线阅读,更多相关《[IT认证]VFP第2章.ppt(76页珍藏版)》请在三一办公上搜索。

1、第章,VFP程序设计基础,2.1 常量与变量2.2 表达式2.3 常用函数2.4 程序与程序文件2.5 程序的基本结构,第 章,2.1.1 常量字符型常量(C)123、abc数值型常量(N)123.45、-0.0023、+21逻辑型常量(L).T.和.F.(真和假)货币型常量($)$123.45日期型常量(D)YYYYMMDD日期时间型常量(T)YYYYMMDDHHMMSS(1)严格的日期格式 2000-09-01,2.1 常量与变量,(2)日期格式的设置命令Set mark to“-”指定显示日期值所用的分隔符。Set century onoffto 19 rollover 51 显示或解释

2、一个日期数据的完整年份。Set date to AMERICAN|JAPAN|YMD 设置日期显示的格式。Set strictdate to 0|1|2 设置是否对日期格式进行检查。,2.1.2 变量,变量:以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成。例如:XYZ、年龄、A2、2X、_ab。字段变量:表中的字段名称为字段变量。内存变量:代表内存中的一个存储单元。例如:int i,i=1 向简单内存变量赋值不必事先定义!1、简单内存变量赋值格式1:STORE“表达式”TO 变量名表格式2:变量名=“表达式”,2.数组,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同

3、类数据元素的集合称为数组。数组分为一维数组和二维数组。创建数组的命令格式有两种:(1)dimension 数组名(元素个数)例1:dimension B(10)(2)declare 数组名(行个数,列个数)例2:DECLARE A(2,3),数组赋值例1:dimension B(10)B(1)=1 B(2)=2 B(3)=3.例2:declare A(2,3)A(1,3)=24 A(2,2)=“张三”为数组整体赋值:A=0 所有数组元素的值均为0,A(1),A(2),A(3),A(4),A(5),A(6),2.1.3 内存变量常用命令,1.内存变量的赋值格式1:STORE“表达式”TO 变量名

4、表格式2:变量名=“表达式”2.表达式值的显示格式1:?表达式格式2:?表达式3.内存变量的显示格式1:LIST MEMORY格式1:DISPLAY MEMORY,4.内存变量的清除格式1:CLEAR MEMORY-清除所有内存变量格式2:RELEASE 内存变量名-清除指定内存变量格式3:RELEASE ALL LIKE/EXCEPT如:RELEASE ALL LIKE A?RELEASE ALL EXCEPT A?,例2.4:在命令窗口中依次输入以下命令CLEAR MEMORYDIMENSION y(2,2)STORE xxx TO x1,y(1,1)y(3)=2001-03-23X2=$

5、123.23List memo like y*Display memory,结果:,或,单引号和双引号都一样!,5.表与数组之间的数据传递(1)把当前记录复制到数组 FIELDS 字段名1,字段名2 TO 数组名(2)把数组数据复制到当前记录 FROM 数组名 FIELDS 字段名1,字段名2,SCATTER,GATHER,2.2 表达式,将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的、有意义的式子称为表达式。例如:6 7 a=“Hello”0 1 表达式分类:数值、字符与日期时间表达式,关系表达式和逻辑表达式。,2.2.1 数值、字符与日期时间表达式1.数值表达式

6、算术运算符:+-*/%先乘方,再乘除、后加减,括号优先?(1/60-3/56)*18.4500 结果:-0.6809 求余运算:%?12%5 结果:2,2.字符表达式,+2个字符串相加,即把2个字符串连接成一个字符串。2个字符串相减,即把2个字符串连接起来,但将前字符串尾部空格移到合并后的新字符串尾部。,a=“Hello”b=“everyone!”?a+b,len(a+b)结果为Hello everyone!,15?a-b,len(a-b)结果为Helloeveryone!,15,例2.7:,3.日期时间表达式,日期整数:得到另一个日期。日期-日期:得到两个日期相隔的天数。日期时间秒数:得到另

7、一个日期时间。日期时间-日期时间:得到两个日期时间相差的秒数 例:D1=2000-07-12 D2=2000-08-28?D2-D1 47 两个日期相隔的天数为47天?D1+20 08/01/2000 距离D1的20天后是8月1日,P 89/4,2.2.2 关系表达式,关系表达式是由关系运算符将两个表达式连接起来形成,即:,结果是逻辑值(真和假)。关系运算符共有7个:、=、(或!=)、$例:0-1、$150$105 数值型、货币型数据比较2002-01-10 2001-12-28 日期型数据比较.T.F.逻辑型数据比较“abc”“a”子串包含测试,$,字符串精确比较与EXACT设置,SET E

8、XACT ON 为精确比较,参加比较的两个字符串必须完全相同,才返回逻辑真值。SET EXACT OFF 为不精确比较,例如:当 SET EXACT ON?ABCDE=ABC&.F.?ABCX=ABCX&.T.?ABCDE=ABC&.T.?ABC=ABCDE&.F.,注意:在用“=”比较两个字符串时,只有当两个字符串完全相同时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。,当 SET EXACT OFF,2.2.3 逻辑表达式,逻辑表达式是由逻辑运算符将逻辑型数据连接起来形成的式子。逻辑运算符共有3个:.AND.(逻辑与).OR.(逻辑或).NOT.(逻辑非)例:查询基本工资高于1800元

9、的讲师和副教授。条件表达式应当写成:基本工资=1800 AND(职称=“讲师”OR 职称=“副教授”),2.3 常用函数,函数是数学中的一种对应关系,是从输入值的集合A到所有的输出值的集合B的对应,记作 f(x)。,常用函数分为数值函数、字符处理函数、日期类函数、数据类型转换函数和测试函数五类。,y,2.3.1 数值函数,1.绝对值和符号函数格式:ABS()返回绝对值;SIGN()返回符号1、-1、0;例2.12:STORE 10 TO x?ABS(5-x)?ABS(x-5)?SIGN(5-x)?SIGN(x-10),结果:,结果:,结果:,结果:,2.求平方根函数格式:SQRT()功能:返回

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

11、OUND(,)功能:返回指定表达式在指定位置四舍五入后的结 果。若“数值表达式2”=0,表示要保留的小数位数;若“数值表达式2”0,表示整数部分的舍入位数。例2.15:X=345.345?ROUND(X,2)?ROUND(X,1),结果:,结果:,?ROUND(X,0)?ROUND(X,-1),结果:,结果:,6.求余数函数格式:MOD(,)功能:返回两个数值相除后的余数。余数的正负号与除数相同。如果被除数与除数同号,函数值即为两数相除的余数;被除数与除数异号,则函数值即为两数相除的余数再加上除数的值。例2.16:?MOD(10,3)?MOD(10,-3),结果:,结果:,?MOD(-10,3

12、)?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()UPPER()功能:LOWER()将指定表达式值中的大写字母转换成小写字母。UPPER()将指定表达式值中的小写字母转换成大写字母。例2.19:?LOWER(X1y2A*)?UPPER(n=1),结果:,结果:,3.空格字符串生

13、成函数格式:SPACE()功能:返回number个空格例:name=张+space(2)+三“?name,结果:,4.删除前后空格函数格式:TRIM()去掉字符串尾部的空格LTRIM()去掉字符串首部的空格ALLTRIM()去掉字符串前部和尾部的空格例:?trim(aaa)+b?c+ltrim(aaa)?c+alltrim(aaa)+b,5.取子串函数格式:LEFT(,)RIGHT(,)SUBSTR(,)功能:LEFT()从表达式的左端取指定长度的子串作为函数值RIGHT()从表达式的右端取指定长度的子串作为函数值SUBSTR()从表达式的指定起始位置取指定长度的子串例2.21:STORE“G

14、OOD BYE!”TO x?LEFT(x,2)?RIGHT(x,3)?SUBSTR(x,6,2)+SUBSTR(x,6),结果:,结果:,结果:,6.计算子串出现次数函数格式:OCCURS(,)功能:返回第一个字符串在第二个字符串中出现的次数。例2.22:STORE abracadabra TO s?OCCURS(a,s)?OCCURS(c,s),?OCCURS(b,s)?OCCURS(e,s),结果:,结果:,结果:,结果:,7.求子串位置函数格式:AT(,)ATC(,,)功能:AT():如果前者是后者的子串,则返回前者的首字符在后者中的位置,或者返回0。数值表明在表达式2中搜索表达式1值时

15、第几次出现。ATC():与AT()功能类似,但在子串比较时不区分字母大小写。例2.23:STORE“This is Visual FoxPro”TO x?AT(“fox”,x)?AT(“is”,x,3),结果:,结果:,8.子串替换函数格式:STUFF(,)功能:用表达式2替换表达式1中由起始位置和长度指明的子串。例2.24:STORE“GOOD BYE!”TO s1STORE“MORNING”TO s2?STUFF(s1,6,3,s2)?STUFF(s1,1,4,s2),结果:,结果:,9.字符替换函数格式:CHRTRAN(,)功能:当表达式1中的一个或多个字符与表达式2中的某个字符相匹配时

16、,就用表达式3中的对应字符替换这些字符。表达式2和表达式3的数量关系如下:当表达式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:STORE“abc”TO xSTORE“abcd”TO y?LIKE(“ab*”,x)?LIKE(x,y)?LIKE

17、(“Abc”,x),?LIKE(“ab*”,y)?LIKE(“?b?”,x),结果:,结果:,结果:,结果:,结果:,注:通配符:*可与任何数目的字符相匹配;?可与任何单个字符相匹配。,2.3.3 日期和时间函数,1.系统日期和时间函数格式:DATE()显示当前系统日期TIME()以24小时制的hh:mm:ss格式显示当前系统时间DATETIME()显示当前系统日期时间例2.27:?DATE()?TIME()?DATETIME(),结果:04/29/2010,结果:16:59:05,结果:04/29/2010 04:59:05 PM,2.年份、月份和天数函数格式:YEAR()从指定的日期表达式

18、返回年份MONTH()从指定的日期表达式返回月份DAY()从指定的日期表达式返回天数例2.28:STORE 2001-08-18 TO d?YEAR(d)?MONTH(d)?DAY(d),结果:,结果:,结果:,3.时、分和秒函数格式:HOUR()MINUTE()SEC()例2.29:STORE2001-03-18 02:30:50 PTO t?HOUR(t)?MINUTE(t)?SEC(t),结果:,结果:,结果:,2.3.4 数据类型转换函数,1.数值转换成字符串格式:STR(,)功能:将数值表达式的值转换成字符串。例2.30:STORE-123.456 TO n?STR(n,9,2)?S

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

20、据CTOT()将表达式值转换成日期时间型数据,4.日期或日期时间转换成字符串格式:DTOC(,1)TTOC(,1)功能:DTOC()将日期型数据转换成字符串,如使用选项1,则结果字符串格式为YYYYMMDD,共8字符。TTOC()将日期时间型数据转换成字符串,如使用选项1,则结果字符串格式为YYYYMMDDHHMMSS,共14字符。例2.33:?DTOC(08/18/01 11:54:39 PM)?DTOC(08/18/01 11:54:39 PM,1)?TTOC(08/18/01 11:54:39 PM)?TTOC(08/18/01 11:54:39 PM,1),结果:,结果:,结果:,结果

21、:,5.宏替换函数格式:&功能:替换出字符型变量的内容。例2.34:a=b b=庄稼?a 结果:b?&a 结果:庄稼,2.3.5 测试函数,1.值域测试函数2.空值(NULL值)测试函数3.空值(“”)测试函数4.数据类型测试函数5.表文件尾测试函数6.表文件首测试函数7.记录号测试函数8.记录个数测试函数9.条件测试函数10.记录删除测试函数,2.3.5 测试函数,1.值域测试函数格式:BETWEEN(,)功能:判断表达式1的值是否介于另外两个表达式的值之间。如果或有一个是NULL值,则函数值也是NULL值。例2.35:STORE NULL TO xSTORE 100 TO y?BETWEE

22、N(150,y,y+100)?BETWEEN(90,x,y),结果:,结果:,2.空值(NULL)测试函数格式:IS NULL()功能:判断一个表达式的运算结果是否为NULL值,若是NULL值则返回真(T),否则返回假(F)。例2.36:x=NULL?ISNULL(x),结果:,3.空值(“”)值测试函数格式:EMPTY()功能:判断是否为“空”值。例:X=“”Y=NULL?EMPTY(X)?EMPTY(Y),结果:,结果:,4.数据类型测试函数格式:VARTYPE(,)功能:测试表达式的类型。若表达式值是NULL,则根据逻辑表达式决定是否返回类型,T表示返回,F(缺省)表示返回X(表明结果是

23、NULL值)。例2.37:STORE NULL TO XSTORE 10 TO YSTORE$100.2 TO Z?VARTYPE(X)?VARTYPE(Y),结果:,结果:,?VARTYPE(X,T)?VARTYPE(Z),结果:,结果:,5.表文件尾测试函数格式:EOF(工作区号表别名)例2.38:USE 仓库GO BOTTOM?EOF()SKIP?EOF(),结果:,结果:,6.表文件首测试函数格式:BOF()功能:测试当前文件的记录指针是否指向文件首,若是则返回T,否则返回F。例:USE 仓库GO BOTTOMSkip-1?EOF(),结果:,7.记录号测试函数格式:RECno(工作区

24、号表别名)功能:返回当前表文件中当前记录的记录号 例:?RECno(1)8.记录个数测试函数格式:RECCOUNT(工作区号表别名)功能:返回当前表文件中的记录个数。例:?RECCOUNT(1),9.条件测试函数格式:IIF(,)功能:测试的值,若为真,函数返回表达式1的值;若为假,函数返回表达式2的值。例2.39:X=100Y=300?IIF(X100,x-50,x+50)?IIF(Y100,Y-50,Y+50),结果:,结果:,10.记录删除测试函数格式:DELETED(工作区号表别名)功能:测试当前表文件的当前记录是否被逻辑删除。若有就返回真(T),否则返回假(F)。例:?DELETED

25、(“仓库”),2.4 程序与程序文件,2.4.1 程序的概念程序是计算机能够完成一定任务,按顺序设计的计算机指令的集合。程序的特点:可以利用编辑器方便地输入、修改和保存。可以多次运行程序文件。在程序中可以使用特有的命令和语句,完成复杂的功能。,2.4.2 程序文件的建立和执行,1.程序文件的建立和修改命令格式:MODIFY COMMAND 文件名功能:打开程序窗口。2、程序的运行命令格式:DO 文件名功能:调用程序文件,运行程序。,例2.4 编写程序,计算圆的周长和面积。ClearR=3p=2*pi()*Ra=pi()*R2?”周长=”,p?”面积=”,a,2.4.3 简单的输入/输出命令,1

26、.INPUT命令格式:INPUT 字符表达式 TO 2.ACCEPT命令格式:ACCEPT 字符表达式 TO 3.WAIT命令格式:WAIT 字符表达式 TO WINDOW AT 行,列,注:input 可输入任何类型数据;accept和wait 只输入字符型数据。,2.5 程序的基本结构,三种基本结构:顺序、选择和循环。顺序结构是一种按语句的顺序去执行的程序结构。例如:SELECT 1 USE XS LIST SELECT 2 USE CJ LIST,2.5.1 选择结构,选择结构是根据条件判断的结果去执行不同的语句,选择结构的框图如下:,1、IFELSE语句,语句格式:IF 条件 语句组A

27、 ELSE 语句组B ENDIF,例2.41:编写程序,其功能是:先从键盘上接收两个数x和y,然后判断x能否被3整除。如果x能被3整除,那么y的值增加x;否则y的值不变。CLEARINPUT X=TO xINPUT Y=TO yIF x%3=0y=y+xENDIF?Y=,y,2、DOCASE(多分支)语句,2、DOCASE语句,命令格式:DO CASE CASE 条件1 语句组1 CASE 条件2 语句组2 CASE 条件表N 语句组N OTHERWISE 语句组N+1 ENDCASE,例2.43:编写程序,当输入成绩时,显示成绩等级。,CLEARINPUT 请输入考试成绩:TO chjDO

28、CASECASE chj60 dj=不合格CASE chj90 dj=通过OTHERWISE dj=优秀ENDCASE?成绩等级:+dj,2.5.2 循环结构,1.DO WHILE语句格式:DO WHILE 条件 语句组 ENDDO功能:根据条件执行循环。,循环结构是根据条件重复执行某些语句。VFP有三种。,循环结构,例2.44:计算1到100的累加值Sclear s=0 i=1 do while i=100 s=s+i i=i+1 enddo?s,2.FOR语句,格式:FOR=TO STEP ENDFOR功能:用于已知循环次数的循环。,sum=0for i=1 to 100sum=sum+i

29、endfor?sum,例1:在屏幕上画出三角形 CLEAR FOR i=1 TO 5 FOR j=1 TO 2*i-1 i,30-i+j SAY*NEXT j NEXT i,3.SCAN语句,格式:SCAN FOR 条件表达式 语句组 ENDSCAN功能:对表中的记录自动扫描,并执行相应的命令。例1:显示仓库表中所有面积在60以下的记录,显示一条画一条横线。USE 仓库 SCAN FOR 面积60?仓库号,城市,面积?-ENDSCAN,例2:用scan语句查询定位记录在赵伟上。CLEARSCAN FOR 姓名=赵伟DISPLAYENDSCAN例3:用scan语句扫描符合条件的记录,把年龄小于3

30、0岁的人显示出来。CLEARSCAN FOR 年龄30DISPLAYENDSCAN,2.6 多模块程序设计,2.6.1 模块的定义和调用1、模块及其定义模块可以是命令文件,也可以是过程过程的定义:PROCEDURE/FUNCTION 过程名 语句行 RETURN 表达式 ENDPROC/ENDFUNC,2.模块的调用,格式1:DO 文件名/过程名格式2:文件名/过程名()要调用过程,应先打开过程文件:SET PROCEDERE TO 过程文件名用完之后,要关闭过程文件:SET PROCEDURE TO RELEASE PROCEDURE 过程文件名,2.6.2 参数传递,(1)参数语句为了使过

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号