
单元14 程序调用 复习旧课 3、表扫描型循环 1、直到型循环 SCAN[范围][FOR条件] D0 WHILE〈条件> 语句序列 [EXIT] [命令序列] [L00P] [EXIT] ENDSCAN [L00P] ENDDO 导入新课 2、步长型循环 FOR〈内存变量>=T0〈终值〉 三种结构→程序调用:从过 [STEP] 程的使用、变量的作用域、 [命令序列们 调试器环境、设置断点上导 EXIT] 入。 [L00P] ENDFOR
复习旧课 2、步长型循环 FOR = TO [STEP ] [命令序列] [EXIT] [LOOP] ENDFOR 3、表扫描型循环 SCAN [范围] [FOR 条件] 语句序列 [EXIT] [LOOP] ENDSCAN 1、直到型循环 DO WHILE [命令序列] [EXIT] [LOOP] ENDDO 单元14 程序调用 导入新课 三种结构→程序调用:从过 程的使用、变量的作用域、 调试器环境、设置断点上导 入

单元14 程序调用 【主要内容】 1.过程的使用 2.变量的作用域 3.调试器环境 4.设置断点 【学习目标) 1.理解过程的意义,掌握过程的创建和调用方法 2.充分理解变量的作用域 3.熟悉调试器环境 4.掌握设置断点的技巧 【课时安排】 共2课时
【主要内容】 1.过程的使用 2.变量的作用域 3.调试器环境 4.设置断点 【学习目标】 1.理解过程的意义,掌握过程的创建和调用方法 2.充分理解变量的作用域 3.熟悉调试器环境 4.掌握设置断点的技巧 【课时安排】 共2课时 单元14 程序调用

单元14 程序调用 一、过程及其调用 1、过程:过程就是一段子程序,它可以是单独一个文件,也可以放 在主程序中,通常用以下办法定义出来: PROCDURE过程名 命令序列 RETURN[TO MASTER]月I ENDPROC 2、过程调用 直接调用 主程序中用:D0过程名 L过程中用:RETURN[TO MASTER] 参数调用 主程序中用:D0过程名WITH参数表 L过程中用:第一句是:PARAMETERS变量表 RETURN [TO MASTER] 主程序中用:用函数二样使用 函数调用 过程中用:用FUNCTION...ENDFUNCTION定义 第一句是:PARAMETERS变量表 后面有:RETURN返回值
一、过程及其调用 1、过程:过程就是一段子程序,它可以是单独一个文件,也可以放 在主程序中,通常用以下办法定义出来: PROCDURE 过程名 命令序列 [RETURN [TO MASTER]] ENDPROC 2、过程调用 直接调用 主程序中用:DO 过程名 过程中用:RETURN [TO MASTER] 参数调用 主程序中用:DO 过程名 WITH 参数表 过程中用:第一句是:PARAMETERS 变量表 RETURN [TO MASTER] 函数调用 主程序中用:用函数一样使用 过程中用:用FUNCTION……ENDFUNCTION定义 第一句是:PARAMETERS 变量表 后面有:RETURN 返回值 单元14 程序调用

