您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 第三章VFP6的语言元素和系统函数
第三章VFP6.0的语言元素和系统函数重难点主要介绍VFP语言元素,包括数据类型、变量、数组和函数的概念,系统函数的用法,并初步学习表结构的设计和建立。难点:数据类型、变量等概念3.1VFP6.0的语言元素3.1.1关于常量与变量的概念常量按数据类型分:字符型常量、数值型常量、日期型常量、逻辑型常量四种。-3.461.5E-6(表示1.5×10-6)”FoxPro”或‘FoxPro’或[FoxPro].T.{^1999/10/20}2.变量变量是指其值在程序运行中可以发生变化的量。变量必须有一个名字,称为变量名。VFP6.0中变量名的命名必须遵守以下规则:以字母或汉字开头只能由字母、汉字、数字和下划线组成。不区分大小写。·避免使用保留字或关键字作为变量的名字。VFP中有两大类变量:内存变量和字段变量。3.1.2VFP6.0的内存变量及数据类型所谓内存变量是指独立于数据表文件而存在的变量,用于存放程序运行过程中所需要的常数、中间结果和最后结果。1)字符类型:用字母C表示。包括字符常量和字符变量。字符常量:即字符串,是由定界符括起来的字符序列。有三种定界符号:“”,‘’,[]字符变量:是用来存贮字符串的变量。2)数值型:是最基本的数据类型。用字母N表示。可以使用整数、小数和指数形式来书写数据。如1234、0.38、-112、2E-8等对于整型数据,若太大系统将自动以浮点形式存储和输出VFP数据表中可使用的数字型数据包括:数值型、整型、浮点型、双精度型。3)逻辑型:只有真(.T.)、假(.F.)两个值,又称布尔值。4)日期型(Date)和日期时间型(DateTime)·日期型用字母D表示,日期时间型用字母T表示。日期常数或日期时间常数必须要用一对大括弧括起来。日期时间常数时间部分的书写格式为:hh:[mm:[ss]][a|p]5)货币型货币型用字母Y表示。数字前有“$”符号表示货币数据。对货币类型数据,系统将对小数部分自动四舍五入,仅保留4位小数。数据类型小结:上面介绍了几种不同数据类型,后面还会介绍一些其它数据类型。作为初学者,可能感到难以理解。不同数据类型的数据在计算机中存储的形式是不同的,有不同的用途。3.内存变量的创建与简单输出·可以用=、STORE、INPUT、WAIT、ACCEPT等命令创建内存变量并给内存变量赋值。所赋的值的类型决定内存变量的类型。·可以用?、??、@…SAY等命令对变量中的值进行输出。1)STORE命令格式:STORE表达式TO内存变量表2)“=”命令格式:格式:内存变量=表达式3)?/??命令格式1:?表达式表(先换行,再输出)格式2:??表达式表(直接在光标当前位置输出)3.1.3字段变量及其数据类型字段变量是指与数据表文件相关的变量。字段变量随数据表的打开而存在。在某个时刻,字段变量的值是确定的,而且对应当前记录的值。字段变量的数据类型有13种3.1.4内存变量与字段变量的区别1.种类和数目的差别。2.内存变量可以根据需要随时定义,并且内存变量的类型随着所赋给的值而改变。字段变量类型随表结构的确定而确定。表结构不变,则字段变量类型也不会变。3.内存变量是单值变量,只要没有重新赋值,则其值不变;字段变量是多值变量,其值随着当前记录的改变而改变。4.内存变量名长度不限,字段变量名最长为128个字符。5.内存变量可以用赋值号“=”简单地赋值,字段变量不可以用赋值号“=”赋值。6.引用上的区别。同名时,在内存变量前面用“M.”或“M-”作为前缀。习题:1、23.1.5数组数组在使用前必须先定义,然后才能使用。1.数组定义形式:DECLARE|DIMENSION数组1名(下标l[,下标2])[,数组2名(下标1[,下标2])]……每个元素都可当作一个单独的内存变量使用,并可以分别存放相同类型或不同类型的数据对数组的引用若对数组名赋值,其结果是将同一个值赋给该数组的所有数组元素。二维数组可以当作一维数组引用。在仅有定义而没有赋值前,数组元素的数据类型为逻辑类型,且其值为.F.(假)。VFP数组允许动态改变大小,即允许用DECLARE或DIMENSI0N命令重新定义大小,而且原先的值可以平滑地过渡。数组元素的赋值常用“=”或STORE给数组元素赋值。对数组名赋值时,是把表达式的值赋给指定数组中的所有元素;对数组元素名赋值时,是把表达式的值赋给指定的一个数组元素。查看内存变量和数组元素的值可用DISPLAY和LIST命令查看内存变量和数组元素的值。命令用法:DISPLAYMEMORY或LISTMEMORY只查看用户自定义的变量或数组listmemorylike*[tofile文件名][toprinter]是存入文件或打印满屏暂停清除内存变量和数组CLEARMEMORYRELEASE内存变量表RELEASEALL[EXTEDED]RELEASEALL[LIKE通配符|EXCEPT通配符]清除所有内存变量和数组清除指定的内存变量和数组清除所有内存变量和数组清除指定的内存变量和数组,根据符合/不符合通配符的变量或数组3.1.6运算符与表达式一、运算符VFP6.0有五种类型的运算符:数值型、关系型、逻辑型、字符型及日期和时间运算符。1.数值运算符加,减,乘,除运算符:+,-,*,/乘方运算符:**或^优先运算符:()模运算(求余数):%(与MOD()函数等价)2.关系运算关系运算符含意关系运算符含意=等于=大于等于==字符串精确匹配的比较=小于等于大于、#、!=不等于小于$子串包含测试关系运算符注意事项1)关系运算的结果为逻辑值。2)VFP允许对任一类型数据施以关系运算,对于逻辑数据规定.T.大于.F.。3)日期型数据是按年、月、日的先后进行比较。4)关系运算符两边的表达式的值必须具备同样的类型,但有一个例外,即日期和日期时间型数据可以比较。5)两个字符串比较时,是对应位置上的字符按从左到右顺序逐一比较,一旦两个字符不同即结束比较。字符型数据的比较在VFP6.0中,有三种排序或比较规则,即Machine、PinYin和Stroke规则。Machine规则:西文和符号是按ASCII码值排序PinYin规则:汉字按照拼音顺序,即字典序比较。Stroke规则:中文按照书写笔画的多少排序。对于西文符号而言,与PinYin规则相同。字符型数据比较总结分西文字符和中文字符西文:machine按ASCII码,pinyin和stroke按字典序中文:machine和pinyin一律按pinyin排序,stroke按笔画。•中文VFP默认为PinYin比较规则,但可以选择比较规则。选择比较规则的命令:SETCOLLATETOPinYin“|Machine“|Stroke6)运算符==和$,特别是$仅用于字符型数据。“==”运算符主要用于字符类型的比较。两个字符串完全相等必须是两个字符串完全相同“$”运算符用来测试左边的字符串是否被包含在右边的字符串中间。用法格式:子字符串$字符串7)相等“=”运算符可用于更广泛的数据类型。但当作用于字符串时,分精确比较和非精确比较两种情况。命令格式:SETEXACTON|0FF·在非精确比较时,“=”运算符只强调右边的字符串是否配于左边字符串的头部。在精确比较时(执行“SETEXACTON”命令后),“=”运算符相当于“==”,在两个字符串长度相等时,字符串相等也意味着完全相等。如果字符表达式尾部有空格,则先忽略尾部的空格再进行比较(这是精确比较时=与==的不同)。精确比较3.逻辑运算符.AND.(逻辑与,可读作“并且”).OR.(逻辑或,可读作“或者”).NOT.(逻辑非,可读作“取反”)逻辑运算符的优先顺序为:逻辑非(.NOT.)——逻辑与(.AND.)——逻辑或(.OR.)注意,在表达式中包含关系运算时,关系运算优先于逻辑运算。4.字符串连接运算(1)+:字符串连接运算符,用于将两个字符串原样连接成一个新字符串。(2)-:压缩空格运算符,用于将两个字符串连接成一个新字符串,但连接时前面那个字符串后面的空白将后移到新字符串末尾。5.日期和时间运算符运算模式结果日期+数值一个向前的新日期数值+日期结果同上日期-数值一个向后的新日期日期-日期两个日期的间隔(天数)二、表达式表达式是把同类型的各种数据如常量、字段变量、内存变量(包括内存变量数组)和函数用运算符连接起来的有意义的式子。表达式的类型是指该表达式运算结果值的类型。在同一个表达式中,参与运算的各个数据成员的类型必须相同,类型不相同的数据若要做运算必须先转换为相同类型才能运算。表达式运算的先后次序括号的优先级最高,其余各类运算符的优先级别由高到低依次为:(1)数值运算(其中%运算与/、*同级别)或字符串运算或日期运算(2)关系运算(3)逻辑运算3.2利用“表设计器”建立自由表根据如下关系成绩(学号,课程代号,平时成绩,期中成绩,期末成绩)1.表的结构设计一个表中的所有字段及其属性组成表的结构,在建立表之前,应先设计字段属性。字段的基本属性包括字段名、字段类型、字段宽度、小数位数以及是否允许为NULL。所谓NULL值就是没有明确的值,不等于零或空格。NULL值不能比较大小。2.建立表结构使用“表设计器”建立“成绩”表结构的表过程:(1)打开“表设计器”CREATED:\教学管理\成绩(2)定义字段(3)完成表结构设计(4)在表中输入数据(5)保存(按“CTRL+W”保存并退出编辑)对表的操作要修改表的结构,可使用以下两条命令:USED:\教学管理\成绩MODISTRU修该完毕,单击“确定”。要修改表中记录或在表中增加记录,可使用以下两条命令:USED:\教学管理\成绩APPEND修改完毕,按“CTRL+W”保存并退出编辑。习题:3,4,53.3常见函数的使用一个“函数”实际上是一个程序段,也可称为过程。包括:用户自定义函数:用户自己写的函数;系统内部预定义函数:系统为用户提供的标准函数函数的一般形式:函数名(参数表)3.3.1数值运算函数1.取绝对值函数和求符号函数格式:ABS(expN)SIGN(expN)功能:ABS()是返回数值表达式expN的绝对值;SIGN()是返回数值表达式expN的符号,当expN的运算结果为正、负和零时,SIGN()函数返回值分别为1、-1和0。2.取整数函数有3个格式:功能:INT(expN)返回expN值的整数部分;CEILING(expN)返回大于或等于expN值的最小整数;FLOOR(expN)返回小于或等于expN值的最大整数。3.最大值与最小值函数MAX(expN1,expN2,……)求出所有expN中最大的一个值;MIN(expN1,expN2,……)求出所有expN中最小的一个值。4.四舍五入函数格式:ROUND(expN1,expN2)功能:对expN1的值,如果expN2大于0,是保留expN2指定的小数位数,并对保留位后面的数值四舍五入;如果expN2小于0,表示在整数部分四舍五入的位置。5.求平方根函数格式:SQRT(expN)功能:返回expN的平方根,expN必须大于等于0。6.指数和对数函数EXP(X)X为数值表达式,EXP(X)函数返回eX的值;LOG(X)X为数值表达式,LOG(X)函数返回ln(X)的值。7.求余数函数格式:MOD(expN1,expN2)功能:MOD()函数与“%”运算等价。当两个数符号相同时,是求expN1除以
本文标题:第三章VFP6的语言元素和系统函数
链接地址:https://www.777doc.com/doc-3231002 .html