成:
PROCEDURE <过程名 过程名> 过程名 <过程体 过程体> 过程体 RETURN [TO MASTER/TO <过程名 过程名>] 过程名 PROCEDURE <过程名 过程名> 过程名 <过程体 过程体> 过程体 RETURN [TO MASTER/TO <过程名 过程名>] 过程名 PROCEDURE <过程名 过程名> 过程名 <过程体 过程体> 过程体 RETURN [TO MASTER/TO <过程名 过程名>] 过程名
13
过程及过程文件-打开 三.过程及过程文件 打开、关闭、调用 过程及过程文件 打开、关闭、
二)过程文件的打开和关闭 过程文件的打开和关闭 打开:SET PROCEDURE TO <过程文件名 过程文件名> 打开 过程文件名 关闭:SET PROCEDURE TO 关闭 或:CLOSE PROCEDURE 三)调用 调用 打开过程文件后, 过程名>[WITH 参数表 参数表] 打开过程文件后 用 DO <过程名 过程名
14
过程及过程文件-示例 三.过程及过程文件 示例 过程及过程文件
PROCEDURE jia para x,y,s s=x+y Endproc PROCEDURE jian para x,y,s s=x-y Endproc PROCEDURE cheng para x,y,s s=x*y Return 15
过程文件 general.prg
使用方法: 使用方法 Set proc to general X=100 Y=200 S=0 Do jia with x,y,s ?s Do jian with x,y,s ?s …… Set proc to
打印出1!+2!+……+n!,当N=1,2 ……10时的值 时的值. 例:打印出 打印出 当 时的值
SET TALK OFF SET PROC TO general N=10 S=0 FOR M=1 TO N X=M DO jc &;&;求阶乘 求阶乘 DO sum &;&;求和 求和 ENDFOR SET PROC TO RETU
PROC jc T=1 FOR F=1 TO X T=T*F ENDFOR X=T RETU PROC sum ?M,S S=S+X RETU 过程文件: 过程文件:general.prg
16
*主程序 主程序jc.prg 主程序
四、自定义函数
尽管FOXPRO向我们提供了近百个 内部函数
,但为了完成特定的要求,这 些函数并不够用,所以FOXPRO允许用 户定义属于自己的有特殊功能的专用函 数,这种函数称为自定义函数 自定义函数。 自定义函数
17
四、自定义函数 一个自定义函数有两种形式: 一个自定义函数有两种形式: (1)一个自定义函数是一个独立的命令 )一个自定义函数是一个独立的命令 文件,其扩展名为.PRG,函数文件与一 文件,其扩展名为 , 般命令文件的区别是函数命令文件通过 RETURN命令返回一个函数值。 命令返回一个函数值。 命令返回一个函数值 (2)一个自定义函数是一个独立的命令模 一个自定义函数是一个独立的命令模 放在过程文件 过程文件中 函数通过RETURN RETURN命 块,放在过程文件中。函数通过RETURN命 令返回一个函数值。 令返回一个函数值。
18
子程序 过程 子程序文件 过程 …… 函数 过程文件
函数 函数文件
19
自定义函数的命令格式: 自定义函数的命令格式:
FUNCTION <函数名> PARAMETERS <参数表> <命令序列> RETURN <表达式> [ ENDFUNC] 调用方式: 参数表) ?函数名(参数表 函数名 参数表 或:变量名 函数名 参数表 变量名=函数名 参数表) 变量名 函数名(参数表 或: DO 函数名 WITH 参数表
20
例:编写自定义函数 sum(n)=1+2+3+…+n 方法一 编写自定义函数
s=0 do sum with 100 ?s ?sum(100) x=sum(100) ?x
主程序main.prg
运行do main,结果: 5050 5050 5050
PARAMETERS N S=0 I=1 DO WHILE I<=N S=S+I I=I+1 ENDDO RETU S 自定义函数文件sum.prg
21
例:编写自定义函数 sum(n)=1+2+3+…+n 方法二 编写自定义函数
set proc to general s=0 do sum with 100 ?s ?sum(100) x=sum(100) ?x Function sum PARA N S=0 I=1 DO WHILE I<=N S=S+I I=I+1 ENDDO RETU S Endfunc
主程序main.prg
运行do main,结果: 5050 5050 5050
过程文件general.prg
22
五、参数的传递 参数是主程序和子程序、过程、 参数是主程序和子程序、过程、 函 数进行信息交换的渠道, 内存变量在 数进行信息交换的渠道,而内存变量在 程序中起数据存储和传递的作用, 程序中起数据存储和传递的作用,所以 我们要先看一下内存变量数据传递的属 性。 FOXPRO 中内存变量按其作用范围 可分为两类:全局变量和局部变量。 可分为两类:全局变量和局部变量。
23
1、全局变量 、
FOXPRO由系统直接建立的内存变量为全