程序与程序文件PPT课件_第1页
程序与程序文件PPT课件_第2页
程序与程序文件PPT课件_第3页
程序与程序文件PPT课件_第4页
程序与程序文件PPT课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第4章程序与程序文件 一 程序的概念交互方式 在命令窗口逐条输入命令或通过选择菜单选项来调用功能 适合于解决简单问题 程序 能够完成一定任务的命令的有序集合 程序方式 根据任务的要求确定能完成任务的命令序列 然后编写程序 在磁盘上建立程序文件 让系统自动执行程序代码 其特点是 1 可以利用编辑器方便的输入 修改和保存程序 2 一旦建立 可被多次运行 3 程序中可使用命令窗口中无法使用的命令和语句 2 二 程序文件的建立与执行1 程序文件的建立与修改 1 菜单法 2 命令modifycommand2 执行程序 1 菜单法 2 命令do当程序文件被执行 文件中所包含的命令将被依次执行 直到所有的命令执行结束或是遇到以下命令 Cancel 终止程序运行 清除所有内存变量 Do 转向执行其他程序Return 结束当前程序 返回调用它的程序Quit 退出VF 返回操作系统 3 三 简单的输入 输出命令1 Input命令格式 Input to功能 暂停程序执行 等待用户输入一个表达式 接收后 系统首先计算表达式的值 然后将表达式的值存入指定的内存变量中 如果内存变量事先没有建立 Input命令自动建立 表达式值的类型决定内存变量的类型 即内存变量的类型于表达式值的类型相同 4 2 Accept命令格式 Accept to功能 暂停程序执行 等待用户从键盘输入的一个字符串并将其存入指定的内存变量中 内存变量事先没有建立 Accept命令自动建立 且此变量是字符型 5 3 Wait命令格式 Wait to Window At NOWAIT CLEAR NOCLEAR TimeOut 功能 暂停程序的运行 等待用户从键盘输入一个字符 输入字符后程序继续运行 6 2 5程序的基本结构 程序的基本结构有顺序 选择 分支 和循环三种 一 选择结构1 简单形式的条件语句IfEndIf例 从键盘接收两个数x和y 然后判断x能否被3整除 如果x能被3整除则y的值增加 否则y的值不变 7 2 一般形式的条件语句IfElseEndIf例 输入考试成绩 显示相应的成绩登记成绩 90为优秀 8 3 多分支语句DoCaseCaseCaseCase Case OtherWise EndCase例 编写程序 输入成绩 输出等级 100 成绩 90为优秀 89 成绩 80为良好 79 成绩 70为一般 69 成绩 60为及格 成绩 60为不合格 9 二 循环结构1 DOWHILE ENDDODOWHILE LOOP EXIT ENDDO1 执行到Dowhile时 计算的值 2 若条件表达式的值为假 则结束Dowhile语句 即跳过Dowhile与EndDo之间的命令 执行EndDo后面的命令 3 若条件表达式的值为真 则执行Dowhile后面的命令 其执行的情况依下述条件而定 若遇到EndDo短语 控制返回到Dowhile 继续执行下一次循环 若遇到Loop短语 控制返回到Dowhile 继续执行下一次循环 若遇到Exit短语 结束Dowhile循环 程序从Dowhile EndDo循环中跳出 转到EndDo后面的命令继续执行 10 例1 计算S 1 2 3 100例2 编写程序 判断一个大于等于3的自然数是否为素数 11 2 FOR ENDFOR语句For循环语句称为 计数 型循环控制语句 即根据循环变量的初值 终值和步长决循环体内语句的执行次数 For To Step Loop Exit EndFor Next 12 For EndFor语句的执行过程如下 1 For EndFor循环适应于循环次数已知的情况 2 执行该命令时 循环控制变量每次判断其值是否达到 如果没有达到则重复执行 初值是指最初赋给循环控制变量的值 终值是循环控制变量所要到达的值 步长是指循环控制变量每次的增量 步长不能为0 缺省时系统默认步长为1 3 EndFor和Next的作用相同 For和EndFor Next必须称对出现 4 Loop和Exit的作用与DoWhile EndDo循环中的一样 13 例1 找出100 900之间的所有水仙花数 例2 从键盘输入十个数 然后找出其中最大值和最小值 14 3 Scan循环语句Scan循环语句称为 指针 型循环控制语句 即根据表中的当前记录指针决定循环体内语句的执行次数 Scan EndScan命令格式 Scan For Loop Exit EndScanScan EndScan语句的执行过程如下 1 在命令的功能是在指定的范围内查找符合指定条件的记录 子句 范围 缺省为All 2 当循环执行时 Scan语句会将指针指向第一个满足条件的记录 执行一次循环体 再将指针移到下一条满足条件的记录 直到对数据库中的每一条记录都检查完毕 3 Scan与EndScan必须成对出现 15 例 逐条显示 教学 数据库中 学生 数据表中 性别为 男 的记录 SetTalkOffClearOpenDatabase教学Use学生ScanFor性别 男 DisplayEndScanUseSetTalkOnReturn 16 2 6多模块程序设计 一 模块的定义和调用1 模块及其定义Procedure function 过程头 功能 return 表达式 过程返回 endproc endfunc 过程尾过程可以单独保存在过程文件这样单独的文件里 也可以放在命令文件正常代码的后面 17 2 模块的调用格式1 DO 格式2 如果过程在单独的文件里就用文件名 否则用过程名 18 3 过程可以放在程序代码的后面 也可以保存在称为过程文件的单独文件里 过程文件里只包含过程 这些过程能被其他程序调用 但在调用过程之前首先要先打开过程文件 打开过程文件的命令是 setprocedureto 过程文件2 additive setprocedureto关闭所有打开的过程文件releaseprocedure 19 例 主程序 f1 prg 主程序开始 setproceduretof3f2 dop1 主程序结束 Procedurep1 过程p1开始 调用p3 返回值 p3 过程p1结束 Endproc 20 子程序 f2 prg 子程序f2开始 调用p2 X p 2 返回值 x 子程序f2结束 Return 过程文件f3 prgProcedurep2ReturnProcedurep3Return100 21 二 参数传递模块程序可以接收调用程序传递出来的参数 并能够根据接收到的参数控制程序流程或对接收到的参数进行处理 若形参个数多于实参个数则 剩下的按逻辑假 F 处理 接收参数的命令有 Parameters 声明的变量被看作是模块程序中的私有变量Lparameters 声明的变量被看作是模块程序中的局部变量调用模块的格式 1 Do with 如果实参是常量或表达式 自动为值传 如果是变量则是地址传 即形参和实参实际是同一个变量 只是名字不一样 2 默认情况下为值传递 也可使用命令来改变传递方式 Setudfparamstovalue reference 22 例 ClearStore100tox1 x2SetudfparamstovalueDop4withx1 x2 第一次 x1 x2Store100tox1 x2P4 x1 x2 第二次调用 x1 x2SetudfparamstoreferenceDop4withx1 x2 第三次调用 x1 x2Sore100tox1 x2P4 x1 x2 第四次调用 x1 x2Procedurep4Parametersx1 x2storex1 1tox1storex2 1tox2Endproc 23 还可以在调用程序和被调用程序之间传递数组 当实参是数组元素时 总是采用按值传递的方式传送元素的值 当实参为数组名时 若是传递方式为按值传递 则传送的是第一个元素的值给虚参 若是传递方式为引用传递 那么传递的是整个数组 24 例 传递整个数组dimensions 10 fori 1to10s i iendfordop5withs s 1 s 2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s 10 returnprocedurep5parametersxfori 1to5t x i x i x 11 i x 11 i tendforreturn 25 三 变量的作用域1 公共变量PUBLIC公共变量一旦建立就一直有效 即使程序运行结束返回命令窗口也不会消失 只有当执行clearmemory release quit命令后 公共变量才被释放 2 私有变量在程序中直接使用 没有事先声明 而由系统自动隐含建立的变量都是私有变量 作用域是建立它的模块及其下属的各模块 一但建立它的模块程序运行结束 这些私有变量将自动清除 3 局部变量Local局部变量只能在建立它的模块中使用 不能在上层或下层模块中使用 当建立它的模块程序运行结束时 局部变量自动释放 26 例 全局变量 私有变量 局部变量作用域示例Publicx1Localx2Store F tox3Dop6 主程序中 x1 x1 x2 x2 x3 x3ReturnProcedurep6 子程序中 x1 x1 x3 x3return 27 子程序中用到的变量 实际上在主程序中已经建立 子程序的运行会改变主程序中变量的取值 为了解决这个问题 可以在子程序中使用private命令 隐藏主程序中可能存在的变量 使得这些变量在子程序中暂时无效 PrivatePrivateall like except 注意 该命令并不是建立内存变量 而是隐藏上层模块中可能已经存在的变量 使其在下属模块中暂时无效 28 例 变量的隐藏示例Val1 10Val2 15Dop7 val1 val2Procedurep7Privateval1Val1 50Val2 100 val1 val

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论