1、2.6 多模块程序设计,一、子程序 1、建立子程序 可以在程序末尾加 return 表达式,2、调用子程序格式1: do with 格式2: (表达式表 ) 注意:格式2中的子程序名不加扩展名,模块是一个相对独立的程序段,它可以被其它模块所调用,也可以去调用其它的模块。通常把被其它模块调用的模块称为子程序,把调用其它模块的而没有被其它模块调用的模块称为主程序,四、变量的作用域 1、公共变量(在任何模块都可使用)public 内存变量名表,2、私有变量 (默认情况下建立的内存变量为私有变量)(在建立它的模块及它的下属模块使用),3、局部变量(在定义它的模块使用)local 内存变量名表,4、变量
2、的隐藏private 内存变量名表private all like | except ,例:7.20,Li7.21,li7.22,*主程序 a1.prg Do a2 . ,*子程序 a2.prg Do a3 . return,*子程序 a3.prg . return,编程计算 12!+17!+7!+6!,在li722文件夹中,二、过程 1、过程的建立procedure | function return endproc | endfunc,2、过程的调用格式1: do with 格式2: (表达式表 ) 注意:过程文件可以作为一个单独的命令文件存在。也可以放在主程序的后面。,3、如果过程以一个
3、单独的命令文件存在时。在主程序里调用时,要先执行下列命令:set procedure to 过程文件1,过程文件2 additive 把过程文件调入内存。,4、Set procedure to 过程文件用完后要用此命令关闭,例717,三、参数传递 (通过调用命令传递) 1、调用命令 格式1: do with 实参1,实参2. 格式2: (实参1,实参2, ),2、在子程序中添加命令 格式1、Parameter 形参1,形参2 格式2、lParameter 形参1,形参2 区别:格式1传过来的变量为私有变量格式2传过来的变量为局部变量,3、传递方式:(1)值传递 只能把值 主程序 子程序 (2)
4、引用传递 主程序 子程序,注意:是通过改变调用命令改变数据传递方式 对于do 程序名格式来说: store 123 to t1,t2例1(值传递) do a1.prg with 5,19+t2, (t1)parameter a1,a2,a3例2(引用传递) do a1.prg with t1,t2parameter m1,m2,如果使用的是调用命令格式2,默认情况下都是值传递,但可以通过下了命令改变 Set udfparms to value | reference,Set udfparms to reference (设为引用传递) Set udfparms to value (设为值传递) 例: a1(t1,(t2)parameter m1,m2,例7.18,注意:如果在程序间传递数组时,当实参是数组元素时,总为值传递,如果实参为数组名,并为值传递,则只传递数组的第一个元素给形参,如果为引用传递则传递整个数组。例7.19,