您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > VFP程序设计简明教程-鲁俊生第2章-常量、变量、表达式及函数
第2章常量、变量、表达式及函数第2章常量、变量、表达式及函数2.1数据类型2.2常量与变量2.3表达式2.4常用函数第2章常量、变量、表达式及函数2.1数据类型人们用数据来描述实体的对象及其属性。数据类型是数据的基本属性,是一个重要的概念。在VisualFoxPro中,只有相同类型的数据之间才能直接运算,否则就会发生数据类型不匹配的错误。VisualFoxPro是一种关系数据库管理软件。在关系数据库中把描述每一实体集合的数据表示成一张二维表。例如,表示学生档案的一张二维表如下所示:第2章常量、变量、表达式及函数Record#学号姓名性别出生年月日籍贯10001赵学妹.F.80.02.07宁波市20002张学伟.T.79.12.23温州市30003刘晓燕.F.81.05.01绍兴市40004李伟东.T.82.07.13金华市50005钱晓云.F.80.07.21舟山市60006徐文东.T.78.11.12余姚市第2章常量、变量、表达式及函数其中,第一列“Record#”是记录号,在这个学生档案中共有6名学生的记录数据,即6个记录。二维表中的第一行描述了每个记录的结构,由第一行的描述可以看出每个记录由5个部分组成,记录的这些组成部分称为字段。表中学生记录5个字段的字段名分别为学号、姓名、性别、出生年月日、籍贯。由于在记录的字段中存放的是数据,因此,字段和数据一样也具有数据类型属性,称为字段类型。在VisualFoxPro中共定义了13种字段类型和7种数据类型。第2章常量、变量、表达式及函数13种字段类型分别是:字符型、数值型、浮动型、双精度型、整型、货币型、日期型、日期时间型、逻辑型、备注型、通用型、二进制字符型和二进制备注型;7种数据类型分别是:字符型、数值型、货币型、日期型、日期时间型、逻辑型和通用型。字段是表文件所特有的,而数据则既可作为表文件中字段的内容,也可以作为内存变量的内容,还可以作为常量使用。1.字符型字段和字符型数据字符型字段用于存放字符型数据。字符型数据是指一切可印刷的字符,其中包括英文字母、阿拉伯数字、各种符号、汉字及空格。一个字符型字段可以存储1~254个字符。上述学生档案中的“学号”和“姓名”字段就是字符型字段,其中存储的学号和姓名数据是字符型数据。第2章常量、变量、表达式及函数2.数值型、浮动型、双精度型和整型字段与数值型数据数值型字段中存储的是数值数据。数值数据的每一位占一个字节;浮动型字段中存放浮点数值数据。这两个字段中可以存储最长达20位的数据。整型字段中存放整数,可以存放的最大和最小整数分别为 +2147483647和 -2147483647,用该类型字段存放较大整数时可节省存储容量,因为它只占用4个字节。双精度字段用于存放双精度数,可得到15位精度常用于科学计算,但双精度字段要占用8个字节的存储容量。上述这些字段中存放数据都是数值型数据。第2章常量、变量、表达式及函数3.货币型字段和货币型数据货币型字段用于存放货币型数据,其中可存放的最大数为 +922337203685477.8087,只占用8个字节。4.日期型字段和日期型数据日期型字段用于存放日期型数据,常用日期格式为“年.月.日”和“年/月/日”。学生档案中的“出生年月日”字段就是日期型字段,其中的数据就是日期型数据。日期型字段有固定宽度,占用8个字节,其中年、月、日各占两个字节。第2章常量、变量、表达式及函数5.日期时间型字段和日期时间型数据日期时间型字段用于存放日期时间数据,它占用8个字节。其格式为:年.月.日.时:分:秒AM或PM。6.逻辑型字段和逻辑型数据逻辑型字段用于存放逻辑型数据。逻辑数据只有两个值,即“真”和“假”,常用于逻辑判断。逻辑型字段的宽度固定,为1个字节。在输入逻辑型数据时可用英文字母T、t、Y、y中任何一个字符代表“真”,而用F、f、N、n中的任何一个字符代表“假”。学生档案中的“性别”字段就是逻辑型字段,可用“真”表示男性,而用“假”表示女性。第2章常量、变量、表达式及函数7.备注型字段备注型字段可存放字符文本、源程序代码等多种信息,因而得到广泛的应用。通常使用备注型字段来记录那些可有可无、可长可短的信息,如学生档案中的奖惩记录(有些人可能获奖或受到处分,而多数人可能没有此项数据)。此外,备注型字段也常用于存放运行程序时的帮助信息。备注型字段中的信息实际上并不是存放在表文件中,而是存放在与表文件同名,但扩展名为“.FPT”的备注文件中。创建表文件时,如果定义了备注型字段,相应的备注文件就会自动生成;备注文件生成后会随表文件打开而自动打开。第2章常量、变量、表达式及函数8.通用型字段和通用型数据通用型字段可存放图片、电子表格、声音、设计分析图及字符等数据。通用型字段使得VisualFoxPro成为全方位数据库。和备注字段一样,通用字段中的数据也存入与表文件同名而扩展名为.FPT的文件中。第2章常量、变量、表达式及函数2.2常量与变量2.2.1常量FoxPro定义了4种类型常量:数值常量、字符常量、逻辑型常量和日期型常量。1.数值型常量数值型常量可以是整数或实数,例如,89,34.56等在程序中都是数值型常量。第2章常量、变量、表达式及函数2.字符型常量字符型常量是用定界符括起来的由字符、空格和数字所组成的字串。定界符可以是单引号、双引号或方括号。当某一种定界符本身就是字符常量的组成部分时,就应选用另一种定界符。例如:abcd、'高级工程师'、[胡天云]、、'pict999.9'等在程序中都是正确的字符型常量,而{MSD}、'abcde'fg'hi'都不是正确的字符常量。3.逻辑型常量逻辑型常量只有两个值:“真”与“假”。用.T.、.t.、.Y.、.y.表示“真”,用.F.、.f.、.N.、.n.表示“假”,注意两边的小圆点不能丢掉但可以用空格代替。第2章常量、变量、表达式及函数4.日期型常量日期型常量必须用花括号括起来,例如,{2000.03.15}、{2000/03/15}都是日期型常量的正确写法。2.2.2变量FoxPro定义了3种类型变量:字段变量、用户内存变量和系统内存变量。用户内存变量又简称为内存变量。前两种变量的名称可用1~10个字母、下划线和数字表示,但必须以字母打头,而后一种变量名称由系统规定。第2章常量、变量、表达式及函数1.字段变量字段变量是表文件结构中的数据项。FoxPro定义了13种类型字段变量,这在2.1节已经全面介绍过,这里再补充一点,就是字段变量是一种“多值”变量,如学生档案这个表文件有多条记录,则表的各个字段就有多个值。移动记录指针位置到所需记录,就可以找出字段变量的当前值。2.内存变量内存变量是在数据库结构之外独立存在于内存中的变量,一般随程序运行结束或退出FoxPro而释放。内存变量常用于存储程序运行的中间结果或用于存储控制程序执行的各种参数。第2章常量、变量、表达式及函数FoxPro定义了5种类型内存变量,即字符型、数值型、逻辑型、日期型和屏幕型内存变量。在FoxPro最多可以定义65 000个内存变量。另外,FoxPro还提供一维和二维内存变量数组。3.系统内存变量系统内存变量是FoxPro自动生成和维护的变量,用于控制FoxPro的输出和显示信息的格式。为与一般内存变量相区别,在系统内存变量名前加一下划线“_”。例如,系统变量_PEJECT用于设置打印输出时的走纸方式,该系统变量的缺省值是“BEFORE”,即打印前走纸换页,用户可将其设置为“NON”,即打印前后都不换页走纸。第2章常量、变量、表达式及函数2.2.3内存变量赋值命令FoxPro中有多种命令可以定义内存变量和给内存变量赋值,常用的赋值命令格式如下:STORE表达式TO内存变量表|变量数组和内存变量|变量数组=表达式这两条命令都用于定义内存变量并给变量赋值,不同之处是前一个命令可定义多个内存变量并给这些变量赋以同一数据,后一个命令只能定义单个内存变量或变量数组。第2章常量、变量、表达式及函数例2-1定义常用类型的内存变量并将其赋值。在FoxPro命令窗口中键入如下命令:store12.34toastore吕小青tobstore.t.tocstore{2000.03.15}toddimensione(2,3)e(1)=12.34第2章常量、变量、表达式及函数e(2)=吕小青e(3)=.t.e(4)={2000.03.15}listmemorylike?屏幕显示的执行结果如下:AN12.34(12.34000000)BC吕小青CL.T.DD2000.03.15第2章常量、变量、表达式及函数EA(1,1)N12.34(12.34000000)(1,2)C吕小青(1,3)L.T.(2,1)D2000.03.15(2,2)L.F.(2,3)L.F.第2章常量、变量、表达式及函数在例2-1中有关FoxPro命令的功能简介如下:store12.34toa定义内存变量a,数值型,其值为12.34。store吕小青tob定义内存变量b,字符型,其值为“吕小青”。store.t.toc定义内存变量c,逻辑型,其值为“真”。store{2000.03.15}tod定义内存变量d,日期型,其值为2000年3月15日。第2章常量、变量、表达式及函数dimensione(2,3)定义二维变量数组e,该数级有二行三列,共6个元素:e(1,1)、e(1,2)、e(1,3)、e(2,1)、e(2,2)、e(2,3)。这些元素被定义作逻辑型并赋以初值“假”。二维数组元素还可以用单下标相应表示作e(1)、e(2)、e(3)、e(4)、e(5)、e(6)。e(1)=12.34数组元素e(1),即e(1,1),赋值12.34,其类型已转换为数值型。e(2)=吕小青数组元素e(2),即e(1,2),赋值吕小青,其类型已转换为字符型。e(3)=.t.数组元素e(3),即e(1,3),赋“真”值,其类型不变仍为逻辑型。e(4)={2000.03.15}数组元素e(4),即e(2,1),赋一日期值,其类型已转换为日期型。第2章常量、变量、表达式及函数Listmemorylike?内存变量显示命令。其中子句“like?”中的问号为通配符,代表任一字符。此命令意义为只显示以一个字符为名的所有内存变量的属性。若不加子句“like?”,则Listmemory命令还要显示系统内存变量的有关属性。在FoxPro系统中规定如果内存变量与打开的当前表文件的字段同名时,字段名优先。此时如若要使用同名内存变量,则必须加写“M-”或“M.”进行限定,即M-内存变量名或M.内存变量。其中,限定由M、减号和大于号或由M和圆点组成。第2章常量、变量、表达式及函数2.3表达式2.3.1运算符1.算术运算符算术运算符包括:(1)()分组优先运算符;(2)**、^乘幂运算符;(3)*、/乘除运算符;(4)%求余运算符;(5)+、-加减或单目运算符。第2章常量、变量、表达式及函数算术运算符主要用于数值数据间的算术运算。数值数据运算的结果也是数值型数据。如果在一个表达式中同时出现多个运算符时,运算的顺序由运算符的优先级确定,优先级高的先运算,优先级低的后运算。运算符的优先级依次为括号、单目、乘幂、乘除、求余、加减,其中括号优先级最高,加减运算符优先级最低。所谓单目运算符,即只在运算符后面有运算数据的运算符。例如,用户在命令窗口中键入两条显示运算结果的命令:?-2**2+5?-2^3+5显示在屏幕上的结果值分别为:9.0和 -3.0。“?”命令的功能是命令计算机计算和显示表达式的值。第2章常量、变量、表达式及函数2.关系运算符关系运算符包括:(1)小于;(2)大于;(3)=等于;(4)==相等比较;(5)=小于等于;(6)=大于等于;(7)、#、!=不等于;(8)$包含运算。第2章常量、变量、表达式及函数关系运算符用于比较运算,即比较同类型表达式的值,如果其值使关系成立,则比较运算的结果取逻辑值“真”,否则取逻辑值“假”。各关系运算符的优先级
本文标题:VFP程序设计简明教程-鲁俊生第2章-常量、变量、表达式及函数
链接地址:https://www.777doc.com/doc-6112829 .html