《VFP的编程基础》PPT课件.ppt

上传人:s9****2 文档编号:570733390 上传时间:2024-08-06 格式:PPT 页数:84 大小:1.25MB
返回 下载 相关 举报
《VFP的编程基础》PPT课件.ppt_第1页
第1页 / 共84页
《VFP的编程基础》PPT课件.ppt_第2页
第2页 / 共84页
《VFP的编程基础》PPT课件.ppt_第3页
第3页 / 共84页
《VFP的编程基础》PPT课件.ppt_第4页
第4页 / 共84页
《VFP的编程基础》PPT课件.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《《VFP的编程基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VFP的编程基础》PPT课件.ppt(84页珍藏版)》请在金锄头文库上搜索。

1、第第2章章VFP编程基础编程基础本章教学计划n n 教学目的:掌握数据类型的分类,熟练掌握常量、变量、各种表达式的定义,熟练操作常量、变量、内部函数及表达式的运算 n n 重点:数据类型的定义、常量与变量的使用、内部函数的使用、表达式的构成 n n 难点:表达式运算、内部函数使用 n n 课时:课堂讲授2 课时本章纲要 数据类型 常量与变量 函 数 表达式n n数据类型数据类型n n数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算数据对象的取值集合,以及对之可施行的运算集合。集合。集合。集合。n nVFP的数据类型特点的数

