1 / 63

第 6 章 结构化程序设计

第 6 章 结构化程序设计. 什么是程序. 程序:是按照一定的 逻辑顺序 排列在一起的命令或语句的集合。 程序文件:在计算机磁盘中保存程序的文件。 源程序文件:由高级语言编写未经编译的程序文件。程序文件格式必须是 纯文本 文件。(扩展名 .prg ) 可执行文件:由高级语言编写,经过编译成为可以在计算机上直接运行的 机器指令 文件。(扩展名 .exe ). 下一张. 创建源程序文件. 在项目管理器中创建源程序文件 打开项目管理器 | 单击“代码” |“ 程序” | 单击“新建” 在项目管理器中修改源程序文件 打开项目管理器 | 单击“代码” |“ 程序”

rachel
Download Presentation

第 6 章 结构化程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 结构化程序设计

  2. 什么是程序 • 程序:是按照一定的逻辑顺序排列在一起的命令或语句的集合。 • 程序文件:在计算机磁盘中保存程序的文件。 • 源程序文件:由高级语言编写未经编译的程序文件。程序文件格式必须是纯文本文件。(扩展名.prg) • 可执行文件:由高级语言编写,经过编译成为可以在计算机上直接运行的机器指令文件。(扩展名.exe) 下一张

  3. 创建源程序文件 • 在项目管理器中创建源程序文件 • 打开项目管理器|单击“代码”|“程序”|单击“新建” • 在项目管理器中修改源程序文件 • 打开项目管理器|单击“代码”|“程序” • 选中要修改的程序名|单击“修改” • 命令方式创建或修改源程序文件 语法:Modify Command <源程序文件名> 下一张

  4. 运行程序 • 在项目管理器中运行程序 • 打开项目管理器 • 单击“代码”|“程序”|程序名 • 单击“运行” • 在命令窗口运行程序 语法:Do <程序文件名> 下一张

  5. 程序书写规则 • 书写注释行 语法:* 或 note 注释文字 • 行尾注释 语法:&& 注释文字 • 长命令换行 语法:在行尾 ; • 文字颜色 绿色为注释文字,蓝色为vfp关键词 下一张

  6. 结束当前程序 • 中止当前正在执行的程序,将控制权返回给调用程序或回到windows系统。 语法:Return A=3 B=4 C=Sqrt(a^2+b^2) Return 下一张

  7. 输出命令 • 换行并在指定列输出对象 语法:?<表达式1> [at <列号>][,<表达式2>]... ?“问号输出到40列” at 40 • 同行在指定列输出对象 语法:??<表达式1> [at <列号>][,<表达式2>]… ?“abc” ??“def” 下一张

  8. 暂停等待按键命令 • 程序遇到该命令后暂停,接收按键后继续 语法:wait [<文本表达式>][to <内存变量名>] [windows [at <行号>,<列号>]] [timeout <等待秒数>] 例题:Wait “等待三秒后自动结束!” to vkeyp windows at 16,40 timeout 3 ?vkeyp 下一张

  9. 消息窗口函数 语法: Messagebox(显示文本,对话框类型,对话框标题) 对话框类型=图标值+按钮组值+默认按钮值 函数的返回值:是结束对话框时所按的按钮 下一张

  10. 图标值 数值 图标 16 “停止”图标 32 “问号”图标 48 “叹号”图标 64 “信息”图标 返回

  11. 按钮组值 数值 按钮组 0 “确定” 按钮组 1 “确定” ”取消” 按钮组 2 “放弃” 、 ”重试” 、 ”忽略” 按钮组 3 “是” 、 ”否” 、 ”取消” 按钮组 4 “是” 、 “否” 按钮组 5 “重试” 、 “取消” 按钮组 返回

  12. 默认按钮 数值 默认按钮 0 第一个按钮 256 第二个按钮 512 第三个按钮 返回

  13. 返回值(所按的按钮) 数值 按钮 1 确定 2 取消 3 放弃 4 重试 5 忽略 6 是 7 否 返回

  14. 清除屏幕内容 • 将消息窗口中的内容清除掉 语法:Clear 下一张

  15. 接收键盘输入的字符型数据 显示提示文字,并等待键盘输入的文字串 语法:Accept <文字提示> to <字符型内存变量名> 输入的数据作为文本保存至字符型变量中。 下一张

  16. 接收键输入的不同类型的数据 显示提示文字,并等待键盘输入的数据 语法:Input <文字提示> to <内存变量名> 输入的数据保存在型变量中。接收输入数据的变量,其类型取决于输入数据的类型。文字提示用于提示用户应该执行的操作。 数字型:123.04 字符型:“人民大学” 日期型:{^2004.09.18} 下一张

  17. 程序框图符号 程序框图:以图形的方式描述程序的逻辑结构以及处理流程。 框图符号: 下一张

  18. 程序的控制结构 控制结构决定了程序执行的逻辑顺序。 三种控制结构: 顺序结构 分支结构:单条件分支结构 多条件分支结构 循环结构:条件循环 变量循环 扫描循环 下一张

  19. 顺序结构 顺序结构:按照程序语句编写的顺序,从前往后逐条顺序执行,每条语句只执行一次。 下一张

  20. 分支结构 单条件分支结构:根据条件表达式的判断结果决定执行的语句组,每次条件判断后只能执行两个语句组中的一个。例题:计算邮资。 语法: If <条件判断> 语句组一 Else 语句组二 Endif 下一张

  21. 单条件分支例题 程序功能:输入邮件重量,计算邮资。5公斤以下(含5公斤)按每公斤8角计费。5公斤以上按每公斤1.2元计费。Calcpost.prg 返回

  22. 分支结构 多条件分支结构:根据不同的条件表达式判断结果执行不同的语句组。 下一张

  23. 多条件分支结构语法 语法:程序例题 Do caseCase 条件表达式1语句组一Case 条件表达式2语句组二Otherwise语句组Endcase 下一张

  24. 多条件分支例题 程序功能:输入一个考试成绩, 成绩应该在0到100分之间, 60分以下为不及格, 60以上(含60)70以下为及格, 70以上(含70)80以下为中, 80以上(含80)90以下为良, 90以上(含90)为优。 Cjflif.prg (使用if嵌套) Cjflcase.prg(使用do case) 返回

  25. 循环结构 条件循环:根据条件判断结果决定是否继续执行循环中的语句组。程序例题。 语法:Do while <循环条件>语句组Enddo 继续执行语句组当循环条件成立时。 下一张

  26. Do 循环例题 例题1: 输入自然数n,计算从0累加到n。Sumndo.prg 例题2: 输入自然数n,计算从1累乘到n。Mulndo.prg 返回

  27. 循环结构 变量循环:根据循环变量值的大小决定是否继续执行循环中的语句组。程序例题。 语法:For i=初值 to 终值 [step 步长] 语句组Endfor 下一张

  28. For 循环例题 例题1: 输入自然数n,计算从0累加到n。Sumnfor.prg 例题2: 输入自然数n,计算从1累乘到n。Mulnfor.prg 返回

  29. 循环结构 数据表扫描循环:逐条访问(扫描)数据表中符合条件的记录,直到尾标。 下一张

  30. 数据表扫描循环结构 语法:Scan [范围] [For<条件1>] [While<条件2>]语句组Endscan 程序例题 下一张

  31. SCAN 循环例题 例题:studscan.prg 输入一个入学成绩下限和一个入学成绩上限。 打开studinfo.dbf数据表,逐条显示入学成绩在下限与上限范围之内的学生档案。 用do while 改写studscan,prg 成 studdo.prg 返回

  32. 循环短路、跳出循环 循环短路:立即回到循环头,继续下一次循环。 语法:Loop 跳出循环:无条件结束循环,跳至循环后面的语句 语法:Exit Loop和Exit应该与条件分支语句结合使用。 程序例题。Mulndole.prg 下一张

  33. Loop结合条件判断 下一张

  34. Loop结合条件判断 语法: Do while <循环条件> 语句组一 If <Loop条件表达式> Loop Endif 语句组二 Enddo 下一张

  35. Exit结合条件判断 下一张

  36. Exit结合条件判断 语法: Do while <循环条件> 语句组一 If <Exit条件表达式> Exit Endif 语句组二 Enddo 返回

  37. 系统结构 下一张

  38. 模块(程序) • 模块:是实现特定功能的基本程序单元。模块的构成可以是程序语句,也可以是其他模块。 • 模块的形式:程序、子程序、过程、函数。文件扩展名均为.prg。他们都是程序的一种。 • 模块调用:模块之间通过调用,完成从一个模块的处理进入另一个模块的处理。被调用模块处理结束将返回调用他的模块。 • 共享模块:可以被其他模块共同调用的模块。 下一张

  39. 模块(程序)的创建 • 在项目管理器中创建模块 • 打开项目管理器 • 单击“代码”|“程序”|”新建” • 打开程序编辑窗口 • 单击“保存” • 命令方式 语法:Modify command <模块名(程序名)> 下一张

  40. 模块(程序)的修改 • 在项目管理器中创建模块 • 打开项目管理器 • 单击“代码”|“程序” • 单击要修改的程序名 • 单击“修改” • 打开程序编辑窗口 • 单击“保存” • 命令方式 语法:Modify command <模块名(程序名)> 下一张

  41. 程序 每一个程序以扩展名为(.prg)的文件形式独立地保存在磁盘中。 程序中止: 语法:Return 程序的执行: 语法:Do <程序文件名> 下一张

  42. 子程序 子程序也是以扩展名为(.prg)的文件形式独立地保存在磁盘中。 一次模块(程序)调用中(A.prg调用B.prg)调用模块(A.prg)被称作父程序,被调用模块(B.prg)被称作子程序。调用关系决定了程序间的父子关系。 父子关系的相对性(一父多子、一子多父)。 调用一次子程序将产生一次读磁盘的动作。 在一次调用父程序以参数的形式将数据传递给子程序。 下一张

  43. 子程序的结构 [parameters <形参表>](子程序文件的第一句) 语句组 Return(子程序文件的最后一句) 子程序的调用 语法: Do <子程序名> [with <实参表>] 父程序的实参与子程序的形参,按位置传递 父程序通过参数将数据传入子程序 子程序通过参数返回(传出)处理结果 下一张

  44. 子程序调用实例计算a+b与axb Main.prg aaddb.prg Clearinput “输入一个数a:” to va Input “输入一个数b:” to vb Vc=0 Do aaddb with va,vb,vc ?”a+b=”,vc Vd=0 Do amulb with va,vb,vd ?”a*b=”,vd return para sa,sb,sc sc=sa+sbretrun amulb.prg Para ma,mb,md md=ma*mbreturn 下一张

  45. 子程序调用框图 一父多子的调用结构 下一张

  46. 子程序调用实例计算2x(a+b) main1.prg m2aaddb.prg Para ma,mb,mcmd=0do aaddb with ma,mb,mdmc=md*2return clear input “输入一个数a:” to va input “输入一个数b:” to vb Vc=0 Do m2aaddb with va,vb,vc ?”2x(a+b)=”,vc return 下一张

  47. 子程序调用框图 嵌套调用结构 下一张

  48. 子程序调用框图 一子多父的调用结构(aaddb.prg为共享模块) 下一张

  49. 过程 过程:也是一个程序模块,它可以被其他的程序、子程序、函数或另一个过程调用。 过程的作用:可以将多个过程一次装入内存,从而在调用过程时不用再访问磁盘,减少磁盘访问的次数,提高程序运行的效率。 下一张

  50. 过程格式 过程定义格式 mainprog.prg mainproc.prg Procedure <过程名> [Parameters <形参表>](过程里的第一行) 语句组 Return Endproc 调用程序通过参数将数据传给过程,过程同样通过参数将处理结果传回给调用程序。 下一张

More Related