VisualFoxpro第二章VisualFoxPro程序设计基础学习要点:2.1常量与变量2.1.1常量2.1.2变量2.2函数2.3表达式2.4程序与程序文件重点与难点:数据类型变量表达式常用函数程序:作文:—造句—组词—识字—拼音—语句—语句格式、表达式—常量、变量、函数2.1常量与变量常量在程序中不变的量掌握:A.组成B.定界符C.特别注意2.1.1常量常量是在数据处理过程中其值保持不变的数据。常量在数据输入或命令表达式中可以被直接引用。在VisualFoxPro中定义了6种类型的常量:数值型常量、字符型常量、逻辑型常量、浮点型常量、日期型常量、日期时间型常量。1.数值型常量(N)数值型常量是由正、负号数字(0~9)和小数点组成。Eg:123,-10定界符:无可以是整数、小数,但不可以用分数。例如326、178.56、+3125.27都是合法的数值型常量。科学计数法的描述形式3*1052.字符型常量(C)A.组成:字母、符号、汉字、数字、空格。B.字符型常量是由分界符(双引号、单引号、方括号)括起来的一串汉字、字符组成。C.定界符要配对使用例如“FoxPro”、‘程序设计’、[Y=?]都是合法的字符型常量。引入VFP命令注意:命令在命令窗口输入,输入结束后以回车结束(Enter)。退出vfp系统:quit。清理主屏幕:clear。输出命令:?隔行输出??同行输出注意:都是相对上一行来讲。特别注意:在vfp用到的符号都是英文半角?123?$124?”hello”??123??”word”3.逻辑型常量(L)逻辑型常量只有两个值,逻辑真和逻辑假。A.一般是用字母.T.表示真,用.F.表示假。B.定界符:在书写时注意字母两边的黑点不能省略。4.日期型常量(D)日期型常量用于表示日期,使用时必须用花括号括起来。A.0-9的数字B.{^年4-月2-日2}C.系统默认格式:月/日/年(主屏幕)4.日期型常量(D)补充:关于日期的几个命令(1)设置日期分隔符(显示用)SETMARKTO[分隔符]注意:分隔符用引号。Eg:date()——显示当前系统时间(2)设置日期的年月日顺序(显示用)SETDATETOYMD|MDY|DMY(3)设置年份的显示位数(显示用)SETCENTURYON|OFFON:四位OFF:两位关于命令总结:必选[]可选可不选|必选其一5.日期时间型常量(T)A.0-9数字B.{^年-月-日时:分:秒}。12制/24制AM:上午PM:下午日期时间型常量是用于表示日期和时间,使用时必须用花括号括起来。8:25:30}是合法的日期时间例如{06/26/2002型常量。6.货币型(Y)组成:0-9,小数点定界符:$自动保留四位小数(自动四舍五入)学习要点:2.1常量与变量2.1.1常量2.1.2变量2.2函数2.3表达式2.4程序与程序文件2.1.2变量变量是一种在命令操作和程序运行中其值要发生变化的量。每一个变量都是用来存放数值的容器—存储常量的量。在VisualFoxPro中,变量可以分为内存变量、数组变量和字段变量。内存变量内存:出口内存变量是数据库结构之外独立存在于内存中的临时存储变量,它可以存放程序中的原始数据、中间结果和最终结果,以及用于控制程序执行的各种参数。内存变量一般随程序运行结束或退出VisualFoxPro系统时释放。1.内存变量名内存变量名是每一个内存变量都必须固有的名称,以标识该内存单元的存储位置。用户可以通过内存变量名对内存变量中的数据进行操作。内存变量名的命名规则是以字母、下划线开头,由字母、数字、下划线组成,其长度可以达到254个字符。2.内存变量类型内存变量的类型是指内存变量中存放的是什么形式的数据。通常内存变量的类型是由变量当前值的类型决定,在VisualFoxPro中,内存变量的常用类型有数值型、浮点型、字符型、逻辑型、日期型和日期时间型6种。3.创建内存变量创建内存变量一般是通过各种赋值命令来实现。在完成内存变量赋值时就产生了内存变量,同时也自动将内存变量定义为相应赋值的数据类型。对内存变量赋值的命令有多种,可以由STORE、INPUT、WAIT、ACCEPT、COUNT和SUM等命令建立。(1)内存变量赋值命令【格式】【功能】给内存变量赋值。STORE表达式TO内存变量名表或内存变量名=表达式例如:X=12.3&&将12.3赋值给变量X,变量类型为数值型Y=VFP&&将字符串VisualFoxPro赋值给变量Y,变量类型为字符型STORE3*5TOA,B,C&&将表达式值15分别赋值给A,B,C三个变量(1)内存变量赋值命令【格式】STORE表达式TO内存变量名表或内存变量名=表达式【功能】给内存变量赋值。【说明】STORE命令可以同时给多个内存变量赋值,而内存变量=表达式命令只能给一个变量赋值。。注意:常量表达式必须加定界符4.输出内存变量的值【格式】?内存变量名表或??内存变量名表【功能】显示内存变量、常量或表达式的值。【说明】?是在光标所在行的下一行开始显示??则是在当前光标位置开始显示。5.显示内存变量【格式】listmemory|displaymemory【功能】显示内存变量的当前信息,包括变量名、作用域、类型和取值。【说明】list:自动滚屏display:显示一屏后暂停,按任意键继续。【格式】LISTMEMORYLIKE通配符【功能】显示与通配符相匹配的内存变量。【说明】*:0个或者任意多个字符?:任意一个字符Eg:a*:以a开头的所有变量b?:以b开头,宽度是2的变量Listmemorylikea*a=12ab=“visual”abc=$123.1Listmemorylikea*6.清除内存变量【功能】格式1清除所有的内存变量格式2清除指定的内存变量格式3清除与通配符相匹配/不匹配的内存变量CLEARMEMORY清除所有的内存变量【格式】RELEASE内存变量清除指定内存变量RELEASEMEMORYALLLIKE|EXCEPT通配符Eg:releasea?alistmemorlikea*releasealllikea*listmemorylikea*数组变量数组是由一组有序排列的内存变量组成(一连串的内存变量)。数组中的每一个变量都称为数组元素。每一个数组元素在内存中独占一个内存单元,为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问。因此数组可以称为是带下标的变量,简称为下标变量。元素,例如B(1,1)B(1,3),B(2,1)……平面直角坐标在VisualFoxPro中,数组可以分一维数组和二维一维数组是指在该数组中只用一个下标值表示数组元素,例如:A(1),A(2),…,A(10),可用A数组表示。二维数组是指在该数组中用两个下标表示数组,B(1,2),在同一数组中,不同的数组元素可以有不同类型的数据。数组两种:数轴可用B数组表示。系(第一象限)1.数组的定义【格式】[DIMENSION数组名1(下标1[,下标2])[,数组名2(下标1[,下标2]……【功能】定义若干个一维数组或二维数组。【说明】一条DIMENSION命令可以定义多个数组,也可以使用DECLARE命令代替DIMENSION命令。1.数组的定义Declarea(3)--a(1),a(2),a(3)—变量Declareb(2,3)b(1,1)b(1,2)b(1,3)b(2,1)b(2,2)b(2,3)2.数组的赋值数组定义好后,数组中的每个数组元素自动地被赋予逻辑值.F.。当需要对整个数组或个别数组元素进行新的赋值时,与一般内存变量一样,可以通过STORE命令或赋值号“=”来进行。对数组的不同元素,可以赋予不同数据类型的数据。【例】先定义数组,然后给数组元素赋值。DIMENSIONabc(3)&&abc(1),abc(2),abc(3)DECLAREb(2,3)&&b(1,1)b(1,2)b(1,3)b(2,1)b(2,2)b(2,3)STORE10TObabc(1)=30abc(2)=TCP/IPabc(3)=.F.【说明】在定义一维数组abc和二维数组b后,对两个数组赋值。赋值后b中所有元素的值均为10;abc中各元素分别赋予了不同类型的数据30、“TCP/IP”和.F.。学号姓名年龄计算机英语物理021101黄伟18958588021102李勇19859085021103王芳18758180021104田甜17708276021105周希望18907582………………………………字段变量属性(字段)字段变量字段变量即数据表中的字段,它是建立数据表时定义的一类变量。在数据表中,同一字段名下的数据值是不同的,每个字段都称为字段变量。字段变量的类型有字符型、数值型、浮点型、双精度型、整型、逻辑型、日期型、日期时间型、备注型、通用型等。学习要点:2.1常量与变量2.1.1常量2.1.2变量2.2函数2.3表达式2.4程序与程序文件2.2函数【定义】系统提供的实现特定功能的小程序VisualFoxPro提供了丰富的函数。豆浆=豆子+豆浆机(函数)2.2函数豆浆=豆子+豆浆机(函数)在使用VisualFoxPro的函数时,应注意以下几点:准确地掌握函数功能。每一个函数都有一个返回值。函数的返回值有确定的类型,因此在使用函数时特别要注意类型匹配。函数对其参数的类型也有要求,否则将产生类型不匹配的语法错误。数值函数、字符函数、日期时间函数、类型转换函数数值运算函数【功能】求数值表达式值的绝对值。1.求绝对值、平方根和求整函数【格式】ABS(数值表达式)ABS(10)=10ABS(-10)=10数值运算函数1.求绝对值、平方根和求整函数【格式】SQRT(数值表达式(非负数))【功能】求数值表达式值的平方根【格式】INT(数值表达式)【注意】不考虑小数大小?Sqrt(25)&&52.四舍五入函数ROUND()【格式】【例】?ROUND(86.6265,0)87?ROUND(86.6265,1)86.6?ROUND(86.6265,-1)90?ROUND(86.6265,-2)100操作对象ROUND(数值表达式1,数值表达式2)四舍五入的位置(正数表示小数位数,负数。本函数按指定的小数位数对数值进行四舍五入处理。3.求最大值、最小值函数【格式】【功能】求多个数值表达式中的最大值或最小值。MAX||MIN(数值表达式1,数值表达式2[,数值表达式3,…])【例】比较值的大小。?MAX(WE,YOU)YOU4.取模函数【格式】MOD(数值表达式1,数值表达式2)【功能】取数值表达式1除以数值表达式2所得的余数。【例】求下列各数的取模值。?MOD(20,3)2&&显示20除以3所得的余数?MOD(20,-3)-1&&显示20除以-3所得的余数字符处理函数1.取字符串的长度函数【格式】LEN(字符串表达式)【例】取字符串长度值。?LEN(“中文VisualFoxPro)&&取出全部字符串的长度值17【功能】取出字符串表达式的字符长度值。【注意】一个字母、符号、数字占1个字节,一个汉字占2个字节。2.取子串函数【格式】【功能】在字符串表达式中取出从起始值到指定取出字串长度值的部分字符。当取值长度缺省时,字符串从起始值一直取到最后一个字符。]SUBSTR(字符串表达式,起始值[,取值长度])【例】在下列字符串中取出子串。?SUBSTR(FoxPRO,2,2)*从第二个字符开始取出2个字符ox?SUBSTR(ABCDEF,4)*从第4个字符开始取到最后DEF遇到中文字符的情况:一个中文字符占2位,中文字符不按长度整数倍取,会出现不可预知的情况。?substr(中文visual,1,2)*从第一个个字符开始取出2个字符长度字符?subst