2、据类型特点n nVFPVFP语言操作对象即包括语言操作对象即包括语言操作对象即包括语言操作对象即包括常规编程语言处理的常规编程语言处理的常规编程语言处理的常规编程语言处理的数据数据数据数据,也包括,也包括,也包括,也包括数据库数据数据库数据数据库数据数据库数据。n n数据类型分为数据类型分为数据类型分为数据类型分为内存变量数据类型内存变量数据类型内存变量数据类型内存变量数据类型、字段数据类字段数据类字段数据类字段数据类型型型型2.1 2.1 数据类型、常量与变量数据类型、常量与变量 2.1.1 数据类型数据类型n n仅用于字段数据类型仅用于字段数据类型n n浮点型(浮点型(浮点型(浮点型(F

3、Floatloat)n n双精度型(双精度型(双精度型(双精度型(DouDoub ble le)n n整型(整型(整型(整型(I Integernteger)n n备注型备注型备注型备注型(MMemoemo)n n通用型通用型通用型通用型(G Generaleneral)n n备注型备注型备注型备注型(二进制二进制二进制二进制)n n字符型字符型字符型字符型(二进制二进制二进制二进制)n n通用数据类型通用数据类型n n字符型(字符型(字符型(字符型(C Characterharacter)n n数值型数值型数值型数值型(NNumbericumberic)n n货币型货币型货币型货币型(Cur

4、rencyCurrencyY Y)n n日期型(日期型(日期型(日期型(DDateate)n n日期时间型日期时间型日期时间型日期时间型(DateDateT Timeime)n n逻辑型(逻辑型(逻辑型(逻辑型(L Logicogic)n n对象型对象型对象型对象型( (OObject)bject)2.1.1 数据类型数据类型备注型备注型n n用用于于存存放放较较多多字字符符型型数数据据(超超过过254254个个字字符符)或或者长度不一的字符型数据者长度不一的字符型数据 n n用字母用字母M M表示表示 n n备注型数据只能作为数据表中备注型字段的值备注型数据只能作为数据表中备注型字段的值 n

5、 n备备注注型型字字段段长长度度固固定定为为4 4个个字字节节,这这4 4个个字字节节存存储的是实际数据在储的是实际数据在. .fptfpt文件中的存储位置。文件中的存储位置。n n例如:职工信息表中的简历。例如:职工信息表中的简历。数据类型数据类型通用型通用型数据类型数据类型n n存储存储OLEOLE(对象链接与嵌入)对象对象链接与嵌入)对象 ( (比如:电子比如:电子表格、文档、图形、声音表格、文档、图形、声音 ) )n n可以是任意类型数据。可以是任意类型数据。n n只能用于数据表中的字段类型定义只能用于数据表中的字段类型定义 n n通用型数据字段长度固定为通用型数据字段长度固定为4 4

6、个字节,实际数据个字节,实际数据存放在与表文件同名的备注文件(存放在与表文件同名的备注文件(. .fptfpt)中中 n n例如:职工信息表中的照片。例如:职工信息表中的照片。对象型与通用型类似对象型与通用型类似数据类型数据类型占字节占字节定义定义举例举例字符型字符型” 。例如,M.姓名表示内存变量“姓名”的值。2.1.3 变量变量2 2、内存变量、内存变量n n分类:分类:分类:分类:系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。系统变量、简单内存变量和数组。(1) (1) 系统变量:系统变量:系统变量:系统变量:VFPVFP自动创建和命名的变量自

7、动创建和命名的变量自动创建和命名的变量自动创建和命名的变量(74(74个个个个) )。用下划线字符开头。例如。用下划线字符开头。例如。用下划线字符开头。例如。用下划线字符开头。例如_SCREEN_SCREEN,可以用可以用可以用可以用display memorydisplay memory命令查看。命令查看。命令查看。命令查看。 (2) (2) 简单简单简单简单内存内存内存内存变量:只存储一个值的变量变量:只存储一个值的变量变量:只存储一个值的变量变量:只存储一个值的变量。赋赋赋赋值值值值前不用前不用前不用前不用预预预预先定先定先定先定义义义义。 2.1.3 变量变量2 2、内存变量、内存变量

8、(3 3)数)数)数)数组组组组:由一由一由一由一组组组组有序排列的内存有序排列的内存有序排列的内存有序排列的内存变变变变量量量量组组组组成的成的成的成的变变变变量。量。量。量。分分分分为为为为一一一一维维维维数数数数组组组组和二和二和二和二维维维维数数数数组组组组。 每一个数每一个数每一个数每一个数组组组组的数据元素的的数据元素的的数据元素的的数据元素的类类类类型可以不相同型可以不相同型可以不相同型可以不相同 数数数数组组组组使用前需要使用前需要使用前需要使用前需要预预预预先定先定先定先定义义义义DIMENSION|DECLARE DIMENSION|DECLARE 数组名数组名1(1(行下

9、标行下标 ,列下标列下标) 下下下下标标标标是从是从是从是从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)DIMENSION 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,

10、2)=2b(2,1)=b(2,1)=b(2,1)=b(2,1)=你好你好你好你好?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(1,2), b(2,1), b(2,2), 定定定定义义义义后的数后的数后的数后的数组组组组的初始的初始的初始的初始值为逻辑值为逻辑值为逻辑值为逻辑型的型的型的型的.F.F.结果结果:5 6:5 6 1 2 1 2 你好你好

11、.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为逻辑型为逻辑型 b=100 b=100 & b& b为数值型为数值型 store store “ “2 2” ” to a to a & a& a为字符型为字符型 这两条命令的区别是:第一种格式只能给一个内存变量赋值,第二种格式可以同时给多个内存变量赋相同的值。3 3、内存变量操作命令、内存变量操作命令内存变量的显示内存变量的显示内

12、存变量的显示内存变量的显示 命令格式命令格式命令格式命令格式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 P

13、RINTERTO TO PRINTERTO TO 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开头的内存变量开头的内

14、存变量开头的内存变量开头的内存变量 list memo like ?1list memo like ?1list memo like ?1list memo like ?1 & & & & 连续显示所有首个字符为任意字连续显示所有首个字符为任意字连续显示所有首个字符为任意字连续显示所有首个字符为任意字 符,第二个字符为符,第二个字符为符,第二个字符为符,第二个字符为1 1 1 1的内存变量的内存变量的内存变量的内存变量 两条命令的区别:两条命令的区别:LIST MEMORYLIST MEMORY命令命令一次连续显示一次连续显示指定的内存变指定的内存变量;量; DISPLY MEMORYDISP

15、LY MEMORY命令命令分屏显分屏显示示指定的内存变量指定的内存变量 LIKELIKE选项表示显示与通配符选项表示显示与通配符相匹配的内存变量,通配符相匹配的内存变量,通配符? ?表示任意一个字符,通配表示任意一个字符,通配符符* *表示任意多个字符表示任意多个字符 3 3、内存变量操作命令、内存变量操作命令内存变量的保存内存变量的保存内存变量的保存内存变量的保存格式:格式:格式:格式:SAVE TO SAVE TO SAVE TO SAVE TO ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT 内存变量的读入内

16、存变量的读入内存变量的读入内存变量的读入 格式:格式:格式:格式:RESTORE FROM RESTORE FROM RESTORE FROM RESTORE FROM ADDITIVEADDITIVEADDITIVEADDITIVE内存变量的清除内存变量的清除内存变量的清除内存变量的清除 格式格式格式格式1 1 1 1:CLEAR MEMORY CLEAR MEMORY CLEAR MEMORY CLEAR MEMORY 功能:删除所有内存变量。功能:删除所有内存变量。功能:删除所有内存变量。功能:删除所有内存变量。 格式格式格式格式2 2 2 2:RELEASE RELEASE RELEA

17、SE RELEASE ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT ALL LIKE|EXCEPT 功能:删除指定的内存变量。功能:删除指定的内存变量。功能:删除指定的内存变量。功能:删除指定的内存变量。 为了便于以后使用,可以将所定为了便于以后使用,可以将所定义内存变量的相关信息全都保存义内存变量的相关信息全都保存到一个文件中,该文件称为内存到一个文件中,该文件称为内存变量文件,默认的扩展名为变量文件,默认的扩展名为. .memmem 3 3、内存变量操作命令、内存变量操作命令VFP变量总结变量总结n n数据类型分为内存型和字段型n n变量命

18、名不区分大小写n n常规变量使用前不需要定义,而数组需要先定义。字段变量随表的建立而定义,表随表的建立而定义,表中输入记录时为其赋值中输入记录时为其赋值n n数组的元素的数据类型可以不同2.2 2.2 运算符与表达式运算符与表达式n n运算:运算:运算:运算:对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运对数据加工处理称为运算。运算分为运算符和运算量算符和运算量算符和运算量算符和运算量n n表达式:表达式:表达式:表达式:由特定运算符将运算量连接起来的式由特定运算符将运算量连接起来的式由特定运算符将运算量连接起来的式由特定运算符将运算量连

19、接起来的式子。子。子。子。n n表达式分类:表达式分类:表达式分类:表达式分类: 数值表达式数值表达式数值表达式数值表达式 字符表达式字符表达式字符表达式字符表达式 日期表达式日期表达式日期表达式日期表达式 关系表达式关系表达式关系表达式关系表达式 逻辑表达式逻辑表达式逻辑表达式逻辑表达式1 1、表达式的、表达式的、表达式的、表达式的输输输输出命令:出命令:出命令:出命令:格式:?表达式,表达式格式:?表达式,表达式格式:?表达式,表达式格式:?表达式,表达式 功能:功能:功能:功能:计计计计算表达式的算表达式的算表达式的算表达式的值值值值,并在屏幕或打印机上,并在屏幕或打印机上,并在屏幕或打

20、印机上,并在屏幕或打印机上输输输输出出出出。uu?表示?表示?表示?表示换换换换行行行行显显显显示表达式的示表达式的示表达式的示表达式的值值值值。 例如: ?4*6+10 342.2 2.2 运算符与表达式运算符与表达式06 八月 2024第23页2、数值表达式运算符运算符操作操作优先级优先级示例示例()()子表达式分组子表达式分组15*(3+2)*或或乘方乘方2a*2 表示表示a2*、乘、除乘、除35*3%模运算(取余)模运算(取余)45%3、加、减加、减5(最低最低)5+3-22.2 2.2 运算符与表达式运算符与表达式06 八月 2024第24页3、字符运算符运算符运算符操作操作示例示例

21、字符串连接字符串连接 “abc ”+”cde”字符串连接字符串连接 “abc ”-”cde”$包含运算包含运算“bc”$”cde”a”$”cab”注意:注意:$运算结果为逻辑值运算结果为逻辑值2.2 2.2 运算符与表达式运算符与表达式06 八月 2024第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 11:10相隔秒数相隔秒数 2004-02-18-10 减去

22、减去10天天2004-02-18 11:10 a-10 减去减去10秒秒注意:两个日期不能相加;日期与日期时间型不能相减注意:两个日期不能相加;日期与日期时间型不能相减2.2 2.2 运算符与表达式运算符与表达式06 八月 2024第26页5、关系运算符运算符运算符操作操作示例示例小于、大于小于、大于 1020;1020=等于等于10=20;abc=ab、#、!= 不等于不等于1020=2010=20= =精确比较精确比较“abc”=“ab”注意注意:(1)一表达式只能有一个关系运算符,且两边的运一表达式只能有一个关系运算符,且两边的运算量数据类型必须一致算量数据类型必须一致(2)=只能用于字

23、符串比较只能用于字符串比较2.2 2.2 运算符与表达式运算符与表达式 所有关系运算符的优先级是相同的所有关系运算符的优先级是相同的06 八月 2024第27页6、逻辑运算符运算运算符符操作操作优先级优先级示例示例( )1NOT、!逻辑非逻辑非2NOT .F.AND 逻辑与逻辑与3.T. AND .F.OR逻辑或逻辑或4(最低)(最低)T. OR .F.注意:参加逻辑运算的各项必须是逻辑值注意:参加逻辑运算的各项必须是逻辑值06 八月 2024第28页7、运算符的优先级运算符运算符优先级优先级说明说明数值数值字符字符日期日期1数值运算符之间优先级同数值运算符之间优先级同表表中顺序中顺序逻辑运算

24、符之间优先级同逻辑运算符之间优先级同表表中顺序中顺序关系关系2逻辑逻辑3 为了增强系统的功能和方便用户使用,为了增强系统的功能和方便用户使用,VFPVFP提供提供了许多内部函数,每个函数实现某一功能或运算。了许多内部函数,每个函数实现某一功能或运算。 函数调用的格式为:函数调用的格式为: 函数名(函数名( 参数表参数表 ) 其中参数可根据实际需要选用,有些函数没有参数。其中参数可根据实际需要选用,有些函数没有参数。即使没有参数,函数名后的一对括号也不能参略。即使没有参数,函数名后的一对括号也不能参略。 函数可分为函数可分为数值型数值型、字符型字符型、日期时间型日期时间型、数数据类型转换型据类型

25、转换型、测试型测试型几种类型。几种类型。2.3 2.3 函数函数1.程序设计基础n n 程序程序 n n 算法:解决问题的方法和步骤数据结构数据结构算法算法对数据的描述:在程序中指定对数据的描述:在程序中指定数据的类型和数据的组织形式数据的类型和数据的组织形式对操作的描述对操作的描述类比理解:菜谱原料操作步骤一系列计算机指一系列计算机指令的集合令的集合 2.4 2.4 程序设计方法与工具程序设计方法与工具2.程序设计的基本原则n n 程序设计基本原则程序设计基本原则n n 自顶向下,逐步分解自顶向下,逐步分解n n 模块化设计,结构化编码模块化设计,结构化编码程序程序= =数据结构数据结构+

26、+算法算法n n将酒瓶和油瓶中的液将酒瓶和油瓶中的液体互换。体互换。n n解决方法解决方法 1. 1.拿来一个空瓶拿来一个空瓶 2. 2.酒瓶的酒倒入空瓶酒瓶的酒倒入空瓶 3. 3.油瓶的油倒入酒瓶油瓶的油倒入酒瓶 4. 4.空瓶的酒倒入油瓶空瓶的酒倒入油瓶n n思考思考 如何将变量如何将变量A A、B B中存放中存放的值互换?的值互换?3.程序文件的建立与运行程序文件的建立与运行 程序文件又称为命令文件程序文件又称为命令文件 ,其扩展名为,其扩展名为. .PRGPRG。 1.建立或修改程序文件 (1) 命令方式 格格 式式:MODIFY COMMAND MODIFY COMMAND ? 功功

27、 能能:建立或修改一个程序文件。 (2) 菜单方式 文件新建 2. 2. 程序的运行程序的运行 运行方法:先编译,后执行;边编译边执行运行方法:先编译,后执行;边编译边执行 (1) (1) 命令方式命令方式 格格 式式:DO DO 功功 能能:依次执行程序中的各条命令。:依次执行程序中的各条命令。 ( (2 2) ) 菜单方式菜单方式 程序程序运行运行 程序程序执行执行2、置会话状态命令 3、交互式命令 4、等待命令 5、程序结束专用命令 1、程序注释命令 2.4 2.4 程序设计中常用专用命令程序设计中常用专用命令1、程序注释命令、程序注释命令格格 式式 :NOTE* 或 & 功功 能能 :

28、 NOTE*多用于对一个程序模块的 功能进行说明。&是用于在命令语 句末尾加上注释信息。都不被执行.例例 子子 :a=mod(sqrt (9) , 3) & 对对9 9求平方根求平方根, ,然后对然后对3 3求模求模。 格 式 :SET TALK ONOFF 功 能 :控制控制Visual FoxProVisual FoxPro编辑环境中调试状态的编辑环境中调试状态的 打开与关闭。打开与关闭。 说 明 :在调试状态开通(在调试状态开通( on on )时时 ,VFPVFP在执行在执行命令的时候会向用户提供大量的中间结果及反馈命令的时候会向用户提供大量的中间结果及反馈信息信息 ,一般用于,一般用

29、于程序调试时程序调试时。开通不仅会减慢程。开通不仅会减慢程序的运行速度,而且还会与程序本身的输出相互序的运行速度,而且还会与程序本身的输出相互夹杂,引起混淆。所以在夹杂,引起混淆。所以在执行程序时执行程序时,则通常置,则通常置“ “会话会话” ”于关闭状态(于关闭状态(offoff) 2、置会话状态命令、置会话状态命令 3、交互式命令、交互式命令(1)字符串接收命令)字符串接收命令 (2)任意数据输入命令)任意数据输入命令 (3)定位输入输出命令)定位输入输出命令 (1)字符串接收命令字符串接收命令格格 式式:ACCEPTACCEPT TOTO 功功 能能:此命令是专门用于字符串的输入。:此命

30、令是专门用于字符串的输入。(2)任意数据输入命令任意数据输入命令格格 式式 :INPUTINPUT TOTO 功功 能能 :从键盘输入数据保存在指定的内存变量中从键盘输入数据保存在指定的内存变量中。(3)定位输入输出命令定位输入输出命令屏幕格式屏幕格式 系统将整个屏幕划分为: 25行 80列 XY平面坐标系。命令格式命令格式 SAY GET DEFAULT READ 说明说明:(1 1) 子子句句用用来来表表示示数数据据在在窗窗口口中中显显示示的的位位置置 ,行与列都是数值表达式或是数值型常量。行与列都是数值表达式或是数值型常量。(2 2)SAYSAY子子句句用用来来输输出出提提示示信信息息,

31、 ,GETGET子子句句用用来来输输入入及及编编辑辑数据。若缺省数据。若缺省SAYSAY子句子句, ,GETGET变量值从指定位置开始显示。变量值从指定位置开始显示。(3 3)GETGET子子句句中中的的变变量量必必须须具具有有初初值值,可可用用DEFAULTDEFAULT子子句句的的 指定初值。指定初值。 (4 4)通通过过GETGET子子句句从从外外界界输输入入的的变变量量的的值值,必必须须通通过过READREAD命命令令来来激激活活。在在一一个个程程序序中中如如果果有有多多个个GETGET子子句句,只只需需在在最最后后GETGET子子句句后后面面加加上上一一个个READREAD子子句句。

32、一一个个READREAD子子句句可以激活它前面所有的未被激活的可以激活它前面所有的未被激活的GETGET子句中的变量。子句中的变量。 格格 式式: WAIT TO WINDOW AT , NOWAIT CLEAR | NOCLEAR TIMEOUT功功 能能:暂暂停停程程序序运运行行,直直到到用用户户输输入入任任意意的的一一个个字字符符才才重重新新开开始始执执行行程程序序,也也可可以以用用于于输输出出一一条条提提示示信息。信息。 说说 明明: 1 1 1 1) ) to to :将用户键入的字符保存到内存变量。:将用户键入的字符保存到内存变量。 2)2)Window Window atat,:

33、在在VFPVFP主主屏屏幕幕 的指定位置出现一个的指定位置出现一个WaitWait提示窗口。提示窗口。 3 3)Timeout)Timeout:用来设定等待时间。:用来设定等待时间。4、等待命令、等待命令 例 子: WAIT 请检查输入内容 WINDOW AT 9,9 RETURNRETURN & 终止程序执行,并返回到调用它终止程序执行,并返回到调用它 的上级程序继续执行,如无上级的上级程序继续执行,如无上级 程序则返回命令窗口。程序则返回命令窗口。 CANCELCANCEL & 终止程序执行,清除程序的私有终止程序执行,清除程序的私有 变量,并返回命令窗口。变量,并返回命令窗口。 QUIT

34、 QUIT & 退出退出VFPVFP系统,返回系统,返回 WINDOWSWINDOWS, 与文件菜单的退出功能相同。与文件菜单的退出功能相同。 5、程序结束专用命令、程序结束专用命令n n 三种基本的控制结构n n 顺序结构n n 分支结构n n 循环结构2.5 2.5 程序设计的控制结构程序设计的控制结构1、顺序结构设计顺序结构的程序在运行时按照语句排列的先后顺序,自顶向下依次执行。 开始结束语句1语句22.5 2.5 程序设计的控制结构程序设计的控制结构2、分支结构、分支结构 程序应具有程序应具有判断判断功能,而判断是通过程序功能,而判断是通过程序中的分支结构(选择结构)来实现的。中的分支

35、结构(选择结构)来实现的。 分支结构可分为分支结构可分为单分支、双分支和多分单分支、双分支和多分支支结构。实现分支结构的语句有结构。实现分支结构的语句有 IF语句语句和和DO CASE语句。语句。2.5 2.5 程序设计的控制结构程序设计的控制结构 (1 1)、单分支结构)、单分支结构)、单分支结构)、单分支结构 格式:格式:格式:格式: IF IF ENDIFENDIF条件ENDIF后语句后语句N命令序列Y条件条件语句序列语句序列1语句序列语句序列2YN(2)、双分支结构)、双分支结构 格式:格式:IF ELSE ENDIF(3)、多分支)、多分支DO CASE语句语句 格式格式:DO CA

36、SE DO CASE CASE CASE 1 1 CASE CASE 2 2 CASE CASE n n OTHERWISE OTHERWISE n+1ENDCASE 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

37、 LOOP LOOP 2 EXIT EXIT 3 ENDDOENDDO 命令序列命令序列EXITLOOPEnddo后面语句后面语句条件条件FTEnddo注意事项:注意事项:(1)此循环为当型循环。对于当型循环,如果条件第一次就不成立,那么循环一次也不做。(2)循环体内应有修改循环条件的语句或循环体内应有修改循环条件的语句或EXITEXIT。(3)LOOP,EXITLOOP,EXIT可在适当时候控制循环,一一般般用用在在IFIF或或DO CASEDO CASE语句中语句中。(2)、步长循环)、步长循环 条件循环可以实现已知和未知循环次数的循环。对于循环次数已知循环次数已知循环次数已知循环次数已知

38、的循环还可采用步长循环。 格式格式: FOR FOR = TO TO STEP STEP ENDFORENDFOR NEXTNEXT 数值表达式,默认值为1。说明说明: (1 1)循环变量按步长值增加或减小。循环变量按步长值增加或减小。 (2 2)当循环变量的值不在初值与终值范围内时,结束循环。)当循环变量的值不在初值与终值范围内时,结束循环。 (3)、扫描循环)、扫描循环 格格 式式: SCAN SCAN FORFOR1WHILEWHILE2 ENDSCAN ENDSCAN 说说 明明: (1 1)针对当前工作区中被打开的表的记录进行扫描。针对当前工作区中被打开的表的记录进行扫描。针对当前工

