




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 五 章 程序设计基础 5.2 结构化程序设计基础 n程序的定义:指将完成某一种功能的一组命令按照一 定的逻辑结构和语法规则编写成的一个完整的命令序 列。 n VFP的程序是建立在程序文件里,并存储在磁盘中, 执行时将程序文件调入内存。 n一个结构化程序就是用高级语言表示的结构化算法。 n程序方式具有自动和连续处理的特点 结构化程序设计基础 n一个程序一般包括以下几方面内容: n对数据的描述:指定数据的类型和组织形式,即数据结 构;(加工对象) n对操作的描述:即操作步骤,就是算法;(灵魂) n程序设计方法: n语言工具和环境。 n算法是解决“做什么”和“怎样做”的问题,程序中 的语句是算法的体现。显然,不了解算法就谈不 上程序设计。 n数据结构+算法+程序设计方法+语言工具和环境程序 建立和编辑程序文件 n建立和编辑程序文件可在任何文本编辑软件中进行。但是 VFP也提供了文本编辑器,可以建立和编辑程序文件。 n1菜单方式(新建和打开) n选择文件菜单中的新建命令,或选择工具栏中的新建 按钮,弹出新建对话框。选择“程序”项,再单击“新建文件” 按钮,即打开编辑窗口。新建文件时,默认文件名是“程序 1”,扩展名是PRG,存储文件时可重命名文件名,结束 编辑可按关闭窗口按钮,或按ctrl+w。 n如果要打开已存在的程序文件重新编辑,则选择文件菜单 的打开命令,或按工具栏中的打开按钮,找到要打开的 文件,即可打开。 建立和编辑程序文件 n2命令方式 n 格式一MODIFY COMMAND 程序文件名|? n 格式二MODIFY FILE 文本文件名|? n说明: n两个命令均打开文本编辑器。格式一,默认编辑 .PRG程序文 件;格式二,编辑任何文本文件,无默认扩展名,可编辑 TXT文本文件。选择?时,出现打开对话框,从中选择要打 开的文件。 n可以同时打开多个文本编辑器,同时编辑多个文件,而且可 以在文件之间“剪切”、“复制”、“粘贴”。 n用编辑器编辑的文本格式的PRG 程序文件,称VFP源程序 。 建立和编辑程序文件 程序的保存与放弃存盘 n程序代码输入、编辑后应以文件形式存入磁盘。 n选择文件菜单中的保存,或另存为命令,输入文件名 后单击“保存”。也可以按CTRL+W键结束编辑保存文件。 放弃本次编辑,按ESC或CTRL+Q键。 建立和编辑程序文件 程序的运行 n输入、编辑完的PRG源程序是文本形式的高级语言程序 ,计算机还不能直接执行,计算机只能独立执行EXE或 COM机器语言程序。 n为了提高程序的运行速度,VFP可以将PRG源程序编译成 FXP伪编译程序。FXP程序进行了部分编译,运行时还 需要VFP环境的支持。 n未经编译的PRG源程序,VFP是以解释方式运行。即边编 译边运行,运行的同时将.prg文件编译成.fxp文件(磁盘中 同时保留.prg和.fxp两种文件)。 n在PRG文件和FXP文件同时存在的情况下,优先执行 FXP文件。 程 序 的 运 行 n执行源程序 n执行PRG 源程序有多种方法: n(1)选择程序菜单中的运行命令,在运行对话框中选择要执行 的程序文件,单击“运行”按钮。 n(2)执行当前打开编辑的程序文件,只需单击常用工具栏中的! 按钮。 n(3)在命令窗口,执行运行命令 “ DO程序文件名”。 n在执行过程中程序有错误,系统会出现程序错误提示窗口, 提示错误语句和错误原因。单击“取消”后,运行返回到程序 编辑窗口,修改存盘后再运行。 程 序 的 运 行 n编译源程序 n先在程序编辑窗口打开要编译的源程序。选择程序菜单 的编译命令,开始编译。如有错误,出现编译对话框并 指出错误类型。 n编译后生成FXP文件。 n执行程序时,若有FXP文件就立即执行;若没有FXP 文件只有PRG源程序,则解释执行PRG源程序,并 同时编译为FXP文件。 5.2.2 程序的三种基本结构 程序设计的三种基本结构:顺序结构、分支 结构和循环结构。 所有的程序都可以利用这三种结构的组 合来实现任何复杂问题的求解。 5.2.3 顺序结构 程序最基本的执行方式,就是按程序中语句 的先后顺序依次执行每一条语句,这就是 程序的顺序结构。 1辅助命令 n注释语句 格式一NOTE 或 * 格式二& 说明:注释语句是非执行语句,对程序注释,帮助阅读 理解源程序。格式一,放在一行的开头,对前后程序段进 行注释;格式二,放在某条语句的后面对本语句注释。 n系统初始化命令 格式 CLEAR ALL 说明:清除所有内存变量和数组,关闭所有打开的各类 文件,选择1号工作区为当前工作区,使系统恢复到初始 状态。 n清屏命令 格式 CLEAR 说明:清除当前屏幕上所有信息,光标定位在屏幕左上 角。 n信息显示控制命令 格式 SET TALK ON|OFF 说明:有些命令执行后,会在屏幕上返回有关信息,实现 与用户“对话”(Talk)。程序中设置为 OFF将关闭对话, 有程序控制信息的显示,默认为ON状态。 如: nUSE RSGZ.DBF nbrow nSUM 实发工资,基本工资*12 TO SFGZ, NJBGZ nAVERAGE 基本工资 TO JBGZ n?“实发工资=“,SFGZ n?“基本工资*12=“, NJBGZ n?“平均基本工资=“, JBGZ nUSE n警告信息显示控制命令 格式 SET SAFETY ON | OFF 说明:为了安全,在执行一些不能再恢复的操作前,系 统在屏幕上显示“警告信息”提示谨慎操作。如ZAP命令 删除记录,INDEX 命令是否覆盖文件等。设置OFF状态将 不作提示直接操作,默认为ON状态。 n输出文本信息语句 格式 TEXT ENDTEXT 说明:在光标当前位置显示文本信息,TEXT ENDTEXT成对出现,缺一不可。相当于多个?语句,但能 控制输出文本的位置。 n终止程序执行命令 格式 CANCEL 说明:该语句将中止正在运行的程序。在程序 中一般与条件语句配合使用,有条件的中止程序 执行。 n返回语句 格式RETURN |TO MASTER|TO 说明:结束程序的执行。TO MASTER 直接返回 到主程序,如果程序是被另一程序调用,则返回 到调用程序,否则返回到命令窗口。 2基本的输入、输出命令 输入命令 n输入一个字符命令(等待命令) 格式: WAITTO WINDOW AT ,NOWAITTIMEOUT 功能暂停程序执行,等待用户从键盘输入一键,并继续执 行。 说明: n该命令只能从键盘接收一个字符,选TO短语将接收的字符赋值给 内存变量。字符表达式为提示语,缺省为“按任意键继续 ” n例如:wait to a 输 入 命 令 n输入字符串命令 格式 ACCEPT TO 功能 从键盘输入一个字符串常量赋给内存变量。 说明: 输入的字符串不用定界符括起来,若使用定界符则成为字 符串的内容,输入完按回车结束。 例如:accept “请输入姓名:” to name 例:按姓名在xsda中查找职工信息 输 入 命 令 n3输入任意类型数据命令 格式 INPUT TO 功能 从键盘输入数值型、字符型、日期型、逻辑型、货 币型数据给内存变量。 说明: 输入的常量必须用符号表示出数据类型,输入完按 回车结束。如: n 3.1416 n ”男” n2000-10-01 n .T. n $987.65 输入输出命令小结 nWAIT 只输入一个字符给内存变量,不用打回车; nACCEPT输入一个字符串给内存变量,字符串不用 定界符,回车结束; nINPUT 可输入各种类型数据给内存变量,但要加 定界符,输入字符时尽量用ACCEPT; 这三个命令都是赋值给内存变量,光标位置不可控 制。 顺序结构程序设计例子 求圆的面积,半径从键盘输入。 SET TALK OFF INPUT “ 请输入圆的半径值:“ TO R S=PI()*R*R ?S SET TALK ON RETURN 例子:从键盘输入任意一个三位数,并求出其 个、十、百位。 nclear nclear all ninput “请输入一个三位数:“ to n ng=n%10 nb=int(n/100) ns=int(n-b*100-g)/10) n?“个位:“,g n?“十位:“,s n?“百位:“,b nclear nclear all ninput “请输入一个三位数 :“ to n nc=str(n,3) ng=substr(c,3,1) ns=substr(c,2,1) nb=substr(c,1,1) n?“个位:“,g n?“十位:“,s n?“百位:“,b 例:两个数交换值 nCLEAR nINPUT “输入第一个数:“ TO X nINPUT “输入第二个数:“ TO Y n? “X=“ ,x, “y=“, Y nT=X nX=Y nY=T n? “X=“ ,x, “y=“, Y nRETURN 例子:从键盘输入姓名,在rsda中定位记录, 并将其的职称改为“讲师” SET TALK OFF CLEAR USE rsda ACCEPT “请输入要修改记录的姓名:“TO xm LOCATE FOR 姓名=xm REPL 职称 WITH “讲师“ DISP CLOSE ALL SET TALK ON RETURN 5.2.4 分支结构程序设计 n 程序运行一般情况是顺序执行。但有时 根据处理问题的实际情况,可能有两种或 多种情况,要根据具体的条件选择其中的 一种。对应于程序设计就产生程序的分支 结构。 1.1.单分支单分支结构程序结构程序 ENDIF后的语句 条件 .T. 语句序列1 .F. 格式: (IFENDIF) 简单分支语句的格式: IF ENDIF 功能说明:若条件为真则执行IF 到ENDIF 否则执行ENDIF之后的语句。 例5.1 从键盘上输入任意两个数据,请按照从大到小的顺序输出 nSET TALK OFF nCLEAR nINPUT “请输入第一个数据:“ TO A nINPUT “请输入第二个数据:“ TO B nIF A=a AND L ELSE ENDIF 功能说明:若条件为真,执行命令序列1, 然后执行ENDIF的后继命令。如果条件为 假,且有ELSE子句,执行命令序列2,然 后执行ENDIF的后续命令,若无ELSE子句, 则直接转到ENDIF之后。 ENDIF后的语 句 语句序列1 条 件 .YN. 语句序列2 2双分支结构(IFELSEENDIF) 注: (1) IF和ENDIF必须配对使用,而ELSE可选。 (2) IF、ELSE、ENDIF必须各占一行。 (3) 可以为关系表达式、逻辑表达式。 (4)在语句序列1和语句序列2中可以嵌套IF语句。 例5.4:用选择分支语句,重新编写上例的程序 SET TALK OFF clear INPUT “请输入第一个数:“ TO a INPUT “请输入第二个数:“ TO b if ab max=a Else max=b endif ?“最大值为:“,max SET TALK ON RETURN 例5.5:用选择分支语句,重新编写上例的程序 SET TALK OFF CLEAR WAIT “请输入一个字符: “ TO L IF L=a AND L,) n说明:作用同IF语句,当的值 为.T时,函数返回的值;否则函数返回的值。 n、的数据类型可以是字符型、数值型 、日期型、日期时间型、货币型、逻辑型,并允许两个表 达式的数据类型不同。 n、也可以是IIF( )函数,形成IIF( ) 函数的嵌套。 SET TALK OFF INPUT “请输入所用电量:“ TO DL IF DL=0IF a=0 % b=a b=a %ELSEELSE % b=-a b=-a %ENDIFENDIF n解法二 nCLEAR nSET TALK OFF nINPUT “输入a的值:“ to a nb=a nIF ab,则max=a,否则max=b ; max和c比较,若maxb max=a max=b maxc max=c 输出max 结束 Y Y N N nSET TALK OFF nCLEAR n? “ 请输入三个数:“ nINPUT “ A = “ TO A nINPUT “ B = “ TO B nINPUT “ C = “ TO C nIF AB n Max=A nELSE n Max=B nENDIF nIF MAX n if n n else n n endif nElse n if n n else n n endif nEndif 分支结构举例 n举例2:编写程序由键盘输入A,B,C三个数 ,按值的大小顺序显示出来。 (三个数比较大小有六种情况,需要六个 IF 语句;我们采用另一种算法。 先比较任意两个数,并将其中的大数存 入内存变量M,小数存入N。再将第三个数 与M及N比较得到三个数的大小顺序。画流 程图表示此算法。) 分支结构举例 n*三个数排序.prg nSET TALK OFF nCLEAR n? “ 对三个数排序,请输入三个数:“ nINPUT “ A = “ TO A nINPUT “ B = “ TO B nINPUT “ C = “ TO C nIF AB nM=A nN=B nELSE nM=B nN=A nENDIF nIF CM n? C,M,N nELSE nIF C C C 分支结构举例 nSET TALK OFF nCLEAR n? “ 对三个数排序,请输入三个数:“ nINPUT “ A = “ TO A nINPUT “ B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五邑大学《线性代数C》2023-2024学年第二学期期末试卷
- 湛江幼儿师范专科学校《外国电影艺术》2023-2024学年第二学期期末试卷
- 2025至2031年中国工程仿古砖行业投资前景及策略咨询研究报告
- 2025至2031年中国夹锁滑轮行业投资前景及策略咨询研究报告
- 湖北抽风罩施工方案
- 2025至2031年中国五层共挤下吹水冷吹膜机行业投资前景及策略咨询研究报告
- 2025至2030年中国鸡汁豆腐干数据监测研究报告
- 2025至2030年中国铁编制品数据监测研究报告
- 2025至2030年中国自动充气垫数据监测研究报告
- 2025至2030年中国电力专用正弦波逆变电源数据监测研究报告
- 酒店员工节能培训
- 《土地管理法解析》课件
- 保密就业协议书范文
- 大数据开发工程师招聘面试题与参考回答(某世界500强集团)2025年
- 按摩店技师免责协议书
- 机电设备安装与调试技术课件
- 高三小说复习之叙事技巧省公开课获奖课件市赛课比赛一等奖课件
- 过敏性休克的抢救措施
- 部编人教版小学4四年级《道德与法治》下册全册教案
- 施工现场项目部领导带班制度
- 2024年资格考试-国际焊接工程师(IWE)考试近5年真题附答案
评论
0/150
提交评论