VisualFoxPro程序设计基础.ppt
《VisualFoxPro程序设计基础.ppt》由会员分享,可在线阅读,更多相关《VisualFoxPro程序设计基础.ppt(79页珍藏版)》请在三一办公上搜索。
1、全国计算机等级考试,Visual FoxPro 程序设计,数 据 库 应 用,主讲老师:段克奇,第2章 Visual FoxPro程序设计基础,在Visual FoxPro中,除了能够对数据表中的数据进行处理,也可以对诸如常量、内存变量等数据表之外的数据进行单独处理。简单的数据处理可以通过函数、表达式和单条命令完成,复杂的数据处理则可能需要编写程序来完成。本章介绍Visual FoxPro程序设计基础,内容包括常量、内存变量、表达式、常用函数、程序的基本结构以及多模块程序设计。,本章知识点在笔试考试中的分析明细表,2.1 常量与变量,1.常量 常量通常是指以文字串形式出现在代码中的数据,代表一
2、个具体的、不变的值。而变量用于存储数据,一个变量在不同的时刻可以存放不同的数据常量类型包括数值型、货币型、字符型、日期型、日期时间型和逻辑型。不同类型的常量有不同的书写格式。接下来分别介绍:,1)数值型常量数值型常量就是常数,用来表示一个数的大小,由数字09、小数点和正负号构成,在内存中占8个字节。2)货币型常量货币型常量用来表示货币值,在内存中占8个字节,在书写时要加上一个前置的美元符号($)。货币数据在存储和计算时,采用4位小数,多于4位小数,系统会自动将多余的小数位四舍五入。3)字符型常量字符型常量也称字符串,其表示方法是用定界符半角单引号、双引号或方括号把字符串括起来。如:”计算机”,
3、567,姓名,ABC”abc”。,4)日期型常量日期型常量在内存中占8个字节,定界符是一对花括号。日期型常量中默认的分隔符是斜杠(/),另外还包括“-”、“.”和空格等。日期型常量的格式有两种:(1)传统的日期格式。月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。系统默认的日期型数据为美国日期格式“mm/dd/yy”(月/日/年)。(2)严格的日期格式。表示为yyyy-mm-dd,用这种格式书写的日期常量能表达一个确切的日期。书写时要注意:花括号内第一个字符必须是脱字符();年份必须用4位(如2010、2011等);年月日的次序不能颠倒、不能缺省。,影响日期格式的设置命令,(1)S
4、ET MARK TO set mark to命令功能:用于指定显示日期时所用的分隔符。如果SET MARK TO后面没有指定分隔符,表示恢复系统默认的斜杠分隔符。(2)SET DATE TO AMERICANANSI set date to命令功能:用于设置日期显示的格式。如果SET DATE TO后面没有指定日期显示的格式,表示恢复系统默认的mm/dd/yy(月/日/年)格式。(3)SET CENTURY ONOFF set century 命令功能:指定如何显示或解释一个日期数据的年份。ON显示世纪,即用4位数字表示年份。OFF不显示世纪,即用2位数字表示年分。它是系统默认的设置。,操作举
5、例,5)日期时间型常量日期时间型常量包括日期和时间两部分内容,日期时间型数据用8个字节存储。其中用AP(或A)表示上午,用PM(或P)表示下午,默认值为AM。6)逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值。逻辑型数据只占用一个字节。逻辑真的常量表示形式有:.T.、.T.、.Y.和.y.。逻辑假的常量表示形式有:.F.、.F.、.N.和.n.。,2.变量 变量的命名规则:变量的值是可以随时更改的,每个变量对应一个变量名,变量的命名以字母、汉字和下划线开头,后接字母、数字、汉字和下划线构成,开头不能用数字。分类:分为字段变量和内存变量两大类 内存变量的数据类型包括:字符型(C)、数值型(N)、货
6、币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T),1)简单内存变量 在Visual FoxPro中,一个变量在使用前并不需要特别的声明或定义。当出现内存变量与字段变量同名时,若简单地用变量名访问,则系统默认为是字段变量。若要访问内在变量,则必须在变量名前加上前缀M.(或M-),例如M.姓名。2)数组 数组是内存中连续的一片存储区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下标来访问。每个数组元素相当于一个简单变量,可以给各元素分别赋值,并且各元素的数据类型可以不同。数组大小由下标的上、下限决定,下限规定为1。,创建数组:格式:格式1:DIMENSION(,),格式2:DEC
7、LARE(,),例如:DIMENSION x(5),y(2,3)定义了两个数组。一维数组x含有5个数组元素:x(1),x(2),x(3),x(4),x(5)。二维数组y含有6个元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3),二维数组可以转化为一维数组:二维数组与二维表存在对应关系。如:数组y(1,1)与二维表中的第一行第一列对应;y(2,3)与二维表中的第二行第三列对应。,3.内存变量常用命令1)内存变量的赋值Visual FoxPro中的内存变量赋值有两种格式:命令格式1:命令格式1:STORE To 功能:计算表达式并将表达式值赋给一个或多个内存变
8、量,等号一次只能给一个内存变量赋值;STORE可以同时给多个变量赋于相同的值,各变量名之间用逗号隔开。,2)表达式值的显示格式1:?格式2:?注意:不管有没有指定表达式,格式1都会输出一个回车换行符。如果指定了表达式,各表达式值将在下一行的起始处输出。格式2不会输出一个回车换行符,各表达式值在当前行的光标所在处直接输出。能:首先计算出表达式的值,再将该值赋给内存变量。,3)内存变量的显示命令格式:DISPLAYLIST MEMORY LIKETO PRINTERPROMPT/TO FILE 功能:显示当前内存中的内存变量名称、作用范围、数据类型和值。DISPLAY和LIST的区别在于:D1SP
9、LAY命令分屏显示,每显示一屏暂停,按任意键后继续显示;LIST命令连续显示,中间不停顿,直到显示完毕。通配符有?和*两种:?代表单个字符,*代表一个或多个字符。若缺省任选项LIKE,则显示当前内存中的所有内存变量;若选用该选项,则显示与相匹配的内存变量。,4)内存变量的清除 格式:格式1:CLEAR MEMORY格式2:RELEASE 格式3:RELEASE ALLEXTENDED格式4:RELEASE ALLLIKEEXCEPT说明:格式1用于清除所有内存变量。格式2用于清除指定的内存变量。格式3用于清除所有的内存变量。在人机会话状态,其作用与格式1相同。如果出现在程序中,则应该加上短语E
10、XTENDED,否则不能删除公共内存变量。格式4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除与通配符不相匹配的内存变量。,5)表中数据与数组数据之间的交换 将表的当前记录复制到数组。命令格式为:格式1:SCATTERFIELDSMEMOTOBLANK格式2:SCATTERFIELDS LIKEFIELDS EXCEPTMEMOTOBLANK,2.2 表达式,表达式是由常量、变量和函数通过特定的运算符连接起来的式子。表达式的形式包括:单一的运算对象,包括常量、变量或函数等;由运算符将运算对象连接起来形成的式子。表达式无论是简单还是复杂,都会有一个运算结果,即表达式的值,
11、根据运算结果的不同,表达式可以分为数值表达式、字符表达式、日期时间表达式和逻辑表达式,各类表达式都有自己特定的运算符,且存在一定的运算顺序。,1.数值、字符与日期时间表达式 数值表达式又称为算术表达式,由算术运算符和数值型常量、变量和数值型函数等组成。数值运算是分先后次序的,数值运算的优先级见表所示。比如:键入以下命令,并回车运行:?5+(2/7+5/7)*2(3+5),字符表达式:字符串表达式由字符串运算符将字符型数据连起来形成,结果仍是字符型数据。字符运算符有以下两个,它们的优先级相同。+:前后两个字符串首尾相接形成一个新的字符串。-:连接前后两个字符串,并将前字符串尾部的空格移到合并后的
12、字符串尾部,日期时间表达式:运算符只有两个分别是加(+)和减(-)。书写时格式有一定限制,不能任意组合。例如不能用运算符“+”号将两个连接起来。合法的日期时间表达式格式如表所示。,2.关系表达式 1)关系表达式关系表达式通常也称为简单逻辑表达式,由关系运算符将两个运算对象连接起来形成。即;运算结果是逻辑型数据。,注意:运算符=和$仅适用于字符型数据。其他运算符适用于任何数据;在比较运算时,前后两个运算对象的类型必须相同,但日期和日期时间型数据可以比较。,2)设置字符的排序次序当比较两个字符串时,自左向右逐个比较,一但发现两个字符不同,就根据这两个字符的大小决定字符串的大小。字符的大小取决于字符
13、集中字符的排序次序,排在前面的小,排在后面的大。在中文Visual FoxPro中,默认的字符排序次序名为PinYin,但可以重新设置。排序次序名必须放在引号当中。设置字符排序次序的命令是:SET COLLATE TO“”,3)字符串精确比较与EXACT设置用双等号运算符(=)精确比较:只有当两个字符串完全相同(包括空格及位置),才会为逻辑真.T.。用单等号运算符(=)比较,运算结果与 set exact onoff 的设置有关。ON 先在较短的字符串尾加若干空格,使两个字符串的长度相等,再进行精确比较。如:“计算机世界”=“计算机”,在ON状态下结果为.F.。OFF 只要右边字符串与左边字符
14、串的前面部分内容相匹配,即为逻辑真.T.。如:“计算机世界”=“计算机”,OFF状态下结果为.T.。,3)字符串精确比较与EXACT设置举例:字符串比较与EXACT设置示例。Set exact off Store“会计”to s1Store“会计”to s2&注意“会计”后有一空格Store“会计电算化”to s3?s1=s3,s3=s1,s1=s2,s2=s1,s2=s1运行结果:.F.T.F.T.F.Set exact ON&将较短的字符串填充空格,等长比较?s1=s3,s3=s1,s1=s2,s2=s1,s2=s1运行结果:.F.F.T.T.F.,4)赋值与相等比较的区别内存变量的赋值命
15、令与相等比较运算都使用等号,必须注意两者之间的区别。赋值命令格式:=相等比较运算格式:=,3.逻辑表达式 逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。逻辑运算符有3个:.NOT.或!(逻辑非)、.AND.(逻辑与)及.OR.(逻辑或)。也可以省略两端的点,写成NOT、AND、OR。其优先级顺序依次为NOT、AND、OR。逻辑非是单目运算(运算对象只有一个),其运算结果与操作数的值正好相反。逻辑与具有“并且”的含义,只有当两个操作数均为真时,运算结果才为真,否则为假。逻辑或具有“或者”的含义,两个操作数中,只要有一个为真,运算结果就为真。否则为假。,逻辑运算符的
16、上述运算规则可以用下表表示。,4.运算符的优先级每类运算符中包含的运算符都有自己的优先次序。同样在各类运算符之间也存在运算优先次序,具体次序如下:先运行算术运算符、字符串运算符和日期时间运算符;其次运行关系运算符;最后运行逻辑运算符。另外还包括以下规则:圆括号的优先级最高。相同优先级的运算符按从左到右的顺序进行运算。字符串连接运算符和加、减运算符优先级一样。需注意圆括号的作用:有时候,在表达式的适当地方插入圆括号不是为了改变其他运算符的运算次序,而是为了提高代码的可读性。,2.3 常用函数,函数是用程序来实现的一种数据运算或转换。函数可以用函数名加一对圆括号加以调用,自变量放在圆括号里,如AB
17、S(x)。在Visual FoxPro中,将函数分为数值函数、字符函数、日期和时间函数、数据类型转换函数和测试函数五类。函数的基本形式如下:函数名()说明:(1)函数名后面是一对圆括号,圆括号内可以有参数,也可以没有参数。(2)参数是函数的自变量,可以是常量,也可以是变量,但参数的数据类型是固定的。(3)函数运算后会返回一个值,称为函数值。,1.数值函数1)绝对值函数:ABS()2)符号函数:SIGN()3)平方根函数:SQRT()4)圆周率函数:PI()5)求整数函数:INT():返回指定数值表达式的整数部分 CEILING():返回不小于指定数值表达式的最小整数 FLOOR():返回不大于
18、指定表达式的最大整数,6)四舍五入函数:ROUND(,)功能:返回指定表达式在指定位置四舍五入后的结果;如果“表达式2”0,表示要保留的小数位数;如果“表达式2”0表示整数部分的舍入位数;如果“表达式2”=0表示保留整数,没有小数部分。例2.17 x=456.456?ROUND(x,2),ROUND(x,1),ROUND(x,0),ROUND(x,-1)456.46 456.5 456 460,7)求余数函数格式:MOD(,)功能:返回两个数值相除后的余数;是被除数,是除数;余数的正负号与除数相同;如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余
19、数再加上除数的值。例?MOD(10,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3)1-2 2-1,8)求最大值和最小值函数格式MAX(,)MIN(,)功能:MAX()计算各自变量表达式的值,并返回其中的最大值。MIN()计算各自变量表达式的值,并返回其中的最小值。比如:?MAX(5,9,2),MAX(3,23,13),MIN(自行车,汽车,火车)9 3 火车,2.字符函数:1)字符串长度函数:LEN()2)大小写转换函数:LOWER(),大写字母转换成小写字母,其他字符不变;UPPER(),小写字母转换成大写字母,其他字符不变。3)空格字符串生成函数:SPACE()4
20、)删除前后空格函数:TRIM()返回指定字符表达式值去掉尾部空格后形成的字符串;LTRIM()返回指定字符表达式值去掉前导空格后形成的字符串;ALLTRIM()返回指定字符表达式值去掉前导和尾部空格后形成的字符串。,2.3 常用函数,2.字符函数:5)取子串函数:LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值;RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值;SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。SUBSTR()函数中,若缺省参数,则函数从指定位置一直取到最后一个字符。例2.24 Store“good bye!”to x?lef
21、t(x,2),substr(x,6,2)+substr(x,6),right(x,3)go bybye!Ye!,2.3 常用函数,2.字符函数:6)计算子串出现次数函数格式:OCCURS(,)功能:返回第一个字符串在第二个字符串中出现的次数,函数值为数值型。若第一个字符串不是第二个字符串的子串,函数值返回0。例2.25 Store abcracadabra to s?occurs(a,s),occurs(b,s),occurs(c,s),occurs(e,s)5 2 2 0,2.3 常用函数,2.字符函数:7)求子串位置函数:AT(,);ATC(,)。功能:AT()的函数值为数值型。如果是的子
22、串,则返回的首字符在中的位置;若不是子串,则返回0。用于表明要在中搜索的第几次出现,其默认值是1。例 Store“This is Visual FoxPro6.0”to x?at(“fox”,x),atc(“fox”,x),at(“is”,x,3),at(“xo”,x)0 16 10 0,2.3 常用函数,2.字符函数:8)子串替换函数 格式:STUFF(,)功能:用值替换中由和指定的一个子串。替换和被替换的字符个数不一定相等。如果值是0,则插在由指定的字符前面。如果值是空串,那么中由和指定的子串被删去。例2.27 s1=good bye!“s2=morning“?stuff(s1,6,3,s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VisualFoxPro 程序设计 基础
链接地址:https://www.31ppt.com/p-6523130.html