39、作区中被打开的表的记录进行扫描。针对当前工作区中被打开的表的记录进行扫描。 (2 2) 子句确定扫描记录的范围,缺省则为子句确定扫描记录的范围,缺省则为子句确定扫描记录的范围,缺省则为子句确定扫描记录的范围,缺省则为ALLALL。 (3 3)对)对)对)对 子句内满足子句内满足子句内满足子句内满足FORFOR 或或或或WHILEWHILE 的记的记的记的记录执行循环体中的规定操作。录执行循环体中的规定操作。录执行循环体中的规定操作。录执行循环体中的规定操作。 (4 4)记录指针可自动往下移。)记录指针可自动往下移。)记录指针可自动往下移。)记录指针可自动往下移。 USE USE 员工表员工表S

40、TORE 0 TO n1STORE 0 TO n1,n2n2,j1j1,j2j2SCANSCANSCANSCAN IF IF 性别性别= =“ “男男” ” n1=n1+1 n1=n1+1 ELSE ELSE n2=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.

41、15】统计员工表中男女人数,以及教授和副教授的人数。 ?“总共有”,n1,“个男员工”?“总共有”,n2,“个女员工”?“总共有”,j1,“个教授” ?“总共有”,j2,“个副教授” USE 循环小结循环小结a)循环体中的变量一定要赋初值。 b)条件循环(do while)命令适用于各种类型的循环程序。为了避免死循环,循环体内要有修改循环变量的语句c)计数循环(for)适用于已知循环次数的循环程序。尽可能不要在FOR循环内部使用改变循环变量的语句 循环小结循环小结d) 扫描循环(scan)适用于对数据库操作的循环程序。e) 事实上,ForEndfor和ScanEndscan是 Do While