单元14 程序调用 3、例题:用多种办法求组合数C”= m nd(m-n月 4、调用中参数传递方法 情双变参是、表校传建次第没参为同一地如 (2)实参带括号:按值方式传递 (3)用SET UDFPARMS TO VALUE设置:按值传递(形参不会影响实参) (4)用SET UDFPARMS TO REFERENCE设置:按引用传递(形参会影响实参) (⑤)当实参是数组元素时,总是采用按值传递方式传递元素值.当实参 是数组名时,若传递方式是按值传递,那么就传递数组的第一个元素给 形参变量;若传递方式是按引用传递,那么传递的将是整个数组
3、例题:用多种办法求组合数 !( )! ! n m n m C n m 4、调用中参数传递方法 (1)一般情况 实参是常量、表达式——按值传递 实参是变量——按址传递(形参和实参为同一地址) (2)实参带括号:按值方式传递 (3)用SET UDFPARMS TO VALUE设置:按值传递(形参不会影响实参) (4)用SET UDFPARMS TO REFERENCE设置:按引用传递(形参会影响实参) (5)当实参是数组元素时,总是采用按值传递方式传递元素值.当实参 是数组名时,若传递方式是按值传递,那么就传递数组的第一个元素给 形参变量;若传递方式是按引用传递,那么传递的将是整个数组 单元14 程序调用

单元14 程序调用 三、变量的作用域 1.一般说来,上级程序定义的变量在本程序及下级程序 中起作用;下级程序所定义的变量当本程序执行完毕便 释放: 2.用PUBLIC定义的变量称为全局变量,在所有程序中起 作用; 3.用PRIVATE定义的变量称为私有变量,在本级及下级程 序中起作用,同时可以屏蔽上级同名变量: 4.用LOCL定义的变量称为局部变量,在本级程序中起 作用,在下级程序中不起作用,同时可以屏蔽上级同名 变量
二、变量的作用域 1.一般说来,上级程序定义的变量在本程序及下级程序 中起作用;下级程序所定义的变量当本程序执行完毕便 释放; 2.用PUBLIC定义的变量称为全局变量,在所有程序中起 作用; 3.用PRIVATE定义的变量称为私有变量,在本级及下级程 序中起作用,同时可以屏蔽上级同名变量; 4.用LOCAL 定义的变量称为局部变量,在本级程序中起 作用,在下级程序中不起作用,同时可以屏蔽上级同名 变量。 单元14 程序调用

单元14 程序调用 例:下列程序运行结果: 主程序: 子程序:SUB.PRG 子程序:SUB1.PRG A=100 PUBLIC D A=1000 B=200 private B B=2000 C-300 local C C=3000 DO SUB A=10 D=4000 A,B,C,D B=20 RETURN RETURN C30 D=40 DO SUB1 RETURN
例:下列程序运行结果: 主程序: A=100 B=200 C=300 DO SUB ? A,B,C,D RETURN 子程序:SUB.PRG PUBLIC D private B local C A=10 B=20 C=30 D=40 DO SUB1 RETURN 子程序:SUB1.PRG A=1000 B=2000 C=3000 D=4000 RETURN 单元14 程序调用

单元14 程序调用 调试器 通过菜单或工具进入 调试器进入方法: 通过命令进入DEBUG 程序运行过程中遇错自动进入 跟踪窗口:显示正在调试的文件 监视窗口:监视指定表达式的取值情况 调试器界面结构: 局部窗口:显示内存变量的取值情况 堆栈窗口:显示子程序的情况 调试输出窗口:安置一些DEBUGOUT命令
一、调试器 调试器进入方法: 通过菜单或工具进入 通过命令进入DEBUG 程序运行过程中遇错自动进入 跟踪窗口:显示正在调试的文件 监视窗口:监视指定表达式的取值情况 局部窗口:显示内存变量的取值情况 堆栈窗口:显示子程序的情况 调试输出窗口:安置一些DEBUGOUT命令 调试器界面结构: 单元14 程序调用

单元14 程序调用 二、断点设置 可以设置以下4种类型的断点: 类型1:在定位处中断:可以指定一代码行,当程序调试执行到该代码 是中断程序运行。 类型2:如果表达式值为真则在定位处中断:指定一代码行以及一个表 达式,当程序调试执行代码时如果表达式的值为真,就中断程序运行。 类型3:当表达式值为真时中断:可以指定一个表达式,在程序调试执 行过程中,当该表达式值改成逻辑真.T.时中断程序运行。 类型4:当表达式值改变时中断:指定一个表达式,在程序调试执行过 程中,当该表达式值改变时中断程序运行
二、断点设置 可以设置以下4种类型的断点: 类型1:在定位处中断:可以指定一代码行,当程序调试执行到该代码 是中断程序运行。 类型2:如果表达式值为真则在定位处中断:指定一代码行以及一个表 达式,当程序调试执行代码时如果表达式的值为真,就中断程序运行。 类型3:当表达式值为真时中断:可以指定一个表达式,在程序调试执 行过程中,当该表达式值改成逻辑真.T.时中断程序运行。 类型4:当表达式值改变时中断:指定一个表达式,在程序调试执行过 程中,当该表达式值改变时中断程序运行。 单元14 程序调用

单元14 程序调用 三、调试菜单 下面是各命令的具体功能: ①运行:执行在跟踪窗口中打开的程序。当用户从对许可框中指定一个程序后, 调试器随即执行此程序,并中断于程序的第一条可执行代码上。 ②继续执行:选择该命令可使程序在中断处继续往下执行。 ③取消:终止程序的调试执行,并关闭程序。 ④定位修改:终止程序的调试执行,然后在文本编辑窗口打开调试程序。 ⑤跳出:以连续方式而非单步方式继续执行被调用模块程序中的代码,然后在调 用程序的调用语句的下一行处中断。 ⑥单步:单步执行下一行代码。如果下一行代码调用了过程或者方法程序,那么 该过程或者方法程序在后台执行。 ⑦单步跟踪:单步执行下一行代码。 ⑧运行到光标处:从当前位置执行代码直至光标处中断。光标位置可以在开始时 设置,也可以在程序中断时设置。 ⑨调速:打开“调整运行速度”对话框,设置两代码执行之间的延迟秒数。 ⑩设置下一条语句:程序中断时选择该命令,可使光标所在行成为恢复执行后要 执行的语句
三、调试菜单 下面是各命令的具体功能: ① 运行:执行在跟踪窗口中打开的程序。当用户从对许可框中指定一个程序后, 调试器随即执行此程序,并中断于程序的第一条可执行代码上。 ② 继续执行:选择该命令可使程序在中断处继续往下执行。 ③ 取消:终止程序的调试执行,并关闭程序。 ④ 定位修改:终止程序的调试执行,然后在文本编辑窗口打开调试程序。 ⑤ 跳出:以连续方式而非单步方式继续执行被调用模块程序中的代码,然后在调 用程序的调用语句的下一行处中断。 ⑥ 单步:单步执行下一行代码。如果下一行代码调用了过程或者方法程序,那么 该过程或者方法程序在后台执行。 ⑦ 单步跟踪:单步执行下一行代码。 ⑧ 运行到光标处:从当前位置执行代码直至光标处中断。光标位置可以在开始时 设置,也可以在程序中断时设置。 ⑨ 调速:打开“调整运行速度”对话框,设置两代码执行之间的延迟秒数。 ⑩设置下一条语句:程序中断时选择该命令,可使光标所在行成为恢复执行后要 执行的语句。 单元14 程序调用

单元14 程序调用 本次课小结 直接调用 按值传递 过程的三种调用方式: 参数调用 调用时两种传递方式: 函数调用 引用传递 1.上级程序定义的变量在本程序及下级程序中起作用; 下级程序所定义的变量当本程序执行完毕便释放; 变量使用的 2.用PUBLIC定义的变量称为全局变量,在所有程序中起作用: 3.用PRIVATE定义的变量称为私有变量,在本级及下级程序中 四句规则: 起作用,同时可以屏蔽上级同名变量: 4.用LOCAL定义的变量称为局部变量,在本级程序中起作用, 在下级程序中不起作用,同时可以屏蔽上级同名变量。 程序调试{调试器的法余 本次课作业 1.教材P210第一、二题 2.上机:分别在一个程序中设置四个断点进行调试程序
本次课小结 本次课作业 1. 教材P210 第一、二题 2. 上机:分别在一个程序中设置四个断点进行调试程序。 过程的三种调用方式: 直接调用 参数调用 函数调用 调用时两种传递方式: 按值传递 引用传递 变量使用的 四句规则: 1.上级程序定义的变量在本程序及下级程序中起作用; 下级程序所定义的变量当本程序执行完毕便释放; 2.用PUBLIC定义的变量称为全局变量,在所有程序中起作用; 3.用PRIVATE定义的变量称为私有变量,在本级及下级程序中 起作用,同时可以屏蔽上级同名变量; 4.用LOCAL 定义的变量称为局部变量,在本级程序中起作用, 在下级程序中不起作用,同时可以屏蔽上级同名变量。 调试器的进入 程序调试 调试器的结果 单元14 程序调用