您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 计算机等级考试VFP教程第2章
计算机等级考试VFP教程:第二章VFP语言基础2.1程序设计概述1.程序设计方法简介设计方法主要概念设计过程程序执行方式结构化程序设计功能模块(即过程、自定义函数)编制各个功能模块,再用主程序将它们串起来将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。面向对象程序设计类、对象、属性、事件、方法设计类、子类、对象(设计外观、设置属性、为事件编写方法程序)将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。2.数据类型VFP包含下列数据类型:通用的数据类型字符型Character货币型currencY日期型Date日期时间型dateTime逻辑型Logical数值型Numeric仅用于字段的数据类型双精度型Double浮点型Float整型Integer通用型General备注型Memo3.数据容器VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。考点1常量(1)常量(constants):常量用以表示一个具体的、不变的值。不同类型常量的书写格式不同。在VisualFoxPro中,常量主要包括以下几种类型。1数值型常量数值型常量即常数,用来表示一个数量的大小,由数字0~9小数点和正负号组成。2货币型常量货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的符号($)。3字符型常量字符型常量也称为字符串,其表示方法是用半角单引号、双引号或方括号把字符串括起来。这里的单引号、双引号或方括号称为定界符许多常量都有定界符。定界符虽然不作为常量本身的内容,但它规定了常量的类型及常量的起始和终止界限。4日期型常量日期型常量的定界符是一对花括号。花括号内包括年、月、日3部分内容,各部分内容之间用分隔符分隔。5日期时间型常量日期时间型常量包括日期和时间两部分内容:{日期,时间}。日期部分与日期型常量相似,也有传统的和严格的两种格式。6逻辑型常量逻辑型数据只有逻辑真和逻辑假两个值。前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。逻辑型数据只占用1字节。常用的常量类型举例常量类型数值型常量字符型常量逻辑型常量日期型常量表示方式-25.36abc,[123],’中国’.T..F.{^2005/07/10}考点2变量(2)变量(variables):是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。变量的命名习惯:类型变量代号如:cStud、nCj、dCsrq——分别代表一个字符型、数值型、日期型的变量名考点3内存变量常用命令变量的赋值方式:1)用STORE命令如:STORE王兰TOcStud2)用赋值操作符=如:cStud=王兰变量的作用域:即变量起使用的有效范围。变量作用域定义作用域的关键字特点局部变量localvariable(本地变量)LOCAL只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。当其所属程序停止运行时,局部变量将被释放。私有变量privatevariablePRIVATE私有变量在VFP中是默认的,不需要特殊的关键字定义。但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE关键字予以声明,以限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。公共变量publicvariablePUBLIC可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。变量的访问:当变量和字段同名时,字段有优先被访问权。要在变量名前加m.或m-以示区别,如m.cStud(3)数组(array):是存储在一个变量中由单个变量名引用的有序数据集合。在VFP中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。数组大小由下标值的上、下限决定,下限规定为1。数组元素的标识:通过一个数值下标来引用,如AA[2],AA[2,3]数组类型的声明:私有数组——用DECLARE或DIMENSION定义全局数组——用PUBLIC命定义局部数组——用LOCAL定义数组元素的赋值:用赋值语句:如AA=45(对数组整体赋值)用SCATTER从当前记录中取特定..字段的值赋给数组:格式1:SCATTER[FIELDS字段名表][MEMO]TO数组名[BLANK]格式2:SCATTER[FIELDSLIKE通配符|FIELDSEXCEPT通配符][MEMO]TO数组名[BLANK]如:scatterfieldsxh,xm,xbtoaa(数组长度、类型自动与所给字段相同)用COPYTOARRAY从当前记录中取所有..字段的值赋给数组:如:copytoarrayaa(数组长度、类型自动与表中全部字段相同)把数组中的数据传给当前表中的当前记录:格式1:GATHERFROM数组名[FIELDS字段名表][MEMO]格式2:GATHERFROM数组名[FIELDSLIKE通配符|FIELDSEXCE通配符][MEMO]用数组向当前表添加记录:appendfromarray数组名[for条件][[fields字段名表](用二维数组可以同时添加多条记录)2表达式值的显示格式1:?表达式表格式2:??表达式表3内存变量的显示格式1:LISTMEMORY[LIKE通配符][TOPRINTER!TOFILE文件名]格式2:DISPLAYMEMORY[LIKE通配符][TOPRINTER|TOFILE文件名]4内存变量的清除格式1:CLEARMEMORY格式2:RELEASE内存变量名表格式3:RELEASEALL[EXTENDED]格式4:RELEASEALL[LIKE通配符|EXCEPT通配符]应注意如下问题:(1)在一切使用简单内存变量的地方,均可以使用数组元素。(2)在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素。(3)在同一个运行环境下,数组名不能与简单变量名重复。(4)在赋值语句中的表达式位置不能出现数组名。(5)可以用一维数组的形式访问二维数组。2.2表达式即:变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。考点4数值、字符与日期时间表达式1数值表达式(1)算术运算优先级。数值表达式中的算术运算符有些与日常使用的运算符稍有区别,算术运算符及其含义和优先级如表3-1所示。表3-1算术运算符及其优先级(2)求余运算。求余运算%和取余函数MOD()的作用相同。余数的正负号与除数一致当表达式中出现*、/和%运算时,它们具有相同的优先级。2字符表达式由字符串运算符将字符型数据连接起来形成,其结果仍是字符型数据字符型数据只能进行两种运算(+、-),它们的优先级相同。“+”首尾连接前后两个字符串形成一个新的字符串;“-”连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部3日期时间表达式日期时间表达式中可以使用的运算符也有“+”和“-”两个,其格式也有一定的限制,不能任意组合,如不能用运算符“+”将两个日期连接起来。考点5关系表达式1关系表达式关系表达式通常也称为简单逻辑表达式,它是由关系运算符将两个运算对象连接起来而形成的,即:表达式关系运算符表达式。关系运算符及其含义如表3-2所示,它们的优先级相同。表3-2关系运算符2设置字符的排序次序当比较两个字符串时,系统对两个字符串的字符自左向右逐个进行比较;一旦发现两个对应字符不同,就根据这两个字符的排序序列决定两个字符串的大小3字符串精确比较与EXACT设置在用双等号运算符==比较两个字符串时,只有当两个字符串完全相同(包括空格及各字符的位置)时,运算结果才会是逻辑真.T.,否则为逻辑假.F.。SETEXACT0N:先在较短字符串的尾部加上若干个空格,使两个字符串的长度相等,然后再进行精确比较;SETEXACTOFF:只要右边字符串与左边字符串的前面部分内容相匹配,即可得到逻辑真的结果。考点6逻辑表达式1逻辑表达式逻辑运算符的运算规则如表3-3所示,其中IEl和IE2各代表两个逻辑型常量。表3-3逻辑运算规则2运算符优先级.NOT.或!(逻辑非)、.AND.(逻辑与)、.OR.(逻辑或)依次降低。小提示:表达式是指常量、变量、函数或由它们通过特定的运算符连接起来的式子。名称表达式:由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。例:DBF_NAME=学生成绩登记表USE(DBF_NAME)宏替换:用宏替换符号&表示,它与名称表达式具有相似的作用。例:已知A=1,B=2,C12=GOOD则C&A&B=GOOD4.操作符数值操作符()^或***/%(取余数)+-关系操作符==或!=或#==逻辑操作符()表达式分组NO或!(非)AND(和)OR(或)日期和时间操作符+-注意:日期型:天数时间型:秒数字符操作符:+-$两个特殊的操作符圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、事件、方法。范围转变操作符(::):提供了从一个子类中调用一个父类的方法。2.3常用函数考点7数值函数数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往都是数值型数据。1绝对值和符号函数格式:ABS数值表达式)SIGN(数值表达式)功能:ABS()返回指定的数值表达式的绝对值。SIGN()返回指定数值表达式的符号。2求平方根函数格式:SQRT(数值表达式)功能:返回指定表达式的平方根,表达式的值不能为负。3圆周率函数格式:PI()功能:返回圆周率二,该函数没有自变量。4求整数函数格式:INT(数值表达式)CEILING(数值表达式)FLOOR(数值表达式)功能:INT()返回指定数值表达式的整数部分。CEILING()返回大于或等于指定数值表达式的最小整数。FLOOR()返回小于或等于指定数值表达式的最大整数。5四舍五入函数格式:ROUND(数值表达式I,数值表达式2)功能:返回数值表达式I在指定位置四舍五入后的结果,数值表达式2指明四舍五入的位置。若数值表达式2大于等于0,表示的是要保留的小数位,若小于。,则表示整数部分的舍入位数。6求余数函数格式:MOD(数值表达式1,数值表达式2)功能:返回两个数相除后的余数。余数的正、负号与除数相同。如果被除数与除数同号,则函数值为两数相除的余数;如果异号,则函数值为两数相除的余数再加上除数的值。7求最大值和最小值函数格式:MAX(数值表达式1,数值表达式2[,数值表达式3…])MIN(数值表达式1,数值表达式2[,数值表达式3…])功能MAX()返回自变量中的最大值。MIN()返回自变量中的最小值。考点8字符函数1求字符串长度函数格式:LEN(字符表达式)功能:返回指定字符表达式值的长度,即字符个数。2大小写转换函数格式:LOWER(字符表达式)UPPER(字符表达式)功能:LOWER()将指定表达式中的大写字母转换成小写字母,其他字符保持不变;UPPER()将指定表达式中的小写字母转换成大写字母,其他字符保持不变。3空格字符串生成函数格式:SAPCE(数值表达式)功能:返回由指定数目的空格组成的字符串。4侧除前后空格函数格式:TRIM(字符表达式)LTRIM(字符表达式)ALLTRIM(字符表达式)功能:TRIM()删除指定表达式尾部的空格。LTRIM()删除指定表达式前端的空格。ALLTRIM()删除指定字符串前端和尾部的空格。5取子串函数格式:LEFT(字符表达式,长度)RIGHT(字符表达式,长度)SUBSTR(字符表达式,起始位置[,长度])功能:LEFT()从指定表达式左端截取一个指定长度的子串作为函数值。RIGH
本文标题:计算机等级考试VFP教程第2章
链接地址:https://www.777doc.com/doc-2100581 .html