42、Enddo的特殊形式。1.子子 程程 序序 2.过程与过程文件过程与过程文件 3.自定义函数自定义函数 4.内存变量的作用域内存变量的作用域 5.数据传递数据传递 2.6 2.6 程序的模块化设计程序的模块化设计1、子程序、子程序一、定义:一、定义:一、定义:一、定义: 子程序实际上是一个相对的概念,通常称调用的程序为主程序,被调用的程序为子程序。 二、调用与返回二、调用与返回二、调用与返回二、调用与返回 DO DO WITH WITH 1、主程序执行时遇到DO命令,执行就转向子程序。子程序执行完后就会返回到主程序。 2、参数表可以是表达式,若为内存变量,必须具有初值。 3、调用子程序时,参数

43、表中的参数要传送给子程序。三、子程序参数的定义:三、子程序参数的定义:三、子程序参数的定义:三、子程序参数的定义: PARAMETERS PARAMETERS 功功 能能 : 接 受 主 程 序 发 送 的 参 数 值 , 调 用 返 回 主 程 序 时 把 变 量的值回送给主程序相应的变量。 说明:说明: a) a) PARAMETERS必须是被调用程序的第一个语句。 b)b) 程序返回主程序后,该命令定义的参数即被清除。 c)c) DO 命 令 传 送 参 数 的 个 数 不 能 多 于 PARAMETERS参 数 表中所列参数的个数。 d)d) DO命 令 所 带 的 参 数 叫 实 际

