
二章VFP程序设计基础.ppt
30页第二章第二章 VFPVFP程序设计基础程序设计基础本章要点本章要点: 1.数据和数据类型.数据和数据类型 2.常量与变量.常量与变量 3.运算符与表达式.运算符与表达式 4.函数.函数 5..VFP的操作和界面的操作和界面 6..VFP的工作方式的工作方式一一. 数据类型数据类型 数据:数据:是一组用来描述事物情况的物理符号序列,通常用类型和值来表示一般地,只有相同类型的数据才能够进行运算 1.字符型(Character)用字母C表示字符型数据包括中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数)范围是0~254个字符 2.数值型(Numeric)数据由数字、小数点、正负号和字母E组成 , 用 字 母 N表 示 数 值 型 数 据 的 取 值 范 围 是 : -0.9999999999E+19~0.9999999999E+20,包括正负号、小数点和字母E在内,其长度(数据位数)最大20位。
通常用于表示实数如23,-103.45,1.3E-5(即1.3×10-5)等2.1.1 数据与数据类型 3. 浮点型(Float)数据是数值型数据的一种,用字母F表示它与数值型数据完全等价,只是在存储形式上采用浮点格式,主要是为了得到较高的计算精度 (数据表中使用) 4.双精度型(Double)数据是具有更高精度的一种数值型数据,用字母B表示它采用固定长度浮点格式存储,占用8个字节,其取值范围是:+/-4.94065645841247E-324 ~ +/-8.9884656743115E307 (数据表中使用) 5.整型(Integer)数据是不包含小数部分的数值型数据,用字母I表示整型数据只用来表示整数,以二进制形式存储,占用4个字节其取值范围是:-2147483647~2147483647 (数据表中使用) 6.日期型(Date)数据是表示日期的数据,用字母D表示日期的默认格式是{^yyyy/mm/dd},其中mm表示月份,dd表示日期,yyyy表示年度,固定长度8位 7.日期时间型(Date Times)数据是表示日期和时间的数据,用字母T表示。
日期时间的默认格式是{^yyyy/mm/dd hh:mm:ss},其中mm、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数日期时间型数据也是采用固定长度8位 8.逻辑型(Logic)表示逻辑判断的结果,用字母L表示逻辑型数据只有真和假两种,固定长度1位通常用小圆点括起来的.T.、.t.、.Y.、.y.表示真,.F. 、.f.、.N.、.n.表示假 9. 备注型(Memo)数据是表示、存放较多字符的数据类型用字母M表示字段长度固定为4位,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定数据表中使用) 10.通用型(General)数据是对象的数据类型,用字母G表示存放电子表格、文档、图形图片等长度固定为4位 (数据表中使用) 11.货币型(Currency)数据是为存储美元金额而使用的一种称为货币(Currency)的数据类型,其取值范围是:-922337203685477.5808 ~ 922337203685477.5807,默认保留4位小数,占据8字节存储空间货币型数据用字母Y表示。
12.二进制字符型和二进制备注型 这两类数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义 (数据表中使用) 其中双精度型、浮点型、通用型、整型、备注型、二进制字符型和二进制备注型只能应用于字段,其余则可以用于变量、数组和字段2.1.2 常量与变量一.常量 在数据处理过程中其值不发生变化的量叫常量Visual FoxPro常量分为5种类型:数值型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量 1)数值型常量: 由数字、小数点和正负号组成,表示整数或实数值 如;100,-21,15.31,-21092.5041等分别是数值型常量中的整数和实数2)字符型常量: 由ASCII字符、汉字组成的字符型数据,字符型常量又称为字符串用一对双引号"或单引号'或方括号[]作为定界符 如“ I am a student..”,‘中华人民共和国’,[Visual FoxPro 6.0系统]都是字符串3)逻辑型常量: 是表示逻辑判断结果“真”或“假”的逻辑值逻辑常量只有真和假两种值,通常用小圆点括起来的.T.、.t.、.Y.、.y.表示真,.F. 、.f.、.N.、.n.表示假。
4)日期型常量 是表示日期值的数据,其默认格式是{^yyyy/mm/dd}如{^10/01/02}和{^10/01/2002}均表示2002年10月1日这一日期常量值 5)日期时间型常量 表示日期和时间值的日期时间型常量,其默认格式是:{^yyyy/mm/dd[,] hh:mm:ss[a|p]} 其中a和p分别表示AM(上午)和PM(下午) 如: {^l999-04-24 10:00am} 6)货币型常量 $123,$321.1234二.变量 在命令操作、程序运行过程中其值可以变化的量 在Visual FoxPro系统中变量分为字段变量、内存变量、数组变量和系统变量4类变量也可以分为字段变量和内存变量两大类) 一个变量,有变量名、数据类型和变量值 1.内存变量 是计算机内存中一个命名的存储单元分为用户、系统、数组内存变量 2.字段变量 就是字段,也是变量与其他变量不同的是,字段变量是表中的变量,它的值随表的记录变化,又是永久性多值变量字段名就是变量名;变量的数据类型为VFP中任意数据类型,字段值就是变量值 3. 变量 在VFP中的命名: 1)使用字母、下划线、数字和汉字构成变量名。
2)数字不能打头,自由表中字段名最多只能10个字符,最长 可使用1~128个字符 3)不能使用 Visual FoxPro的保留字三.内存变量的操作三.内存变量的操作 1)内存变量的数据类型:内存变量的数据类型包括:数值型、字符型、逻辑型、日期型和日期时间型; 2)内存变量的建立:建立内存变量就是给内存变量赋值内存变量赋值既可定义一个新的内存变量,也可改变已有内存变量的值或数据类型 赋值命令格式1: STORE <表达式> TO <内存变量表> 功能:计算<表达式>的值并赋值给各个内存变量 赋值命令格式2: <内存变量> = <表达式> 功能:计算<表达式>的值并赋值给指定内存变量3)内存变量的显示输出 显示输出指定的内存变量值 命令格式: ?| ?? <表达式表> 功能:计算表达式表中各表达式的值,并在屏幕上指定位置显示输出各式的值 ?:先回车换行,再计算并输出表达式的值; ??:在屏幕上当前位置,计算并直接输出表达式的值; 显示输出系统内存变量的值。
命令格式: DISPLAY | LIST MEMORY [LIKE <通配符>] 功能:显示指定变量的信息 内存变量的操作 例2-1 教材P24 2.1.3 运算符与表达式n在VFP中,表达式是由常量、()、变量、函数、对象和运算符组成的运算式子n表达式分为算术表达式、字符表达式、日期时间表达式、逻辑表达式和关系表达式五类n运算符分为算术、字符、日期时间、逻辑和关系运算符五类n各类运算的优先顺序如下: 圆括号圆括号->->算术和日期运算算术和日期运算->->字符运算字符运算->->关系运算关系运算->->逻辑运算逻辑运算 算术运算符算术运算符: : () ->-> **或^ ->-> *和/ ->-> % ->-> +和- 逻辑运算逻辑运算: : not ->-> and ->-> or1.算术表达式 又称数值表达式,是由算术运算符和数值组成其值为数值型数据教材P25) 表达式的书写规则 1)每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。
例如:23要写成2^3,X1+X2要写成X1+X2 2)原来在数学表达式中省略的内容必须重新写上例如:2x要写成2*x 3)所有括号都用小括号(),括号必须配对 4)要把数学表达式中的有些符号,改成VISUAL FOXPRO中可以表示的符号例如:要把2πr改为 2*pi()*rpi()为函数) 2.字符表达式 由字符运算符将字符型数据连接起来的式子 “+”:完全连接运算符 “-”:不完全连接运算符运算符功 能表达式举例运算结果+串1+串2:两串顺序相连接‘12 ’+’56’‘12 56’_串1-串2:串1尾空格移到串2尾后再顺序相连接‘12 ’-‘56’‘1256 ’$串1$串2:串1是否为串2子串‘1234’$ ‘a12345’‘1234’$ ‘34512’.T..F.3.日期表达式 日期运算符分为“+”和“-”两种,其作用分别是在日期数据上增加或减少一个天数,在日期时间数据上增加或减少一个秒数两个运算的优先级别相同两个日期可相减不能相加例如:{^1999/12/19}-{^1999/11/16} &&结果为数值型数据33{^1999/11/16}+33 &&结果为日期型数据:{^1999/12/19}{^1999/12/19}-33 &&结果为日期型数据:{^1999/11/16} 4.关系表达式 由关系运算符连接两个同类数据进行关系比较的运算式称为关系表达式。
表达式的值为逻辑值,关系表达式成立则其值为“真”,否则为“假” 关系运算符 运算符功 能表 达 式 举 例结果<小于15<4*6.T.>大于‘A’ > ‘1’.T.=等于(字符串右值) 2+4 = 3*5.F.<>、#、!=不等于5 <> -10.T.<=小于或等于'abc' <= 'AB'.F.>=大于或等于{10-10-02}>={10/01/02}.T.==精确等于‘abc’==’abcabc’.F. 5. 逻辑表达式 由逻辑运算符将逻辑型数据连接而成的式子称为逻辑表达式逻辑表达式由逻辑运算符、逻辑常量、变量和函数组成VFP提供的逻辑运算符如表2.4所示一个逻辑表达式可包含多个逻辑运算符对于较复杂的条件判断必须采用逻辑表达式才能完成参加逻辑运算的对象为逻辑对象,其表达式的值也是一个逻辑值 对于逻辑运算, 其逻辑运算真 表如右:ABA .AND.BA .OR. B.NOT A.T..T..T..T..F..T..F..F..T..F..F..T..F..T..T..F..F..F..F..T. 课堂练习 设X=6,Y=9时,求 ?.not.(X>Y).or.3+X=Y.and.X*Y 2.2 常用函数n在程序设计过程中,经常将一段常用的程序保存计算机中,这段程序称为子程序n子程序可以被其它程序调用调用子程序的程序称为上级程序被调用的程序称为调用程序的下级程序nVFP为了程序设计方便将一些最常用的子程序设计好了并保存在DBMS中这些特殊的子程序称为函数函数又分为系统函数和自定义函数nVFP函数由函数名和参数组成有380多个2.2.1数值函数(返回值和参数都是数值)1 1.取绝对值函数.取绝对值函数 ABS( ) ABS( ) 见教材P29 例2-2 【格式】ABS( nExp的值必须为正数5 5.常用对数函数.常用对数函数 LOG10( )LOG10( ) 【格式】LOG10( 5 5.字符串长度函数.字符串长度函数 LEN( )LEN( ) 【格式】LEN( <字符表达式1>中可以包含通配符“*”和“?”可与任 何数目的字符相匹配,?可以与任何单个字符相匹配1212.宏替换函数.宏替换函数 & & 【格式】& < cVar > 【功能】替换出字符型变量cVar中字符 例1:x=“bc”,abc=“abcd” ,abcd=“dcba” 求:?&a&x的值 例2:设:n=“886.6” 求:?23+&n的值2.2.3 日期时间函数 日期时间函数是处理日期型或日期时间型数据的函数其自变量为日期型表达式或日期时间型表达式 1 1.系统日期函数.系统日期函数 DATE( )DATE( ) 【格式】DATE( )DATE( ) 【功能】返回当前系统日期,此日期由Windows系统设置函数值为D型 2 2.系统时间函数.系统时间函数 TIME( )TIME( ) 【格式】TIME([ 函数值为C型3 3.日期函数.日期函数 DAY( )DAY( ) 【格式】DAY( 1 1..ASCIIASCII码函数码函数 ASC( )ASC( ) 【格式】ASC ( 从第一个字符开始转换,遇到不符合数值书写规则的字符立即停止转换,若第一个字符不是数字符号,则返回数值0函数值为N型2.2.5 测试函数 在数据库应用的操作过程中,用户需要了解数据的类型等属性,Visual FoxPro提供了相关的测试函数尤其是在运行应用程序时,常常需要根据测试结果 来决定下一步的处理方法或程序走向1 1.数据类型函数.数据类型函数 VARTYPE( ) TYPE( )VARTYPE( ) TYPE( ) 【格式】VARTYPE(












