- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[管理学]fp第七章
* 2、调用:函数名([参数表达式列表]) 例:设计一个自定义函数,用来求一元一次方程ax+b=0的根 *root.prg parameters a,b return iif(a=0,”无解”,-b/a) 分析:有两个参数a和b,所以函数格式设计为root(n1,n2),其中root是函数名,n1表示方程的一次项系数,n2表示常数项 ?“x:”,root(3,1) * clear @5,10 say 一次项系数: get a default 1 @7,10 say 常数项: get b default 0 read ?x: ,root(a,b) function root parameters u,v return iif(u=0,无解,-v/u) * 【例7-35】 3!+5!+13! * 六、过程 每个模块分别是一个.prg文件,每执行一个就要打开一个文件,效率低,VFP允许在一个.prg文件中设置多个程序模块,将主程序之外的每个模块定义为一个过程,该文件为过程文件.prg procedure 过程名 [parameters 参数表] 命令序列 [return] [endproc] do 过程名 * 1 、过程包含在本程序中: 当过程放在程序的最后作为程序的一部分时,调用过程的命令: do 过程名 [with 参数表] 2、过程不在本程序中: 当过程不在本程序中,在另一个程序中: do 过程名 [with 参数表] in 文件名 * 例:设计一计算圆面积的程序为过程调用 clear set decimals to 2 ymj=0 @5,10 say 请输入半径: get bj default 0 read do js with bj,ymj ?ymj=,ymj return procedure js parameters r,s s=pi()*r*r return * ymj=0 @5,10 say 请输入半径:get bj default 0 read do js with bj,ymj in js1 ?ymj=,ymj procedure js parameters r,s s=pi()*r*r return js1.prg * 过程文件:将多个过程组织到一个文件中 主程序调用过程文件中的某过程时,要在主程序首部打开过程文件 打开过程文件: set procedure to 过程文件名 调用结束后在主程序中要关闭过程文件 关闭过程文件: set procedure to * 七、变量的作用域 公共变量(全局) 、私有变量、本地变量(局部) 1、公共变量(全局) public 内存变量表 将内存变量表指定的变量设置为公共变量,并设初值为.f. 当下层模块中建立的内存变量要供上层模块使用,或某模块中建立的内存变量要供并列模块使用,则必须将这种变量说明为公共变量 * VFP默认命令窗口中定义的变量都是公共变量,但这样定义的变量不能在程序方式下使用 程序终止执行时,公共变量不会自动清除,只能用命令来清除 release 或clear all * 全局变量的例子。 * 2、私有变量 VFP默认程序中定义的变量为私有变量,仅在定义它的模块及其下层模块中有效,在定义它的模块运行结束时自动清除 private 内存变量表 [all[like|except通配符]] 在程序模块调用时,参数接收命令parameters声明的参数变量是私有变量,与private作用相同 * 私有变量的例子。 * 3、本地变量(局部) 只能在建立它的模块中使用,不能在高层或底层模块中使用,该模块运行结束时本地变量自动释放。 Local 内存变量表初始值为.f. 不可简写为loca locate简写也是loca * 局域变量的例子。 * 课后习题选择题9、10 填空题6 * 练1:从键盘输入一个年份,判断是否是闰年(闰年的条件是能被400整除或能被4整除但是不能被100整除) 练2:从键盘输入学生姓名,在student表中查找指定姓名的记录,如果找到则显示该记录,没有找到则显示“查无此人” * IF语句的嵌套 格式: IF 条件表达式1 命令序列1 ELSE IF 条件表达式2 命令序列2 ELSE IF 条件表达式3 命令序列3 …… ENDIF ENDIF ENDIF * 如何去掉空格? * * do case case 逻辑表达式1
文档评论(0)