44、 参 数 , PARAMETERS所 对 应的叫形式参数。求一个半径等于边长的圆与正方形面积之差。主程序:主程序:STORE 0 TO S1,S2INPUT “输入半径或边长的值: TO ADO YUAN.PRG WITH A,S1DO ZHENG.PRG WITH A,S2?S1-S2YUAN.PRGPARAMETERS R,SS=3.14*R2RETURNZHENG.PRGPARAMETERS L,SS=L2RETURN【例【例【例【例6.156.156.156.15】STORE 0 TO S1,S2INPUT “输入半径或边长的;值:” TO ADO YUAN.PRG WITH A,S1

45、DO ZHEN.PRG WITH A,S2?S1-S2YUAN.PRGPARAMETERS R, SS=3.14*R2RETURNZHEN.PRGPARAMETERS L, SS=L2RETURNA ,S2A ,S1主程序:主程序: 注注 意意 1、只有当DO命令中参数为内存变量时,子程序的参数才能返回给主程序,若参数为常量或表达式时,子程序的参数值不能够返回给主程序。 2、若子程序不需要参数时,DO命令也可以不带参数。四、子程序的返回四、子程序的返回四、子程序的返回四、子程序的返回 RETURN TO MASTER|TO 说明: TO MASTER 直接返回到最外层主程序;TO 强制返回到指

