您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第三章 VFP6语言基础1
第三章VisualFoxPro语言基础数据库管理系统山东大学管理学院12002年9月8日11.常量常量就是在工作过程中其值不发生变化的量。常量有四种类型:(1)数值型常量(Numeric,简称N型)数值型常量又称常数,是由阿拉伯数字、正负号和小数点组成的可以进行算术运算的数。可用科学计数法表示。3.1常量、变量、数据类型山东大学管理学院22002年9月8日2(2)字符型常量(Character,简称C型)•字符型常量又称字符串,是由ASCII字符和汉字组成的一串字符。•VFP规定字符型常量最多包含254个字符(一个汉字占2个英文字符位置)。•字符串须用定界符。定界符有三种:单引号(‘’)、双引号(“”)和方括号([、])。•当字符串本身含有其中一种符号时,选用另一种符号作为定界符。•比如:‘Fox’、“123”、[程序设计]3.1常量、变量、数据类型山东大学管理学院32002年9月8日3(3)日期与日期时间型(Date,简称D型)•日期型常量必须用花括号括起来,例如{06/30/00},{06/30/99},空白的日期可表示为{}或{/}。•系统默认为美国格式{06/30/99}代表1999年6月30日。可用SETDATE日期格式命令设定。ANSIyy.mm.ddBRITISHdd/mm/yyMDYmm/dd/yyDMYdd/mm/yyYMDyy/mm/dd3.1常量、变量、数据类型山东大学管理学院42002年9月8日4•可用命令SETCENTURYON|OFF设置日期中是否带世纪,系统默认为OFF。执行命令SETCENTURYON则{09/30/2000}正确,代表2000年6月30日。•日期时间型常量的写法为{9/15/998:45},空白的日期时间可表示为{/:}3.1常量、变量、数据类型山东大学管理学院52002年9月8日5•严格的日期格式:{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}符号^表明该日期是严格格式.其中的-号可用/代替VFP6·0默认使用严格的日期格式,可用SETSTRICTDATETO0|1命令设置:1:严格日期格式0:普通日期格式3.1常量、变量、数据类型山东大学管理学院62002年9月8日6(4)逻辑型常量(Logical,简称L型)•逻辑型常量的具体值只可能有两种:“真”和“假”•VFP规定:逻辑“真”用.T.或.Y.、.t.、.y.表示,但系统一律转换为.T.存储。逻辑“假”用.F.或.N.、.f.、.n.表示,但系统一律转换为.F.存储。3.1常量、变量、数据类型山东大学管理学院72002年9月8日7(5)货币型常量•货币型常量以$符号开头,并四舍五入保留4位小数。•例如货币型常量$100.12345,代表:100.12353.1常量、变量、数据类型山东大学管理学院82002年9月8日82.变量在命令操作和程序运行过程中其值允许变化的量称变量。变量包括3种:•内存变量•简单变量•数组•字段变量•系统变量•对象变量3.1常量、变量、数据类型山东大学管理学院92002年9月8日91)内存变量内存变量的三个属性:变量名、类型和值。•变量名以字母(也可汉字)或下划线开头,由字母、数字、下划线组成,至多128个字符的字符串。不可与系统保留字同名。•变量的类型内存变量没有固定的类型,用户把什么样的常量数据存入其中,它就具有什么类型。所以,内存变量也有数值(N)型、字符(C)型、逻辑(L)型、日期(D)型等类型。3.1常量、变量、数据类型山东大学管理学院102002年9月8日10•赋值把数据存入内存变量的操作叫“赋值”,用赋值命令实现。该命令有两种格式:格式1:STORE表达式TO内存变量名表格式2:内存变量名=表达式格式1可一次给多个变量赋值,变量用逗号分隔格式2一次只能给一个变量赋值实例:s='VFP‘STORE2*4TOn1,n2,n3date={09/30/00}vl=.T.3.1常量、变量、数据类型山东大学管理学院112002年9月8日11•输出变量格式1:?表达式格式2:??表达式格式1换行输出表达式值格式2同一行输出表达式值实例:?s?n1,n2,n3?date??vl3.1常量、变量、数据类型山东大学管理学院122002年9月8日122)数组数组是按一定顺序排列的一组内存变量,数组中的各个变量称为数组元素。数组必须先定义后使用。•数组的定义命令格式:DIMENSION|DECLARE数组名1(m1[,n1])[,数组名2(m2[,n2])…]功能:定义一维或二维数组,及其下标的上界。说明:a.系统规定各下标的下界为1。3.1常量、变量、数据类型山东大学管理学院132002年9月8日13b.VFP最多可定义65000个数组,每个数组最多可包含65000个元素。c.实例DIMENSIONx(3),a(2,3)数组x下标的上界为3,该数组有3个数组元素:x(l),x(2),x(3)数组a具有2行3列6个元素,分别为:a(1,1),a(1,2),a(1,3),a(2,1),a(2,2),a(2,3)3.1常量、变量、数据类型山东大学管理学院142002年9月8日14•数组的赋值a.数组定义后各数组元素的初值为.F.b.数组的元素可取不同类型,且可改变c.对数组的赋值同对普通变量的赋值d.可为单个数组元素赋值x(1)=3a(1,1)=“fox”a(1,3)=.f.e.只指定数组名为各元素赋相同值x=1.20f.二维数组可按一维数组来存取a(5)=“山大”&&相当于a(2,2)=“山大”3.1常量、变量、数据类型山东大学管理学院152002年9月8日153)内存变量的显示•命令格式:LIST|DISPLAYMEMORY[LIKE通配符][TOPRINTER[PROMPT]][TOFILE文件名]•功能:显示当前已定义的内存变量名、作用范围、类型和值。•说明:a.LIKE子句显示与通配符匹配的内存变量,通配符:?代表单个任意字符*代表一串任意字符。3.1常量、变量、数据类型山东大学管理学院162002年9月8日16b.TOPRINTER将显示内容输出到打印机c.TOFILE文件名将显示内容存人文件•实例LISTMEMORYLIKE??n1PubN(8·00000000)n2PubN(8·00000000)n3PubN(8·00000000)3.1常量、变量、数据类型山东大学管理学院172002年9月8日174)内存变量的清除•命令格式:RELEASE内存变量表|[ALL[LIKE|EXCEPT通配符]]•功能:从内存清除指定的内存变量。•例RELEASEa,bRELEASEALLRELEASEALLLIKEa*RELEASEALLEXCEPT?b*3.1常量、变量、数据类型山东大学管理学院182002年9月8日18用特定的运算符把各种类型数据连接起来,这就是表达式。根据表达式的值和运算种类的不同,表达式分为五种:①数值型④关系型②字符型⑤逻辑型③日期型3.2表达式山东大学管理学院192002年9月8日191)数值型表达式数值型表达式又称为算术表达式,由算术运算符把数值型运算量连接而成。运算结果为数值型。算术运算符(按运算优先级从低到高):乘方**或^高乘*除/求余%加+减-低3.2表达式山东大学管理学院202002年9月8日20VFP算术表达式与数学中算术式书写规则的不同。用括弧改变运算次序例如:乘号要用*,不能用“·”或“×”号数学式3ab3*a*b数学式x÷yx/y3.2表达式山东大学管理学院212002年9月8日212)字符型表达式字符型表达式又称字符串连接,由字符连接运算符将字符型运算量连接而成。运算结果仍为字符型。直接连接+移空连接–将前一个字符串尾部的空格移到连接后的字符串尾部3.2表达式山东大学管理学院222002年9月8日22例如STORE“Data”TOab=“Base”?a+bDataBase?a-bDataBase注意:DataBase尾部有一空格。3.2表达式山东大学管理学院232002年9月8日233)日期型表达式两个日期型数据只能作减法运算,结果为两个日期相差的天数,为数值型数据。SETSTRITO0?{12/31/99}-{12/31/98}365日期型数据可和数值型数据作减法或加法运算,表示增加或减少的天数,结果为日期型数据。?{06/30/98}-606/24/983.2表达式山东大学管理学院242002年9月8日24两个日期时间型数据只能作减法运算,结果为两个日期相差的秒数,为数值型数据。SETSTRITO1?{^1998/09/0112:01}-{^1998/090112:00}60一个日期时间型数据可和一个数值型数据作减法或加法运算,其中的数值型数据代表增加或减少的秒数,结果为日期时间型数据。SETSTRITO0?{09/01/199812:00am}+6009/01/199812:01:00pm3.2表达式山东大学管理学院252002年9月8日254)关系型表达式关系运算符,又称比较运算符:等于=不等于或#或!=小于小于或等于=大于大于或等于=字符串精确相等==子字符串包含$:左串是右串子串为真关系表达式的结果为逻辑“真”(.T.),或逻辑“假”(.F.)3.2表达式山东大学管理学院262002年9月8日26①数值的比较数值型数据按照数值的大小进行比较。例如:a=4b=5STOREa=bTOx?a,b,x45.F.3.2表达式山东大学管理学院272002年9月8日27②字符串的比较单个英文字母、数字字符和标点符号等的大小顺序按照其ASCII码值排列。汉字字符按其内码顺序确定大小(常用国标一级汉字按拼音顺序排列)。字符串比较时从左边第一个字符开始逐个比较,最先发现的不一样的字符彼此是什么关系,相应的字符串之间就是什么关系。3.2表达式山东大学管理学院282002年9月8日28说明:当用“=”号比较两个字符型数据是否相等时,结果与SETEXACT的状态有关:SETEXACTOFF时,只要右边那个字符串与左边字符串的首部子串相等即可;SETEXACTON时,左右两个字符串必须完全一样才认为相等。用==号比较两个字符型数据是否相等时,结果与SETEXACT的状态无关,左右两个字符串必须完全一样才认为相等。3.2表达式山东大学管理学院292002年9月8日29实例:a=FRANCISb=FRIENDSTOREabTOc?c,R$b,生物=物理.T..T..F.?AB=A,A=AB,AB==A,AB==AB.T..F..F..T..SETEXACTON?“AB=A,A=AB,AB==A,AB=AB.F..F..F..T.3.2表达式山东大学管理学院302002年9月8日30③日期的比较两个日期型数据比较时按照日期的先后进行比较。例如:SETSTRIto0d1={02/16/91}d2={03/25/88}?d1d2,d2d1.T..F.3.2表达式山东大学管理学院312002年9月8日315).逻辑型表达式由逻辑运算符将关系表达式或逻辑型数据连接而成,其运算结果仍为逻辑值。逻辑运算符逻辑非NOT逻辑与AND逻辑或OR注:FoxBASE要求运算符两侧加园点:.OR.、.AND.、.NOT.。3.2表达式山东大学管理学院322002年9月8日32abNOTaNOTbaANDbAORb.T..T..F..F..T..T..F..T..T..F..F..T..T..F..F..T..F..T..F..F..T..T..F..F.•逻辑运算符的运算规则3.2表达式山东大学管理学院332002年9月8日33说明一般而言,逻辑表达式描述一个复合条件a.“年龄在25岁至35岁之间”,不能写成:25=年龄=35应当用逻辑表达式描述:年龄=25AND年龄=35b.“年龄为19、20岁的男同学”
本文标题:第三章 VFP6语言基础1
链接地址:https://www.777doc.com/doc-3859966 .html