(中职)数据库应用基础——Visual FoxPro模块6教学课件.ppt

上传人:春哥&#****71; 文档编号:90586713 上传时间:2023-05-15 格式:PPT 页数:64 大小:942.50KB
返回 下载 相关 举报
(中职)数据库应用基础——Visual FoxPro模块6教学课件.ppt_第1页
第1页 / 共64页
(中职)数据库应用基础——Visual FoxPro模块6教学课件.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《(中职)数据库应用基础——Visual FoxPro模块6教学课件.ppt》由会员分享,可在线阅读,更多相关《(中职)数据库应用基础——Visual FoxPro模块6教学课件.ppt(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Y CF正版可修改PPT(中职)数据库应用基础Visual FoxPro 模块6 教学课件模块6 结构化程序设计 单元1 程序文件的建立和运行 单元2 程序设计中的常用语句 单元3 程序的控制结构 单元4 过程与过程调用单元1 程序文件的建立和运行 程序文件也称为命令文件或程序。程序是能够完成一定任务的命令的有序集合,它是由一系列Visual FoxPro 的命令组成的文本文件,其扩展名为.prg。任务1.1 程序文件的建立、运行和调试 1.1.1 程序文件的建立 程序文件可以使用任何文本编辑软件来创建或编辑。在Visual FoxPro 中创建程序文件的方法有以下3 种。在“项目管理器”对话

2、框中选择“代码”选项卡的“程序”选项,然后单击“新建”按钮,在弹出的对话框中,输入所要建立的程序代码,如图6-1 所示。选择“文件”一“新建”命令,打开“新建”对话框,在其中选择“程序”文件类型,然后单击“新建文件”按钮,在弹出的对话框中,输入所要建立的程序代码。下一页 返回单元1 程序文件的建立和运行 在命令窗口中执行命令:MODIFY COMMAND 在弹出的程序窗口中,输入所要建立的程序代码。例如,要建立一个名为pjz(求平均值)的程序,可在命令窗口输入命令:MODIFY COMMAND pjz 此时主窗口便打开一个标题为pjz.prg 的文本编辑对话框,在该对话框中输入相应程序代码即可

3、,如图6-2 所示。程序文件的代码编写完后,必须进行保存。保存程序文件的方法是:按Ctrl+W 组合键或按Ctrl+S 组合键(相当于执行“文件”菜单中的“保存”命令)。前者存盘并退出编辑,后者只存盘但不退出编辑对话框。上一页 下一页 返回单元1 程序文件的建立和运行 1.1.2 程序文件的修改 程序文件被保存以后,若要对其中的内容进行修改,可以将其重新打开。同样有3 种方法可以打开程序文件并进行修改。若程序包含在一个项目中,则在项目管理器中选中它,单击“修改”按钮。在“文件”菜单中选择“打开”命令,在弹出的对话框中选择“程序”文件类型(*.prg、*.spr、*.mpr、*.qpr),然后在

4、文件列表中选中要修改的程序后单击“确定”按钮。使用命令:MODIFY COMMAND 修改完毕,需要重新保存,按Ctrl+W 组合键。若要放弃所做的修改,则按Esc 键。上一页 下一页 返回单元1 程序文件的建立和运行 1.1.3 程序文件的运行 程序文件创建之后便可运行了。运行程序的方法有以下3 种。若程序包含在一个项目中,则在项目管理器中选中它,单击“运行”按钮。在“程序”菜单中选择“运行”命令,从文件列表中选择要运行的文件,单击“运行”按钮。在命令窗口中使用命令:DO 所谓运行程序,就是依次执行程序中的命令。1.1.4 程序的调试 程序调试的目的就是检查并纠正程序中的错误,以保证程序的可

5、靠运行。调试通常分3 步进行:检查程序是否存在错误一确定出错的位置一纠正错误。上一页 下一页 返回单元1 程序文件的建立和运行 程序中常见错误包括:语法错误,如命令字拼写错、命令格式错、使用未定义的变量、数据类型不匹配、操作的文件不存在、超出系统允许的范围等;逻辑错误,逻辑错误指程序设计的差错,如计算或处理逻辑有错。Visual FoxPro 提供了一个称为调试器的程序调试工具,打开调试器窗口的方法有两种。选择Visual FoxPro“工具”菜单中的“调试器”命令。在命令窗口输入DEBU 命令。用户可通过调试设置、执行程序和修改程序来完成程序调试。调试设置包括为程序设置断点,设置监视表达式,

6、设置要显示的变量、数组等;执行程序有多种方式,用于观察各种设置的动态执行结果;如果发现错误,允许当场切换为程序修改方式。上一页 下一页 返回单元1 程序文件的建立和运行 任务1.2 程序的书写规则和编辑技巧 2.1 程序的书写规则 正确的程序书写,会使程序具有可读性,将给程序的修改带来方便。首先,程序中的每条命令都以Enter 键结束,一行只能写一条语句或命令。若命令太长需分行书写,应在要续行的末尾键入续行符“;”,然后按Enter 键。另外,为了提高程序的可读性,可在程序中插入注释。以符号“*”或命令字“NOTE”开始的注释行可以出现在程序的任何地方,它是一条非执行语句行,仅在编辑窗口中显示

7、,程序执行时,不会对其进行解释执行。如果要在命令或语句行后面添加注释,则以符号“&”开头添加注释。例如,*本程序用于计算1100 的和。SUM=1&给求和变量赋初值 注意:不能在命令语句行续行的分号后面加入&和注释上一页 下一页 返回单元1 程序文件的建立和运行 1.2.2 命令窗口的使用技巧 在“命令”窗口中执行命令时,经常重复执行以前用过的命令。这时,不需要重新键入命令,只需将光标移到前面命令出现的位置,按Enter 键即可重新执行该命令。如果需要修改该命令,可以用一般的编辑技巧对命令进行修改后再按Enter 键。若要执行前面几条连续的命令行,则选定这几条命令,然后按Enter 键即可。1

8、.2.3 程序文件中的使用技巧 程序编写好了,如果想只运行程序文件中的部分语句,只需选定这些行并单击鼠标右键,执行“运行所选区域”命令。上一页 下一页 返回单元1 程序文件的建立和运行 1.2.4 程序代码中的颜色 程序代码在代码窗口中会以不同的颜色出现。系统默认的颜色设定与含义为:绿色代码代表注释,蓝色代码代表命令关键字,黑色代码代表非命令关键字或用户使用的字符,红色代码则表明有语法错误,以提醒用户改正。执行“工具”一“选项”一“语法着色”命令,可以改变这些默认值。1.2.5 过程与函数列表 在程序编辑窗口中右击鼠标后,执行“过程”一“函数列表”命令,可以显示当前文件中所采用的过程或函数,从

9、中可快速定位到所需之处。上一页 返回单元2 程序设计中的常用语句 1.?输出命令 功能:计算表达式的值,并输出计算结果。语法:?Expression1ATnColumn,Expression2 说明:?Expressionl:计算表达式Expression1 的值,输出一个回车和换行符,再将计算结果输出到Visual FoxPro 主窗口。若省略表达式,则显示或打印一个空行。当包含多个表达式时,在表达式的结果之间插入一个空格。?Expression1:计算表达式Expression1 的值,并把技术结果输出到Visual FoxPro 主窗口。AT nColumn:指定显示结果的列编号,即屏幕

10、上绝对列坐标。下一页 返回单元2 程序设计中的常用语句 该命令可以在指定的屏幕或窗口的列坐标处显示表达式的值。缺省显示坐标时,?用于当前光标的下一行行首显示,?用于在当前光标处显示。2.WAIT 输入命令 功能:显示信息并暂停Visual FoxPro 的执行,按某个键或单击鼠标后继续执行。语法:WAIT cMessageText TO VarName WINDOWATnRow,nColumn TIMEOUTnSeconds 说明:cMessageText 指定要显示的提示信息。若缺省该参数,则Visual FoxPro 显示默认的信息:按任一键继续。TO VarName 将按下的键保存到变量

11、或数组元素中。它专用于接受单个字符,且输入单个字符后不需按Enter 键。上一页 下一页 返回单元2 程序设计中的常用语句 WINDOWATnRow,nColumn 按指定坐标显示用户提示信息,按Ctrl 键或Shift 键可以暂时隐藏该窗口。TIMEOUTnSeconds 指定在中断WAIT 命令之前,等待键盘或鼠标输入的秒数。执行该命令,可以暂停程序的运行,并在屏幕上或指定位置的提示信息窗口中显示提示信息。如果给定了等待时间,一旦未击键而超时,将立即结束等待,去执行其后的命令。例6-1 用WAIT 命令在信息提示窗口中显示:谢谢使用Visual FoxPro。WAIT“正在执行中,请稍候”

12、执行该命令后,屏幕右上角如图6-3 所示。3.格式输入/输出命令 功能:在指定的行列位置显示或打印输出结果。语法:SAYExpression1GETMemvarDEFAULT Expression2上一页 下一页 返回单元2 程序设计中的常用语句 说明:row,column:指定光标放置在屏幕上的位置。SAY Expression1:读取表达式Expressionl 的值,并在row,column 指定的坐标位置显示。GET Metnvar GET 子句中的变量必须具有初值或用DEFAULT 子句的Expression2 指定初值。GET 子句的变量必须用READ 命令来激活。在多个GET 命

13、令之后,只要使用一个READ 命令即可,如果只使用GET 命令而不加入READ 命令,则不能由键盘输入任何值。因为.GET 命令之后必须有READ,才能读取用户的输入。4.CLEAR 清屏命令 功能:清除屏幕或窗口中显示的内容。语法:CLEAR上一页 下一页 返回单元2 程序设计中的常用语句 5.ACCEP 下内存变量接收命令 功能:从键盘输入字符给内存变量。语法:ACCEPT cPromPtText TO MemVarName 说明:cPromptText1:指定提示信息。Mem VarName:指定接收所击键值的内存变量。执行该命令时,屏幕上显示由cPromptText 给定的提示信息,然

14、后等待用户从键盘上输入数据,并将其值赋给内存变量。本命令可将字符直接从键盘输入内存变量MemVarName,无须使用分界符。输入的数据作为字符串存储起来。上一页 下一页 返回单元2 程序设计中的常用语句 例6-2 用ACCEPT 命令编写程序实例。CLEAR USE 新生入学信息 ACCEPT“请输入待查学生的姓名:”TO XM LOCATE FOR 姓名=XM DISPLAY 编号;姓名;入学成绩;专业 USE RETURN 这里我们输入学生的名字为“刘中平”,运行程序结果如下。上一页 下一页 返回单元2 程序设计中的常用语句 6.INPUT 内存变量输入命令 功能:从键盘输入数据给内存变量

15、。语法:INPUTcPromPtTextTO Mem VarName 说明:参数含义同ACCEPT 该命令与ACCEPT 命令都是接收键盘数据赋给内存变量,执行时都会在屏幕上显示提示信息,提示用户应该输入什么数据不同之处是:INPUT 命令可以接收任何有效的表达式,表达式中可以包含函数、字段变量、内存变量和常数。当输入字符串常量时,INPUT 命令要求用单引号、双引号或方括号括起来,内存变量的类型也取决于输入数据的类型;上一页 下一页 返回单元2 程序设计中的常用语句 例6-3 用INPUT 命令编写程序实例 CLEAR INPUT“请输入圆的半径:”TOR S=3.1415926*R*R?“

16、圆的面积为:”,S 这里我们输入半径为3.4,运行程序结果如下 RETURN上一页 返回单元3 程序的控制结构 Visual FoxPro 的程序与其他高级语言类似,其基本控制结构包括:顺序结构、分支(选择)结构和循环结构。任务3.1 顺序结构 顺序结构是最简单的程序结构,它只能顺序地逐条执行程序中的命令。当一条命令执行完后就会自动开始下一条命令的执行,每条命令按顺序都要执行一次,且只执行一次。本模块前面所举例子都是顺序结构的例子。任务3.2 介支结构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择的诸多问题。分支结构是Visual FoxPro 系统程序的基本

17、结构之一,分支语句是非常重要的语句,其基本形式有3 种。3.2.1 单向分支单向分支语句,即根据条件表达式的值,决定某一操作是否执行。下一页 返回单元3 程序的控制结构 语句格式:If EndIf 语句功能:首先计算 的值,当的值为真时,执行;否则,执行EndIf 后面的命令 单向分支语句的流程如图6-4 所示。上一页 下一页 返回单元3 程序的控制结构 例6-4 修改“专业特长”表中的数据,把编号为“yy101”的专业由“英语”改为“数学”。编写的程序代码如下 Use 新生入学信息.dbf Exclusive Locate All For 编号=“YY101”If 专业=“英语”Replac

18、e 专业With“数学”EndIf Browse Last 程序的运行结果如图6-5 所示。上一页 下一页 返回单元3 程序的控制结构 3.2.2 双向分支 双向分支语句,即根据条件表达式的值,选择两个操作中的一个来执行。语句格式:If Else EndIf 语句功能:首先计算 的值,当的值为真时,执行 中的命令;否则,执行 中的命令;执行完 或 后都将执行EndIf 后面的第一条命令。双向分支语句的流程如图6-6 所示。上一页 下一页 返回单元3 程序的控制结构 例6-5 在专门人才档案“人才档案”表中,查找姓名为“林立报”的记录,如果找到把该记录加上删除标记,没有找到则显示提示信息“查无此

19、人”。编写的程序代码如下。Clear Use 新生入学信息.dbf Exclusive Locate All For 姓名=“林立报,If.not.eof()De1ete Else 2,30Say“查无此人”EndIf Browse Last 程序运行结果如图6-7 所示。上一页 下一页 返回单元3 程序的控制结构 从图6-7 中可以看出,姓名为“林立报”的记录已加上删除标记;如果没有找到林立报,会在屏幕的第2 行、第30 列显示提示信息“查无此人”。3.2.3 多向分支 多向分支语句,即根据多个条件表达式的值,选择多个操作中的一个对应执行。语句格式:上一页 下一页 返回单元3 程序的控制结构

20、 DoCase Case Case Case Otherwise EndCase上一页 下一页 返回单元3 程序的控制结构 语句功能:该语句根据给出的n 个 的值,选择n+1 个 中的一个执行。当所有CASE 中的 的值都是假时,如果有Otherwise 项,则执行,再执行EndCase 后面的第一条命令;否则,直接执行EndCase 后面的第一条命令。多向分支语句的流程如图6-8 所示。任务3.3 循环结构 循环结构用于实现有规律性的重复操作,控制程序段的反复执行,直到满足某种条件为止。具有这种控制循环机制的程序就称为循环结构程序。Visual FoxPro。支持循环结构的语句有:DO WH

21、ILE.ENDDO,FOR.ENDFOR 和SCAN.ENDSCAN。上一页 下一页 返回单元3 程序的控制结构 如果要改变循环语句的执行顺序,可以用EXIT 和LOOP 命令。EXIT 命令用于结束语句的执行,退出循环体,转去执行ENDDO 后面的语句;LOOP 命令用于结束循环体的本次执行,重新开始下一次循环。3.3.1DO WHILEENDDO 功能:在一个条件循环里执行一组命令。语法:DOWHILE 1Expression Commands LOOP EXIT ENDDO上一页 下一页 返回单元3 程序的控制结构 说明:根据指定的逻辑表达式1Expression,控制循环中命令的执行次

22、数。如果条件为真(.T.),则执行DO WHILE 与ENDDO 之间的命令序列。当执行到ENDDO 时,再返回到DOWHILE,再次判断循环条件是否为真,以确定是否再次执行循环体,只有当DOWHILE 的条件为假(.F.)时,才结束循环。如果第1 次判断条件时,条件为假,则循环体一次都不执行。上一页 下一页 返回单元3 程序的控制结构 例6-6 计算1100 的平方和。上一页 下一页 返回单元3 程序的控制结构 例6-7 计算110 的阶乘(10!)。上一页 下一页 返回单元3 程序的控制结构 3.3.2FOR.ENDFOR 功能:按指定的次数重复执行一组命令。说明:Var:循环控制变量。n

23、InilialValue:指定循环次数控制变量初值。nFinalValue:指定循环次数控制变量终值。上一页 下一页 返回单元3 程序的控制结构 STEP nIneretnent:指定循环次数控制变量增量,其值可正可负。当缺省此项时,增量值默认为1。Commands:循环体命令组。ENDFOR/NEXT:循环终止语句。例6-8 输出九九乘法表的矩阵形式。上一页 下一页 返回单元3 程序的控制结构 该程序的运行结果为:上一页 下一页 返回单元3 程序的控制结构 3.3.3SCANENDSCAN 功能:在当前选定表中移动记录指针,并对每一个满足指定条件的记录执行一组命令。语法:SCANScopeF

24、OR1Expression1WHILE1Expression2 Commands LOOP EXIT ENDSCAN 说明:SCOPE:指定扫描记录的范围,只有范围之内的记录才能扫描到。SCAN 的默认范围是所有记录(ALL)。FOR1Expression1:指定记录的操作条件。上一页 下一页 返回单元3 程序的控制结构 WHILE 1Expression2:指定记录的操作条件。Commands:指定要执行的Visual FoxPro 命令。ENDSCAN:标志SCAN 过程的结束。该命令对当前表指定范围和满足条件的记录执行循环体语句,每执行一次循环,该命令自动将记录指针移到下一条满足指定条件

25、的记录,并执行相应的命令组。当记录指针从头到尾移动通过整个表时,SCAN 循环将对记录指针指向的每一个满足条件的记录执行一遍SCAN 与ENDSCAN 之间的命令。上一页 下一页 返回单元3 程序的控制结构 例6-9J 输出“新生入学信息.DBF”中所有女学生的姓名、性别、学号、入学成绩和专业。clear USE 新生入学信息 SCANFOR 性别=女 DISPLAY 编号,姓名,入学成绩,专业 ENDSCAN USE RETURN上一页 下一页 返回单元3 程序的控制结构 输出结果如下:上一页 下一页 返回单元3 程序的控制结构 3.3.4 三种循环的比较 若事先知道循环次数,可以使用DO

26、WHILE 或FOR 循环。若事先不知道循环的次数,只知道在某一条件满足时结束循环,可以使用DO WHILE 循环。DO WHILE 循环和FOR 循环可以用于对表的循环处理,也可以用于其他循环处理,而SCAN 循环只用于对表的处理。因为SCAN 循环语句的功能是移动表内指针,所以不能处理除了表之外的其他问题。上一页 返回单元4 过程与过程调用 任务4.1 主程序和子程序 4.1.1 主程序和子程序的概念 子程序的建立方法与程序文件的方法相同,扩展名为.prg。在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不是集中在一个固定的位置上重复执行,而是分散在程序的许多位置上重复执行。通常

27、将这样的程序段与嵌入它的程序分开,形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性及模块化。一般情况下,把这种具有独立的功能,并且可以被其他程序调用的程序序列称为过程,将调用过程的程序称为主程序。下一页 返回单元4 过程与过程调用 过程是由一个或多个命令、语句构成,以返回语句(Return)结束的独立程序段。使用过程时,通过过程名调用并执行。过程文件可以存储多个过程,调用执行一个过程文件后,就可以调用执行其中每个过程构成的程序段。过程文件是以过程说明语句开头,以过程返回命令结束的多个程序段落的集合。4.1.2 子程序的调用 在某一程序中安排一条DO

28、 命令来运行一个独立存储的程序,就是调用子程序。其语法格式如下:DOWITH 中的参数可以是任何合法的表达式,包括常量、已赋值的变量或可计算的表达式等,各参数间用逗号间隔。上一页 下一页 返回单元4 过程与过程调用 子程序的调用与返回主程序的过程如图6-9 所示。当主程序执行到子程序调用语句时,立即转去执行子程序;当在子程序中遇到RETURN 语句或遇到ENDPROC 语句时,又转回主程序,执行DO 命令的下一条语句。需要说明的是,主程序和子程序的概念是相对的,一个子程序还可以调用其他的程序,即程序的嵌套调用。程序的嵌套调用如图6-10 所示。4.1.3 子程序返回语句 语法格式如下:RETU

29、RNTO MASTER RETURN 称为返回语句,即当程序执行该语句时,返回到其上级程序。语句RETURN TO MASTER 在过程嵌套调用时使用,表示返回到最高级调用者。上一页 下一页 返回单元4 过程与过程调用 例6-10 调用两个子程序sub1.PRG 和sub2.PRG。上一页 下一页 返回单元4 过程与过程调用 任务4.2 过程及过程文件 子程序是完成某一功能的程序,它以独立的文件形式(.prg)存储在磁盘中。主程序需要的时候可以多次调用它,每调用一次子程序就要访问磁盘一次,如果要调用多个子程序,在内存中打开和管理的文件多了,就增加了读磁盘的时间和内存管理的难度,从而降低了系统的

30、运行效率。解决的方法是:把每一个子程序作为过程文件中的一个“过程”,整个过程文件是磁盘中的一个文件,进行存储。当打开过程文件时,过程文件中的所有过程都调入内存,主程序可以任意调用其中的过程(子程序)。但从打开文件的个数来说,只打开了一个过程文件。上一页 下一页 返回单元4 过程与过程调用 4.2.1 过程文件的建立 过程文件是过程的集合,一个过程文件中可包含若干个过程或自定义函数。在Visual FoxPro 中,过程文件的建立方法与一般程序相同,可以用MODIFYCOMMAND 命令、菜单方式或项目管理器等多种方式操作,扩展名为.prg。4.2.2 过程的定义 过程定义的语法格式如下:PRO

31、CEDURE PARAMETERS RETURNTO MASTER ENDPROC上一页 下一页 返回单元4 过程与过程调用 PROCEDURE 是过程的第一条语句,它标志着过程的始;PARAMETERS 用于定义形式参数,是可选项;命令语句序列则构成了一个过程体。在该过程的最后一条语句后,自动执行一条隐含RETURN 命令,也可以在过程最后一行中包含一条RETURN 命令。注意:可以将过程放在单独的过程文件中,也可放在程序的结尾 过程名和过程文件是两个不同的概念,过程名是一个没有扩展名的过程名称,而过程文件可由多个过程构成 4.2.3 过程的调用 过程的调用格式有两种情况。其一是程序中过程的

32、调用,其二是过程文件中过程的调用。上一页 下一页 返回单元4 过程与过程调用 1.程序中过程的调用 程序中过程的调用方法与子程序的调用基本相同,其语法格式如下:DOWITH 2.过程文件中过程的调用 如果过程或自定义函数放在过程文件中,可以在调用语句IN中指出。其语法格式如下:DOWITHIN 也可以在调用过程之前先通过命令打开过程文件,然后再用DO 命令来调用其中的过程或函数。其语法格式如下:上一页 下一页 返回单元4 过程与过程调用 SET PROCEDURE TOADDDITIVE ADDDITIVE 选项表示在不关闭当前已打开的过程文件的情况下打开其他过程文件。注意:如果不加ADDDI

33、TIVE 选项,打开一个过程文件,将关闭原已打开的过程文件。该命令在主程序中使用时,应放在调用过程文件的命令之前。当不再调用过程文件时,应在调用程序中使用下列命令予以关闭。格式1:CLOSE PROCEDURE 格式2:SET PROCEDURE TO上一页 下一页 返回单元4 过程与过程调用 任务4.3 带参数的过程调用 实际应用中,常需要在调用程序和被调用程序之间进行一些参数的传递,并根据接收到的参数控制程序流程或对接收到的参数进行处理,从而大大提高程序设计的灵话性。程序之间的参数传递可通过两种方法进行:一是通过带参数的程序调用来实现;二是通过内存变量来实现。这里介绍通过带参数的程序调用实

34、现参数传递。传递参数命令:DOWITH 接受参数命令:PARAMETERS上一页 下一页 返回单元4 过程与过程调用 当调用语句包含了WITH 选项时,表示主程序和子程序(过程)之间要进行参数的传递,中的参数可以是常量、变量和表达式。参数传递与接收规则如下。子程序(过程)中的第一条可执行语句必须是参数接收语句。PARAMETERS 中的参数和WITH 子句中的参数必须一一对应,即参数的个数、类型、顺序都必须相同。任务4.4 有定义函数 Visual FoxPro 除提供众多的系统函数(亦称标准函数)外,还可以由用户来自定义函数。上一页 下一页 返回单元4 过程与过程调用 4.4.1 自定义函数

35、的建立自定义函数的格式 FUNCTION PARAMETERS RETURN 说明:若使用FUNCTION 语句来指出函数名,则表示该函数包含在调用程序中;若省略此语句,表示该函数是一个独立文件,函数名将在建立文件时确定,其扩展名默认为.prg,并可使用命令“MODIFYCOMMAND 函数名”来建立或编辑该自定义函数。“语句序列”为函数体,用于进行各种处理。RETURN 语句用于返回函数值,其中的“表达式”值就是函数值,默认值为.T.。自定义函数与系统函数调用方法相同。上一页 下一页 返回单元4 过程与过程调用 4.4.2 数组参数的传递 在调用自定义函数或过程时,也可将数组作为参数来传递数

36、据。此时,发送参数与接收参数都使用数组名,发送参数数组名前要加 标记,而作为接收参数的数组不需事先定义。任务4.5 变量的作用域 在多模块程序中,某模块中的变量是否在其他模块中也可以使用呢?答案是不一定,因为用户定义的变量有一定的作用域。若以变量的作用域来分类,内存变量可分为公共变量、私有变量和本地变量3 类。4.5.1 公共变量 在任何模块中都可使用的变量称为公共变量,公共变量可用下述命令来建立。上一页 下一页 返回单元4 过程与过程调用 命令格式:PUBLIC 功能:将“内存变量表”指定的变量设置为公共变量,并将这些变量的初值均赋以.F.。说明:若下层模块中建立的内存变量要供上层模块使用,

37、或某模块中建立的内存变量要供并列模块使用,则必须将这种变量说明成公共变量。Visual FoxPro 默认命令窗口中定义的变量都是公共变量,但这样定义的变量不能在程序方式下使用。程序终止执行时,公共变量不会自动清除。可以使用RELEASE 命令或CLEAR ALL 命令清除公共变量。上一页 下一页 返回单元4 过程与过程调用 4.5.2 私有变量 Visual FoxPro 默认程序中定义的变量是私有变量,私有变量仅在定义它的模块及其下层模块中有效,并在定义它的模块运行结束时自动清除。私有变量允许与上层模块的变量同名,但此时为分清二者是不同的变量,需要采用暂时屏蔽上级模块变量的办法。下述命令声

38、明的私有变量就能起这样的作用。命令格式:PRIVATEALLLIKE/EXCEPT 功能:声明私有变量并隐藏上级模块的同名变量,直到声明它的程序、过程或自定义函数执行结束后,才恢复使用先前隐藏的变量。上一页 下一页 返回单元4 过程与过程调用 说明:“声明”与“建立”不一样,前者仅指变量的类型,后者包括类型与值。PUBLIC 命令除声明变量的类型外还对其赋了初值,故称为建立;而PRIVATE 并不自动对变量赋值,仅声明而已。在程序模块调用时,参数接收命令PARAMETERS 声明的参变量也是私有变量,与PRIVATE 命令作用相同。4.5.3 本地变量 本地变量只能在建立它的模块中使用,而且不能在高层或底层模块中使用,该模块运行结束时本地变量就自动释放。命令格式:LOCAL 功能:将“内存变量表”指定的变量设置为本地变量,并将这些变量的初值均赋以.F.。注意:由于LOCAL 命令与LOCATE 命令的前4 个字母相同,故不可缩写。上一页 返回图6-1 在项目管理器中创建程序文件返回图6-2 建立程序文件piz.prg返回图6-3 Wait 命令示例返回图6-4 单向分支语句的流程图返回图6-5 运行结果返回图6-6 双向分支语句的流程图返回图6-7 运行结果(加上删除标记)返回图6-8 多向分支语句的流程图返回图6-9 主程序与子程序的调用关系返回图6-10 子程序的嵌套调用返回

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com