46、定的程序文件。主程序 DO A A.PRG DO B RETUTNB.PRG DO C RETURNTO MASTERC.PRG RETURNTO A2、过程与过程文件、过程与过程文件 如果将多模块程序中的每个模块(主程序,子程序或自定义函数)分别保存为一个独立的.PRG文件,则每执行一个模块就要打开一个文件,势必会增加运行时间。为此VFP允许在一个.PRG文件中设置多个程序模块,并将主程序以外的每个模块定义为一个过程,即“过程文件”,仍以.PRG为扩展名。一、过程的定义一、过程的定义一、过程的定义一、过程的定义 PROCEDURE PARAMETERS RETURN说说 明明: a) 每个过

47、程均以PROCEDURE开始,以RETURN结束。每个过程实际上是一个独立的子程序或一个用户定义函数。 b) PROCEDURE 用于过程的第一条语句,它标识了每个过程的开始,同时定义了过程名。 c) 过程如果以RETURN 作为结束语句,则该过程既可用DO 的形式执行,又可当做一个合法的自定义函数,可供随时调用。将子程序中的例题改为过程。STORE 0 TO S1 ,S2INPUT “输入半径或边长的值:” TO ADO YUAN WITH A , S1DO ZHEN WITH A , S2?S1-S2PROCEDURE YUANPARAMETERS R , S S=3.14*R2RETUR

48、NPROCEDURE ZHENPARAMETERS L , S S=L2RETURN12【例【例【例【例6.166.166.166.16】二、过程文件二、过程文件二、过程文件二、过程文件 一个过程可以以文件形式单独存在,也可以一个过程可以以文件形式单独存在,也可以一个过程可以以文件形式单独存在,也可以一个过程可以以文件形式单独存在,也可以将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。将多个过程合并到一个过程文件。 过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中起来用一个文件过程文件是把多个过程集中

49、起来用一个文件的形式存储在磁盘上,要调用其中的过程,必须的形式存储在磁盘上,要调用其中的过程,必须的形式存储在磁盘上,要调用其中的过程,必须的形式存储在磁盘上,要调用其中的过程,必须先打开该过程文件。先打开该过程文件。先打开该过程文件。先打开该过程文件。 格格 式:式:SET PROCEDURE TO 功功 能:能:打开过程文件。打开过程文件。 【例【例【例【例6.186.186.186.18】用过程文件实现求一个半径等于边长的圆与正方形面积之差的问题。 *Main.prgCLEARSET TALK OFFSET PROCEDURE TO sub &打开过程文件打开过程文件sub.prgSTO

50、RE 0 TO s1,s2INPUT “输入半径或边长的值: TO aDO yuan WITH a,s1 &调用过程文件中的过程调用过程文件中的过程yuanDO zhen WITH a,s2 &调用过程文件中的过程调用过程文件中的过程zhen?s1-s2SET TALK ONRETURN *过程文件过程文件sub.prgPROCEDURE yuan &过程过程yuan PARAMETERS r,s s=3.14*r2RETURNPROCEDURE zhen &过程过程zhen PARAMETERS i,s s=i2RETURN 3、自定义函数、自定义函数 一、自定义函数的定义一、自定义函数的定

51、义一、自定义函数的定义一、自定义函数的定义 FUNCTION PARAMETERS RETURN 若使用FUNCTION语句来指出函数名,表示该函数包含在调用程序中;若缺省,则表示此函数是一个独立文件,函数名在定义文件名时确定。RETURN用于返回函数值,只能返回一个值。若缺省该语句则返回值为.T.。 自定义函数与系统函数调用方法相同: 函数名() 【例【例【例【例6.196.196.196.19】将子程序中的例题改为自定义函数。CLEARS=0INPUT “输入半径或边长的值:” TO A?YUAN(A)-ZHEN(A)FUNCTION YUAN PARAMETERS R S=3.14*R2

52、RETURN SFUNCTION ZHEN PARAMETERS L S=L2RETURN S若两函数存在一个独立文件中,调用前也需若两函数存在一个独立文件中,调用前也需要用要用SET PROCEDURE指定文件名指定文件名4、内存变量的作用域、内存变量的作用域一、全局变量一、全局变量 PUBLIC 功能:功能:声明并建立全局变量。说明:说明: a) 一旦定义,可供所有的程序,模块使用。 b) 在命令窗口定义的变量是全局变量。 c) 程序执行完后不会自动清除。若以内存变量的作用域分类,可分为下列四种: 全局变量、局部变量、局域变量、私有变量全局变量、局部变量、局域变量、私有变量二、局部变量二、

