《2 VFP编程基础(4).ppt》由会员分享,可在线阅读,更多相关《2 VFP编程基础(4).ppt(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章章VFP编程基础编程基础本章教学计划n n 教学目的:掌握数据类型的分类,熟练掌握掌握数据类型的分类,熟练掌握常量、变量、各种表达式的定义,熟练操作常常量、变量、各种表达式的定义,熟练操作常量、变量、内部函数及表达式的运算量、变量、内部函数及表达式的运算 n n 重点:数据类型的定义、常量与变量的使用、数据类型的定义、常量与变量的使用、内部函数的使用、表达式的构成内部函数的使用、表达式的构成 n n 难点:表达式运算、内部函数使用表达式运算、内部函数使用 n n 课时:课堂讲授课堂讲授6 6 课时、上机实验课时、上机实验4 4 课时课时n n 方式:课堂讲授、上机实验课堂讲授、上机实验
2、本章纲要 数据类型 常量与变量 函 数 表达式n n数据类型数据类型n n数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算集合。集合。集合。集合。n nVFP的数据类型特点的数据类型特点n nVFPVFP语言操作对象即包括语言操作对象即包括语言操作对象即包括语言操作对象即包括常规编程语言处理的常规编程语言处理的常规编程语言处理的常规编程语言处理的数据数据数据数据,也包括,也包括,也包括,也包括数据库数据数据库数据数据库数据数据库数据。n n数据类型分为数据类型分为数据类型分为数据类型
3、分为内存变量数据类型内存变量数据类型内存变量数据类型内存变量数据类型、字段数据类字段数据类字段数据类字段数据类型型型型2.1 2.1 数据类型、常量与变量数据类型、常量与变量 2.1.1 数据类型数据类型n n仅用于字段数据类型仅用于字段数据类型n n浮点型(浮点型(浮点型(浮点型(F Floatloat)n n双精度型(双精度型(双精度型(双精度型(DouDoub ble le)n n整型(整型(整型(整型(I Integernteger)n n备注型备注型备注型备注型(MMemoemo)n n通用型通用型通用型通用型(G Generaleneral)n n备注型备注型备注型备注型(二进制二
4、进制二进制二进制)n n字符型字符型字符型字符型(二进制二进制二进制二进制)n n通用数据类型通用数据类型n n字符型(字符型(字符型(字符型(C Characterharacter)n n数值型数值型数值型数值型(NNumbericumberic)n n货币型货币型货币型货币型(CurrencyCurrencyY Y)n n日期型(日期型(日期型(日期型(DDateate)n n日期时间型日期时间型日期时间型日期时间型(DateDateT Timeime)n n逻辑型(逻辑型(逻辑型(逻辑型(L Logicogic)n n对象型对象型对象型对象型(OObject)bject)2.1.1 数据
5、类型数据类型备注型备注型n n用用于于存存放放较较多多字字符符型型数数据据(超超过过254254个个字字符符)或或者长度不一的字符型数据者长度不一的字符型数据 n n用字母用字母M M表示表示 n n备注型数据只能作为数据表中备注型字段的值备注型数据只能作为数据表中备注型字段的值 n n备备注注型型字字段段长长度度固固定定为为4 4个个字字节节,这这4 4个个字字节节存存储的是实际数据在储的是实际数据在.fptfpt文件中的存储位置。文件中的存储位置。n n例如:职工信息表中的简历。例如:职工信息表中的简历。数据类型数据类型通用型通用型数据类型数据类型n n存储存储OLEOLE(对象链接与嵌入
6、)对象对象链接与嵌入)对象(比如:电子比如:电子表格、文档、图形、声音表格、文档、图形、声音 )n n可以是任意类型数据。可以是任意类型数据。n n只能用于数据表中的字段类型定义只能用于数据表中的字段类型定义 n n通用型数据字段长度固定为通用型数据字段长度固定为4 4个字节,实际数据个字节,实际数据存放在与表文件同名的备注文件(存放在与表文件同名的备注文件(.fptfpt)中中 n n例如:职工信息表中的照片。例如:职工信息表中的照片。对象型与通用型类似对象型与通用型类似数据类型数据类型占字节占字节定义定义举例举例字符型字符型=254由定界符括起内容由定界符括起内容(,”,)你好你好计算机计
7、算机数值型数值型8(120)由数字、小数点、正负号和由数字、小数点、正负号和E组组成的字符串成的字符串-3.14152.5E+3逻辑型逻辑型1逻辑真假,取值逻辑真假,取值.T.(.Y.).F.(.N.)不区分大小写不区分大小写.定界符定界符.不能省略不能省略.t.N.2.1.2 常量常量n n定义:定义:定义:定义:在命令操作和程序执行时,值与类型都在命令操作和程序执行时,值与类型都在命令操作和程序执行时,值与类型都在命令操作和程序执行时,值与类型都不变得量。不变得量。不变得量。不变得量。n n分类:分类:分类:分类:直接常量直接常量直接常量直接常量(6(6种种种种)和编译常量。和编译常量。和
8、编译常量。和编译常量。直接常量类型定义直接常量类型定义直接常量类型定义直接常量类型定义13 一月 2023第9页数据类型数据类型占字节占字节定义定义举例举例日期型日期型8定界符确定的日期数据定界符确定的日期数据yyyy/mm/dd,yyyy.mm.dd,yyyy-mm-dd,2009/2/192009-2-192009.2.19日期时间日期时间8定界符确定的日期时间数据定界符确定的日期时间数据日期数据日期数据 时间数据时间数据 说明说明yyyy/mm/dd hh:mm:ss am|pm,2009/2/19 13:21:54;2009/2/19 8:21:54 am货币货币8前导符前导符$引导的
9、数值常量。返回引导的数值常量。返回的货币数据小数部分的货币数据小数部分4位,不够位,不够补零,多余四舍五入。无科学补零,多余四舍五入。无科学记数表示记数表示$23.22$3.567892直接常量类型定义直接常量类型定义直接常量类型定义直接常量类型定义2.1.2 常量常量n n编译常量:编译常量:编译常量:编译常量:在程序编译时才将常量表达式的具在程序编译时才将常量表达式的具在程序编译时才将常量表达式的具在程序编译时才将常量表达式的具体内容置换在源代码中的符号常量。体内容置换在源代码中的符号常量。体内容置换在源代码中的符号常量。体内容置换在源代码中的符号常量。n n格式:格式:格式:格式:#DE
10、FINE#DEFINE 作用区域作用区域作用区域作用区域#UNDEFINE#UNDEFINE例子:例子:例子:例子:#DEFINE#DEFINE valval 10 10 clear clear?(2+3)*(2+3)*valval#UNDDEFINE#UNDDEFINE valval2.1 2.1 数据类型、常量与变量数据类型、常量与变量 2.1.3 变量变量n n定义:定义:定义:定义:在命令操作和程序执行时,值可以改变在命令操作和程序执行时,值可以改变在命令操作和程序执行时,值可以改变在命令操作和程序执行时,值可以改变的量。的量。的量。的量。n n分类:分类:分类:分类:字段变量和内存变
11、量。字段变量和内存变量。字段变量和内存变量。字段变量和内存变量。1 1、字段变量、字段变量n n定义:定义:定义:定义:数据表各条记录的同一字段取值可能不数据表各条记录的同一字段取值可能不数据表各条记录的同一字段取值可能不数据表各条记录的同一字段取值可能不同,因此表中的字段名可看为一变量。同,因此表中的字段名可看为一变量。同,因此表中的字段名可看为一变量。同,因此表中的字段名可看为一变量。n n字段变量包括字段名、字段值和域的概念。字段变量包括字段名、字段值和域的概念。字段变量包括字段名、字段值和域的概念。字段变量包括字段名、字段值和域的概念。n n随表的建立而定义,表中输入记录时为其赋值。随
12、表的建立而定义,表中输入记录时为其赋值。随表的建立而定义,表中输入记录时为其赋值。随表的建立而定义,表中输入记录时为其赋值。2.1.3 变量变量1 1、字段变量、字段变量如果数据库中有20条记录,每个字段名就有20个可取值。表有一个记录指针,它指向的记录定义为当前记录,字段名变量的现值就是当前记录中对应字段的值。记录指针,是可以移动的,因此,字段名的取值随着指针的移动而改变,所以它是变量。第13页n n定义:定义:定义:定义:数据数据数据数据库结库结库结库结构之外独立存在于内存中的构之外独立存在于内存中的构之外独立存在于内存中的构之外独立存在于内存中的临时临时临时临时存存存存储变储变储变储变量
13、。退出量。退出量。退出量。退出VFPVFP时时时时被清除。被清除。被清除。被清除。n n命名命名命名命名规则规则规则规则n n可用字符集:字母可用字符集:字母可用字符集:字母可用字符集:字母(不区分大小写不区分大小写不区分大小写不区分大小写)、数字、下、数字、下、数字、下、数字、下划线、汉字。划线、汉字。划线、汉字。划线、汉字。n n不能使用数字开头不能使用数字开头不能使用数字开头不能使用数字开头n n不的超过不的超过不的超过不的超过254254个字符个字符个字符个字符n n不能使用系统保留字不能使用系统保留字不能使用系统保留字不能使用系统保留字.例如例如例如例如clearclearn n示例
14、示例示例示例 合法名称:合法名称:合法名称:合法名称:lcStringlcString、姓名、姓名、姓名、姓名、Average_of_gzAverage_of_gz 不合法:不合法:不合法:不合法:2abc 2abc、x#yx#y、同一变量:同一变量:同一变量:同一变量:x-yx-y,X-YX-Y2.1.3 变量变量2 2、内存变量、内存变量2.1.3 变量变量2 2、内存变量、内存变量n n分类:分类:分类:分类:系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。(1)(1)系统变量:系统变量:系统变量:系统变量:VFPV
15、FP自动创建和命名的变自动创建和命名的变自动创建和命名的变自动创建和命名的变(74(74个个个个)。用下划线字符开头。例如。用下划线字符开头。例如。用下划线字符开头。例如。用下划线字符开头。例如_SCREEN_SCREEN,可,可,可,可以用以用以用以用display memorydisplay memory命令查看。命令查看。命令查看。命令查看。(2)(2)简单简单简单简单内存内存内存内存变量:只存储一个值的变量变量:只存储一个值的变量变量:只存储一个值的变量变量:只存储一个值的变量。赋赋赋赋值值值值前不用前不用前不用前不用预预预预先定先定先定先定义义义义。(3)(3)数数数数组组组组:由一
16、由一由一由一组组组组有序排列的内存有序排列的内存有序排列的内存有序排列的内存变变变变量量量量组组组组成的成的成的成的变变变变量。分量。分量。分量。分为为为为一一一一维维维维数数数数组组组组和二和二和二和二维维维维数数数数组组组组。2.1.3 变量变量2 2、内存变量、内存变量(3 3)数)数)数)数组组组组:由一由一由一由一组组组组有序排列的内存有序排列的内存有序排列的内存有序排列的内存变变变变量量量量组组组组成的成的成的成的变变变变量。量。量。量。分分分分为为为为一一一一维维维维数数数数组组组组和二和二和二和二维维维维数数数数组组组组。每一个数每一个数每一个数每一个数组组组组的数据元素的的数
17、据元素的的数据元素的的数据元素的类类类类型可以不相同型可以不相同型可以不相同型可以不相同 数数数数组组组组使用前需要使用前需要使用前需要使用前需要预预预预先定先定先定先定义义义义DIMENSION|DECLARE DIMENSION|DECLARE 数组名数组名1(1(行下标行下标 ,列下标列下标)下下下下标标标标是从是从是从是从1 1 1 1到到到到n n n n的自然数的自然数的自然数的自然数 DIMENSION a(2)b(2,2)DIMENSION a(2)b(2,2)2.1.3 变量变量2 2、内存变量、内存变量例子:例子:例子:例子:DIMENSION a(2)b(2,2)DIME
18、NSION a(2)b(2,2)a(1)=5 a(1)=5 a(1)=5 a(1)=5 a(2)=6a(2)=6a(2)=6a(2)=6b(1,1)=1 b(1,1)=1 b(1,1)=1 b(1,1)=1 b(1,2)=2b(1,2)=2b(1,2)=2b(1,2)=2B(3)=B(3)=B(3)=B(3)=你好你好你好你好?a(1),a(2)?a(1),a(2)?a(1),a(2)?a(1),a(2)?b(1,1),b(1,2),b(2,1),b(2,2),?b(1,1),b(1,2),b(2,1),b(2,2),?b(1,1),b(1,2),b(2,1),b(2,2),?b(1,1),b
19、(1,2),b(2,1),b(2,2),二二二二维维维维数数数数组组组组用用用用单单单单下下下下标应标应标应标应用用用用时时时时按行按行按行按行计计计计算算算算 定定定定义义义义后的数后的数后的数后的数组组组组的初始的初始的初始的初始值为逻辑值为逻辑值为逻辑值为逻辑型的型的型的型的.F.F.结果结果:5 6:5 6 1 2 1 2 你好你好 .F.F.内存变量的赋值内存变量的赋值 命令格式命令格式1 1:=命令格式命令格式2 2:STORE STORE TO TO 例子例子:DECLEAR c(2,2),d(2,2)DECLEAR c(2,2),d(2,2)a=.t.a=.t.&a&a为逻辑型
20、为逻辑型 b=100 b=100&b&b为数值型为数值型 c=1 c=1&c&c的结果是多少的结果是多少 store store “2 2”to a to a&a&a为字符型为字符型 store 7*3+5 to a store 7*3+5 to a,b b&a,ba,b分别是什么类型分别是什么类型?store 2 to d&dstore 2 to d&d的结果是多少的结果是多少 这两条命令的区别是:第一种格式只能给一个内存变量赋值,第二种格式可以同时给多个内存变量赋相同的值。3 3、内存变量操作命令、内存变量操作命令内存变量的显示内存变量的显示内存变量的显示内存变量的显示 命令格式命令格式命
21、令格式命令格式1 1 1 1:DISPLAY MEMORY LIKE DISPLAY MEMORY LIKE DISPLAY MEMORY LIKE DISPLAY MEMORY LIKE TO PRINTERTO TO PRINTERTO TO PRINTERTO TO PRINTERTO FILE FILE FILE FILE 命令格式命令格式命令格式命令格式2 2 2 2:LIST MEMORY LIKE LIST MEMORY LIKE LIST MEMORY LIKE LIST MEMORY LIKE TO PRINTERTO TO PRINTERTO TO PRINTERTO TO
22、 PRINTERTO FILE FILE FILE FILE 例子:例子:例子:例子:list memory list memory list memory list memory&连续显示所有内存变量连续显示所有内存变量连续显示所有内存变量连续显示所有内存变量 displaydisplaydisplaydisplay memo like a*&memo like a*&memo like a*&memo like a*&分屏显示所有以分屏显示所有以分屏显示所有以分屏显示所有以a a a a开头的内存变量开头的内存变量开头的内存变量开头的内存变量 list memo like?1list me
23、mo like?1list memo like?1list memo like?1&连续显示所有首个字符为任意字符,连续显示所有首个字符为任意字符,连续显示所有首个字符为任意字符,连续显示所有首个字符为任意字符,第二个字符为第二个字符为第二个字符为第二个字符为1 1 1 1的内存变量的内存变量的内存变量的内存变量 两条命令的区别:两条命令的区别:LIST MEMORYLIST MEMORY命令命令一次连续显示一次连续显示指定的内存变指定的内存变量;量;DISPLY MEMORYDISPLY MEMORY命令命令分屏显分屏显示示指定的内存变量指定的内存变量 LIKELIKE选项表示显示与通配符选
24、项表示显示与通配符相匹配的内存变量,通配符相匹配的内存变量,通配符?表示任意一个字符,通配表示任意一个字符,通配符符*表示任意多个字符表示任意多个字符 3 3、内存变量操作命令、内存变量操作命令内存变量的保存内存变量的保存内存变量的保存内存变量的保存格式:格式:格式:格式:SAVE TO SAVE TO SAVE TO SAVE TO ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT 内存变量的读入内存变量的读入内存变量的读入内存变量的读入 格式:格式:格式:格式:RESTORE FROM RESTORE FROM
25、RESTORE FROM RESTORE FROM ADDITIVEADDITIVEADDITIVEADDITIVE内存变量的清除内存变量的清除内存变量的清除内存变量的清除 格式格式格式格式1 1 1 1:CLEAR MEMORY CLEAR MEMORY CLEAR MEMORY CLEAR MEMORY 功能:删除所有内存变量。功能:删除所有内存变量。功能:删除所有内存变量。功能:删除所有内存变量。格式格式格式格式2 2 2 2:RELEASE RELEASE RELEASE RELEASE ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT A
26、LL LIKE|EXCEPT 功能:删除指定的内存变量。功能:删除指定的内存变量。功能:删除指定的内存变量。功能:删除指定的内存变量。为了便于以后使用,可以将所定为了便于以后使用,可以将所定义内存变量的相关信息全都保存义内存变量的相关信息全都保存到一个文件中,该文件称为内存到一个文件中,该文件称为内存变量文件,默认的扩展名为变量文件,默认的扩展名为.memmem 3 3、内存变量操作命令、内存变量操作命令VFP变量总结变量总结n n数据类型分为内存型和字段型n n备注型、通用型数据n n变量命名不区分大小写n n常规变量使用前不需要定义,而数组需要先定义n n数组的元素的数据类型可以不同2.2
27、 2.2 运算符与表达式运算符与表达式n n运算:运算:运算:运算:对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运算符和运算量算符和运算量算符和运算量算符和运算量n n表达式:表达式:表达式:表达式:由特定运算符将运算量连接起来的式由特定运算符将运算量连接起来的式由特定运算符将运算量连接起来的式由特定运算符将运算量连接起来的式子。子。子。子。n n表达式分类:表达式分类:表达式分类:表达式分类:数值表达式数值表达式数值表达式数值表达式 字符表达式字符表达式字符表达式字符表达式 日期表达式日期表达式日期表达
28、式日期表达式 关系表达式关系表达式关系表达式关系表达式 逻辑表达式逻辑表达式逻辑表达式逻辑表达式A=b*6+10A=b*6+10A=b*6+10A=b*6+101 1、表达式的、表达式的、表达式的、表达式的输输输输出命令:出命令:出命令:出命令:格式:?表达式,表达式格式:?表达式,表达式格式:?表达式,表达式格式:?表达式,表达式 功能:功能:功能:功能:计计计计算表达式的算表达式的算表达式的算表达式的值值值值,并在屏幕或打印机上,并在屏幕或打印机上,并在屏幕或打印机上,并在屏幕或打印机上输输输输出出出出。uu?表示?表示?表示?表示换换换换行行行行显显显显示表大式的示表大式的示表大式的示表
29、大式的值值值值。uu?省略?省略?省略?省略输输输输出表示出表示出表示出表示输输输输出一空行出一空行出一空行出一空行uu?表示表示表示表示紧紧紧紧跟着前一打印位置跟着前一打印位置跟着前一打印位置跟着前一打印位置输输输输出出出出例如:?4*6+10 342.2 2.2 运算符与表达式运算符与表达式13 一月 2023第23页2、数值表达式运算符运算符操作操作优先级优先级示例示例()()子表达式分组子表达式分组15*(3+2)*或或乘方乘方2a*2 表示表示a2*、乘、除乘、除35*3%模运算(取余)模运算(取余)45%3、加、减加、减5(最低最低)5+3-22.2 2.2 运算符与表达式运算符与
30、表达式13 一月 2023第24页3、字符运算符运算符运算符操作操作示例示例字符串连接字符串连接“abc”+”cde”字符串连接字符串连接“abc”-”cde”$包含运算包含运算“bc”$”cde”a”$”cab”注意:注意:$运算结果为逻辑值运算结果为逻辑值2.2 2.2 运算符与表达式运算符与表达式13 一月 2023第25页4、日期和日期时间运算符运算符运算符操作操作示例示例加加2004-02-18+10 加加10天天2004-02-18 11:10 a+10 加加10秒秒减减2004-02-18-2004-02-8 相隔天数相隔天数2004-02-18 11:10-2004-02-18
31、 11:10相隔秒数相隔秒数 2004-02-18-10 减去减去10天天2004-02-18 11:10 a-10 减去减去10秒秒注意:两个日期不能相加;日期与日期时间型不能相减注意:两个日期不能相加;日期与日期时间型不能相减2.2 2.2 运算符与表达式运算符与表达式13 一月 2023第26页5、关系运算符运算符运算符操作操作示例示例小于、大于小于、大于 1020;1020=等于等于10=20;abc=ab、#、!=不等于不等于1020=2010=20=精确比较精确比较“abc”=“ab”注意注意:(1)一表达式只能有一个关系运算符,且两边的运一表达式只能有一个关系运算符,且两边的运算
32、量数据类型必须一致算量数据类型必须一致(2)=比较两字符串时运算结果与比较两字符串时运算结果与set exact on|off 有关有关(3)=只能用于字符串比较;字符串只能用于字符串比较;字符串(字符字符)比较时与比较时与 COLLATE设置有关:设置有关:Machine、PinYin、Stroke2.2 2.2 运算符与表达式运算符与表达式 所有所有关系关系运算运算符的符的优先优先级是级是相同相同的的13 一月 2023第27页6、逻辑运算符运算运算符符操作操作优先级优先级示例示例()1NOT、!逻辑非逻辑非2NOT.F.AND 逻辑与逻辑与3.T.AND.F.OR逻辑或逻辑或4(最低)(
33、最低)T.OR.F.注意:参加逻辑运算的各目必须是逻辑值注意:参加逻辑运算的各目必须是逻辑值13 一月 2023第28页3 运算符运算符7运算符的优先级运算符运算符优先级优先级说明说明数值数值字符字符日期日期1数值运算符之间优先级同数值运算符之间优先级同表表中顺序中顺序逻辑运算符之间优先级同逻辑运算符之间优先级同表表中顺序中顺序关系关系2逻辑逻辑3 为了增强系统的功能和方便用户使用,为了增强系统的功能和方便用户使用,VFPVFP提供提供了许多内部函数,每个函数实现某一功能或运算。了许多内部函数,每个函数实现某一功能或运算。函数调用的格式为:函数调用的格式为:函数名(函数名(参数表参数表)其中参
34、数可根据实际需要选用,有些函数没有参数。其中参数可根据实际需要选用,有些函数没有参数。即使没有参数,函数名后的一对括号也不能参略。即使没有参数,函数名后的一对括号也不能参略。函数可分为函数可分为数值型数值型、字符型字符型、日期时间型日期时间型、数数据类型转换型据类型转换型、测试型测试型几种类型。几种类型。2.3 2.3 函数函数1.程序设计基础n n 程序程序 n n 算法:解决问题的方法和步骤数据结构数据结构算法算法对数据的描述:在程序中指定对数据的描述:在程序中指定数据的类型和数据的组织形式数据的类型和数据的组织形式对操作的描述对操作的描述类比理解:菜谱原料操作步骤一系列计算机指一系列计算
35、机指令的集合令的集合 2.4 2.4 程序设计方法与工具程序设计方法与工具2.程序设计的基本原则n n 程序设计基本原则程序设计基本原则n n 自顶向下,逐步分解自顶向下,逐步分解n n 模块化设计,结构化编码模块化设计,结构化编码程序程序=数据结构数据结构+算法算法n n将酒瓶和油瓶中的液将酒瓶和油瓶中的液体互换。体互换。n n解决方法解决方法 1.1.拿来一个空瓶拿来一个空瓶 2.2.酒瓶的酒倒入空瓶酒瓶的酒倒入空瓶 3.3.油瓶的油倒入酒瓶油瓶的油倒入酒瓶 4.4.空瓶的酒倒入油瓶空瓶的酒倒入油瓶n n思考思考 如何将变量如何将变量A A、B B中存放中存放的值互换?写出算法的值互换?写
36、出算法3.程序设计的控制结构n n 三种基本的控制结构n n 顺序结构n n 分支结构n n 循环结构4.程序文件的建立与运行程序文件的建立与运行 程序文件又称为命令文件程序文件又称为命令文件 ,其扩展名为,其扩展名为.PRGPRG。1.建立或修改程序文件 (1)命令方式 格格 式式:MODIFY COMMAND MODIFY COMMAND?功功 能能:建立或修改一个程序文件。(2)菜单方式 文件新建 2.2.程序的运行程序的运行 运行方法:先编译,后执行;边编译边执行运行方法:先编译,后执行;边编译边执行 (1)(1)命令方式命令方式 格格 式式:DO DO 功功 能能:依次执行程序中的各
37、条命令。:依次执行程序中的各条命令。(2 2)菜单方式菜单方式 程序程序运行运行 程序程序执行执行2、置会话状态命令 3、交互式命令 4、等待命令 5、程序结束专用命令 1、程序注释命令 2.4 2.4 程序设计中常用专用命令程序设计中常用专用命令1、程序注释命令、程序注释命令格格 式式:NOTE*或&功功 能能:NOTE*多用于对一个程序模块的 功能进行说明。&是用于在命令语 句末尾加上注释信息。都不被执行.例例 子子:a=mod(sqrt(9),3)&对对9 9求平方根求平方根,然后对然后对3 3求模求模。格 式:SET TALK ONOFF 功 能:控制控制Visual FoxProVi
38、sual FoxPro编辑环境中调试状态的编辑环境中调试状态的 打开与关闭。打开与关闭。说 明:在调试状态开通(在调试状态开通(on on)时时 ,VFPVFP在执行在执行命令的时候会向用户提供大量的中间结果及反馈命令的时候会向用户提供大量的中间结果及反馈信息信息 ,一般用于,一般用于程序调试时程序调试时。开通不仅会减慢程。开通不仅会减慢程序的运行速度,而且还会与程序本身的输出相互序的运行速度,而且还会与程序本身的输出相互夹杂,引起混淆。所以在夹杂,引起混淆。所以在执行程序时执行程序时,则通常置,则通常置“会话会话”于关闭状态(于关闭状态(offoff)2、置会话状态命令、置会话状态命令 3、
39、交互式命令、交互式命令(1)字符串接收命令)字符串接收命令(2)任意数据输入命令)任意数据输入命令(3)定位输入输出命令)定位输入输出命令(1)字符串接收命令字符串接收命令格格 式式:ACCEPTACCEPT TOTO 功功 能能:此命令是专门用于字符串的输入。:此命令是专门用于字符串的输入。(2)任意数据输入命令任意数据输入命令格格 式式 :INPUTINPUT TOTO 功功 能能 :从键盘输入数据保存在指定的内存变量中从键盘输入数据保存在指定的内存变量中。(3)定位输入输出命令定位输入输出命令屏幕格式屏幕格式 系统将整个屏幕划分为:25行 80列 XY平面坐标系。命令格式命令格式 SAY
40、 GET DEFAULT READ 说明说明:(1 1)子子句句用用来来表表示示数数据据在在窗窗口口中中显显示示的的位位置置 ,行与列都是数值表达式或是数值型常量。行与列都是数值表达式或是数值型常量。(2 2)SAYSAY子子句句用用来来输输出出提提示示信信息息,GETGET子子句句用用来来输输入入及及编编辑辑数据。若缺省数据。若缺省SAYSAY子句子句,GETGET变量值从指定位置开始显示。变量值从指定位置开始显示。(3 3)GETGET子子句句中中的的变变量量必必须须具具有有初初值值,可可用用DEFAULTDEFAULT子子句句的的 指定初值。指定初值。(4 4)通通过过GETGET子子句
41、句从从外外界界输输入入的的变变量量的的值值,必必须须通通过过READREAD命命令令来来激激活活。在在一一个个程程序序中中如如果果有有多多个个GETGET子子句句,只只需需在在最最后后GETGET子子句句后后面面加加上上一一个个READREAD子子句句。一一个个READREAD子子句句可以激活它前面所有的未被激活的可以激活它前面所有的未被激活的GETGET子句中的变量。子句中的变量。accept 输入字符串,回车结束 to a?Ainput 任意数据输入 to b?b*屏幕格式化输入数据20,20 say 请输入学生姓名 get c30,20 say 请输入学生成绩 get dread?学生姓
42、名:+c?学生成绩:,d格格 式式:WAIT TO WINDOW AT,NOWAIT CLEAR|NOCLEAR TIMEOUT功功 能能:暂暂停停程程序序运运行行,直直到到用用户户输输入入任任意意的的一一个个字字符符才才重重新新开开始始执执行行程程序序,也也可可以以用用于于输输出出一一条条提提示示信息。信息。说说 明明:1 1 1 1)to to:将用户键入的字符保存到内存变量。:将用户键入的字符保存到内存变量。2)2)Window Window atat,:在在VFPVFP主主屏屏幕幕 的指定位置出现一个的指定位置出现一个WaitWait提示窗口。提示窗口。3 3)Timeout)Time
43、out:用来设定等待时间。:用来设定等待时间。4、等待命令、等待命令 例 子:WAIT 请检查输入内容 WINDOW AT 9,9 RETURNRETURN&终止程序执行,并返回到调用它终止程序执行,并返回到调用它 的上级程序继续执行,如无上级的上级程序继续执行,如无上级 程序则返回命令窗口。程序则返回命令窗口。CANCELCANCEL&终止程序执行,清除程序的私有终止程序执行,清除程序的私有 变量,并返回命令窗口。变量,并返回命令窗口。QUIT QUIT&退出退出VFPVFP系统,返回系统,返回WINDOWSWINDOWS,与文件菜单的退出功能相同。与文件菜单的退出功能相同。5、程序结束专用
44、命令、程序结束专用命令n n 三种基本的控制结构n n 顺序结构n n 分支结构n n 循环结构2.5 2.5 程序设计的控制结构程序设计的控制结构1、顺序结构设计顺序结构的程序在运行时按照语句排列的先后顺序,自顶向下依次执行。开始结束语句1语句22.5 2.5 程序设计的控制结构程序设计的控制结构2、分支结构、分支结构 程序应具有程序应具有判断判断功能,而判断是通过程序功能,而判断是通过程序中的分支结构(选择结构)来实现的。中的分支结构(选择结构)来实现的。分支结构可分为分支结构可分为单分支、双分支和多分单分支、双分支和多分支支结构。实现分支结构的语句有结构。实现分支结构的语句有 IF语句语
45、句和和DO CASE语句。语句。2.5 2.5 程序设计的控制结构程序设计的控制结构 (1 1)、单分支结构)、单分支结构)、单分支结构)、单分支结构 格式:格式:格式:格式:IF IF ENDIFENDIF条件ENDIF后语句后语句N命令序列Y条件条件语句序列语句序列1语句序列语句序列2YN(2)、双分支结构)、双分支结构 格式:格式:IF ELSE ENDIF(3)、多分支)、多分支DO CASE语句语句 格式格式:DO CASE DO CASE CASE CASE 1 1 CASE CASE 2 2 CASE CASE n n OTHERWISE OTHERWISE n+1ENDCASE
46、 ENDCASE 条件条件1条件条件2条件条件n语句组语句组1语句组语句组2语句组语句组3ENDCASE的下一条命的下一条命令令语句组语句组n YYYNNN DO CASE语句流程图语句流程图3、循环结构设计(1).条条 件件 循循 环环(2).步步 长长 循循 环环(3).扫扫 描描 循循 环环 2.5 2.5 程序设计的控制结构程序设计的控制结构(1)、条件循环)、条件循环 格式格式:DO WHILE DO WHILE 1 LOOP LOOP 2 EXIT EXIT 3 ENDDOENDDO 命令序列命令序列EXITLOOPEnddo后面语句后面语句条件条件FTEnddo注意事项:注意事项
47、:(1)此循环为当型循环。对于当型循环,如果条件第一次就不成立,那么循环一次也不做。(2)循环体内应有修改循环条件的语句或循环体内应有修改循环条件的语句或EXITEXIT。(3)LOOP,EXITLOOP,EXIT可在适当时候控制循环,一一般般用用在在IFIF或或DO CASEDO CASE语句中语句中。(2)、步长循环)、步长循环 条件循环可以实现已知和未知循环次数的循环。对于循环次数已知循环次数已知循环次数已知循环次数已知的循环还可采用步长循环。格式格式:FOR FOR=TO TO STEP STEP ENDFORENDFOR NEXTNEXT 数值表达式,默认值为1。说明说明:(1 1)
48、循环变量按步长值增加或减小。循环变量按步长值增加或减小。(2 2)当循环变量的值不在初值与终值范围内时,结束循环。)当循环变量的值不在初值与终值范围内时,结束循环。(3)、扫描循环)、扫描循环 格格 式式:SCAN SCAN FORFOR1WHILEWHILE2 ENDSCAN ENDSCAN 说说 明明:(1 1)针对当前工作区中被打开的表的记录进行扫描。针对当前工作区中被打开的表的记录进行扫描。针对当前工作区中被打开的表的记录进行扫描。针对当前工作区中被打开的表的记录进行扫描。(2 2)子句确定扫描记录的范围,缺省则为子句确定扫描记录的范围,缺省则为子句确定扫描记录的范围,缺省则为子句确定
49、扫描记录的范围,缺省则为ALLALL。(3 3)对)对)对)对 子句内满足子句内满足子句内满足子句内满足FORFOR 或或或或WHILEWHILE 的记的记的记的记录执行循环体中的规定操作。录执行循环体中的规定操作。录执行循环体中的规定操作。录执行循环体中的规定操作。(4 4)记录指针可自动往下移。)记录指针可自动往下移。)记录指针可自动往下移。)记录指针可自动往下移。USE USE 员工表员工表STORE 0 TO n1STORE 0 TO n1,n2n2,j1j1,j2j2SCANSCANSCANSCAN IF IF 性别性别=“男男”n1=n1+1 n1=n1+1 ELSE ELSE n
50、2=n2+1 n2=n2+1 ENDIF ENDIF DO CASE DO CASE CASE CASE 职称职称=“教授教授”j1=j1+1 j1=j1+1 CASE CASE 职称职称=“副教授副教授”j2=j2+1 j2=j2+1 ENDDO ENDDOENDSCANENDSCANENDSCANENDSCAN【例【例【例【例6.156.156.156.15】统计员工表中男女人数,以及教授和副教授的人数。?“总共有”,n1,“个男员工”?“总共有”,n2,“个女员工”?“总共有”,j1,“个教授”?“总共有”,j2,“个副教授”USE 循环小结循环小结 a)循环体中的变量一定要赋初值。b)