53、局部变量 在程序中定义的变量,若没带PUBLIC声明,它只能在定义它的程序及其下级程序中使用,一旦定义它的程序运行结束,它便自动被清除。三、局域变量三、局域变量LOCAL 只能在定义它的程序中使用,一旦定义它的程序运行结束,它便自动被清除。 四、私有变量四、私有变量 PRIVATE 功能功能:声明并隐藏上级模块中的同名变量。说说明明:a) 对PRIVATE中内存变量的修改并不影响上级程序中与之同名的内存变量的值。此命令只对本级程序及以下各级子程序有效,当返回到上级程序时,被PRIVETE隐藏的当前程序中的内存变量自动删除。 b) 在它们被隐藏期间,程序就不能再调用这些被隐藏的上级内存变量,但实

54、际上它们仍然存在,一旦含有PRIVATE内存变量的程序结束后,被PRIVATE隐藏起来的那些以前建立的同名的上级内存变量自动恢复以前的内容和状态。5、数据传递、数据传递 调用子程序时,调用程序要把数据传递给子程序,子程序也可能把数据传回到调用程序,因此在调用子程序过程中,必然要考虑调用程序和被调用程序之间的数据是如何传递的。 调用子程序时的数据传递可以通过两种方式解决:a)利用变量的作用域实现数据传递利用变量的作用域实现数据传递例:*MAIN.PRG gao=8 kuan=6 c=0 DO SUB ?c return*SUB.PRG c=gao*kuan RETURN结果为:48b)利用参数实

55、现数据传递利用参数实现数据传递 利用这种方式传递数据,子程序具有更大的独立性。编写子程序时,用PARAMETERS命令来说明将要输入、输出的变量;用DO命令来提供输入值和接受输出结果。 参数传递有两种方式:值传递值传递和和地址传递地址传递。值值传传递递:子程序中参数变化后的值不不回回传传各上级调用程序。常量和表达式只能使用值传递方式。使用值传递方式的变量要用括号用括号括起来。地地址址传传递递:子程序中参数变化后的值要回回传传各上级调用程序。内存变量既可使用值传递方式,又可用地址传递。使用地址传递方式的变量不加括号不加括号。写出下列程序的输出。SET TALK OFFX=1Y=3DO SUB W

56、ITH X , (Y) , 5?X , YRERURNPROCEDURE SUBPARAMETERS A , B , C A=ABC B=ABCRERURN分分析析:程序将3个参数传递给过程SUB,第一个参数X采用地址传递方式,变量A的变化将引起X的变化;第二个参数Y采用值传递方式,B的变化不引起Y的变化;第三个参数是常数,最后输出为9 3。【例【例【例【例6.236.236.236.23】2.7 2.7 命令标准格式命令标准格式n nVFPVFPVFPVFP数据处理命令:数据处理命令:数据处理命令:数据处理命令: 内存数据:主要利用表达式和函数处理内存数据:主要利用表达式和函数处理内存数据:

57、主要利用表达式和函数处理内存数据:主要利用表达式和函数处理 数据库数据:专有的、格式规范处理命令。数据库数据:专有的、格式规范处理命令。数据库数据:专有的、格式规范处理命令。数据库数据:专有的、格式规范处理命令。 n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围 FIELDS FIELDS FIELDS FIELDS ; FOR FOR FOR FOR| | | |WHILE WHILE WHILE WHILE ; TO PRINT TO PRINT TO PRINT TO PRINT| | | |TO FILETTO FILET

58、TO FILETTO FILET2.8 2.8 数据库命令标准格式数据库命令标准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围 FIELDS FIELDS FIELDS FIELDS ; FOR FOR FOR FOR| | | |WHILE WHILE WHILE WHILE ; TO PRINT TO PRINT TO PRINT TO PRINT| | | |TO FILETTO FILETTO FILETTO FILET1 1 1 1、符号约定、符号约定、符号约定、符号约定 (1) (1) (1) (1)中内容必须用

59、户给定;中内容必须用户给定;中内容必须用户给定;中内容必须用户给定; (2) (2) (2) (2)表示可选,不选为默认值表示可选,不选为默认值表示可选,不选为默认值表示可选,不选为默认值 (3)| (3)| (3)| (3)|表示任选一项表示任选一项表示任选一项表示任选一项 (4) (4) (4) (4)可重复出现的项可重复出现的项可重复出现的项可重复出现的项注注注注意意意意:书书书书写写写写具具具具体体体体命命命命令令令令时时时时,语语语语法法法法中中中中以以以以上上上上约约约约定定定定符符符符号号号号不不不不能出现。能出现。能出现。能出现。 2.8 2.8 数据库命令标准格式数据库命令标

60、准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围FIELDS FIELDS FIELDS FIELDS ; FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE ; TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET2 2 2 2、语法说明、语法说明、语法说明、语法说明: : : : (1 1 1 1)命令动词:关键词,说明功能)命令动词:关键词,说明功能)命令动词:关键词,说明功能)命令动词:关键词,说明功

61、能 (2 2 2 2)范围:限定命令对表记录(行)的作用范围)范围:限定命令对表记录(行)的作用范围)范围:限定命令对表记录(行)的作用范围)范围:限定命令对表记录(行)的作用范围 ALL ALL ALL ALL:所有记录:所有记录:所有记录:所有记录 NEXT n: NEXT n: NEXT n: NEXT n:包括当前记录在内的以下包括当前记录在内的以下包括当前记录在内的以下包括当前记录在内的以下n n n n条记录条记录条记录条记录 RECORD n RECORD n RECORD n RECORD n:对第:对第:对第:对第n n n n条记录进行操作条记录进行操作条记录进行操作条记录

62、进行操作 REST REST REST REST:从当前记录开始到表末的所有记录:从当前记录开始到表末的所有记录:从当前记录开始到表末的所有记录:从当前记录开始到表末的所有记录 2.8 2.8 命令标准格式命令标准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围 FIELDS FIELDS FIELDS FIELDS ; FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE ; TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT

63、|TO FILET2 2 2 2、语法说明、语法说明、语法说明、语法说明: : : : (3 3 3 3) FIELDS FIELDS FIELDS FIELDS 可选项可选项可选项可选项 用用用用于于于于限限限限定定定定命命命命令令令令功功功功能能能能对对对对当当当当前前前前表表表表中中中中字字字字段段段段(列列列列)的范围,完成投影运算。的范围,完成投影运算。的范围,完成投影运算。的范围,完成投影运算。 (4 4 4 4) FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE 可选项可选项可选项可选项 本本本本子子子子句句句句与与与与范范范范围围围围一一一一起起起

64、起限限限限制制制制对对对对某某某某些些些些范范范范围围围围内内内内满满满满足足足足条件的记录进行操作,实现关系的选择运算。条件的记录进行操作,实现关系的选择运算。条件的记录进行操作,实现关系的选择运算。条件的记录进行操作,实现关系的选择运算。 2.82.8数据库命令标准格式数据库命令标准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围FIELDS FIELDS FIELDS FIELDS ; FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE ; TO PRINT|TO FILET TO PRINT

65、|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET2 2 2 2、语法说明、语法说明、语法说明、语法说明: : : :(5 5 5 5) FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE 可选项可选项可选项可选项 ForForForFor 对对对对指指指指定定定定范范范范围围围围内内内内满满满满足足足足条条条条件件件件记记记记录录录录操操操操作,缺省时默认为为作,缺省时默认为为作,缺省时默认为为作,缺省时默认为为allallallall。 WhileWhileWhileWhile 从从从从指指指指定定定定范范范范围围围围内内

66、内内第第第第一一一一条条条条记记记记录录录录开开开开始始始始执执执执行行行行检检检检查查查查,到到到到遇遇遇遇到到到到第第第第一一一一个个个个不不不不满满满满足足足足条条条条件件件件的的的的记记记记录录录录时停止执行,缺省时默认为时停止执行,缺省时默认为时停止执行,缺省时默认为时停止执行,缺省时默认为restrestrestrest。 为为为为逻逻逻逻辑辑辑辑常常常常量量量量、关关关关系系系系表表表表达达达达式式式式、逻逻逻逻辑辑辑辑表表表表达式。达式。达式。达式。 2.8 2.8 数据库命令标准格式数据库命令标准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据

67、库数据命令一般格式 范围范围范围范围FIELDS FIELDS FIELDS FIELDS ; FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE ; TO PRINT|TO FILETTO PRINT|TO FILETTO PRINT|TO FILETTO PRINT|TO FILET2 2 2 2、语法说明、语法说明、语法说明、语法说明: : : : (6 6 6 6)输出去向)输出去向)输出去向)输出去向TO PRINTTO PRINTTO PRINTTO PRINT:输出到打印机:输出到打印机:输出到打印机:输出到打印机TO FILETTO FILETTO

68、FILETTO FILET:输出到文本文件:输出到文本文件:输出到文本文件:输出到文本文件 2.8 2.8 数据库命令标准格式数据库命令标准格式n n数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式数据库数据命令一般格式 范围范围范围范围FIELDS FIELDS FIELDS FIELDS ; FOR|WHILE FOR|WHILE FOR|WHILE FOR|WHILE ; TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET TO PRINT|TO FILET3 3 3 3、书写规则、书写规则、书写规则、书写规则:

69、: : :(1 1 1 1)每每每每个个个个命命命命令令令令必必必必须须须须以以以以动动动动词词词词开开开开头头头头。命命命命令令令令字字字字、保保保保留留留留字字字字、分分分分割割割割符符符符和和和和定定定定界界界界符符符符一一一一律律律律为为为为英英英英文文文文半半半半角角角角字字字字符符符符。命命命命令令令令字字字字、保保保保留字使用前四个字母即可,并且大小写等效。留字使用前四个字母即可,并且大小写等效。留字使用前四个字母即可,并且大小写等效。留字使用前四个字母即可,并且大小写等效。(2 2 2 2)命命命命令令令令行行行行各各各各字字字字句句句句之之之之间间间间用用用用空空空空格格格格隔隔隔隔开开开开,并并并并且且且且各各各各字字字字句句句句的的的的次序可以任意。次序可以任意。次序可以任意。次序可以任意。(3 3 3 3)写写写写完完完完一一一一条条条条命命命命令令令令用用用用回回回回车车车车结结结结束束束束。也也也也可可可可用用用用续续续续写写写写符符符符将将将将一一一一条命令写成多行。条命令写成多行。条命令写成多行。条命令写成多行。(4 4 4 4)用户在选择变量名、字段名和文件名时,应避免与命令动词和关键字同名,以免运行时发生混乱

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号