3第3章结构化程序设计.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《3第3章结构化程序设计.ppt》由会员分享,可在线阅读,更多相关《3第3章结构化程序设计.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章结构化程序设计章结构化程序设计 内容提要内容提要:程序设计概述程序设计概述1 1顺序结构程序设计顺序结构程序设计2 2选择结构程序设计选择结构程序设计3 3循环结构程序设计循环结构程序设计4 45 5程序的模块化程序的模块化程序调试程序调试 6 6引言引言:前面各章都是以交互方式,即在命令窗口中逐条输入命令或通过使用菜单来进行操作的。这种方式虽然很方便,但是也有一些弊端,因此我们还可以把有关的操作命令组织在一起,存放到一个文件中,当发出调用该文件的命令后,Visual FoxPro就会自动地依次执行该文件中的命令,直至全部命令执行完毕,这就是Visual FoxPro的程序工作方式,它
2、是实际应用中主要的工作方式。3.1程序设计概述程序设计概述 什么叫程序设计?使用计算机解决实际问题,通常是先要对问题进行分析并建立数学模型,然后考虑数据的组织方式和算法,并用某一种程序设计语言编写程序,最后调试程序,使之运行后能产生预期的结果。这个过程称为程序设计。程序的控制结构程序的控制结构:顺序结构选择结构循环结构程序文件的建立与执行程序文件的建立与执行 v建立或修改程序文件:(1)命令方式:MODIFY COMMAND 文件名?MODIFY FILE 文件名?v菜单方式:文件 创建程序编写与执行程序编写与执行程序:v程序的编写:打开文本编辑窗口后,就可以一条一条地输入命令。当程序建立或修
3、改完毕后,可用Ctrl+W键存盘,退出编辑窗口。要修改程序文件,选择“文件”菜单中的“打开”命令打开文件即可。v程序的执行:命令方式:DO 文件名 菜单方式:打开“程序”菜单,选择“运行”,然后在“运行”对话框中输入被执行的程序文件名即可 3.2顺序结构程序设计顺序结构程序设计 v程序文件中的辅助命令:1.程序注释命令:NOTE*注释&注释 2.常用状态设置命令:设置会话状态命令:SET TALK ONOFF 设置打印状态命令:SET PRINT ONOFF 设置屏幕状态命令:SET CONSOLE ONOFF设置默认驱动器和目录命令:SET DEFAULT TO 盘符:路径 程序文件中的辅助
4、命令程序文件中的辅助命令:v输入输出命令:字符串接收命令:ACCEPT 提示信息 TO 内存变量任意数据输入命令:INPUT 提示信息 TO 内存变量 单个字符接收命令:WAIT 提示信息 TO 内存变量 以上三条命令都是显示提示信息,等待用户从键盘输入数据后按回车将数据赋给指定内存变量.不同在于接受的数据类型不一样.格式输入输出命令格式输入输出命令 v格式输入命令 行,列 SAY 提示信息 GET 变量READSAVECYCLETIMEOUT等待时间 此命令用READ命令来激活当前所有的GET变量,显示并允许修改变量的值。v格式输出命令:SAYFUNCTIONPICTURE格式符此命令在指定
5、坐标位置按格式输出表达式的值。其中行,列指定了输出的位置。顺序结构顺序结构:v什么是顺序结构?顺序结构程序按照语句排列的先后顺序,一条接一条地依次执行,它是程序中最基本的结构。顺序结构是最简单的一种结构,关键是要掌握程序文件的建立、执行、修改的方法。下面我们通过两个例题来了解顺序结构。顺序结构示例:顺序结构示例:例3.1据输入的人口基数与年平均增长率,计算20年后的人口总数。SET TALK OFFINPUT 人口基数:TO aINPUT 年平均增长率:TO bp=a*(1+b)*20?20年后人口数:+STR(p,10)SET TALK ON开始输入a,b计算输出结果结束顺序结构示例:顺序结
6、构示例:例3.2编写一个根据半径求圆的面积的程序 SET TALK OFFCLEARINPUT“请输入圆的半径:”TO rS=PI()*r*r?SSET TALK ON3.3选择结构程序设计选择结构程序设计 在Visual FoxPro中,提供两种实现选择结构的语句:IF语句和DO CASE语句,分别用于实现双分支选择结构和多分支选择结构。放假回家吗?回不回怎么回家吗?火车飞机汽车双分支选择结构双分支选择结构 语句格式:IF 条件命令组1 ELSE命令组2 ENDIFIF之前条件命令组1命令组2ENDIF后IF语句执行时,如果条件成立,就执行命令组1,命令组1执行完成后就转到ENDIF之后的命
7、令。如果条件不成立,当有ELSE子句时,执行命令组2,命令组2执行完成后转去执行ENDIF之后的命令;当没有ELSE子句时,则直接转到ENDIF之后的命令。使用使用IFIF语句需要注意的语句需要注意的:(1)选择语句只能在程序中使用,正因为只能在程序中使用,一般称之为语句,而不叫做命令。以后其他语句也是这样。(2)IF,ELSE,ENDIF必须各占一行。每一个IF都必须有一个ENDIF与其对应,即IF和ENDIF必须成对出现。(3)条件可以为关系表达式、逻辑表达式或其他逻辑量。(4)命令组1或命令组2中可以包含IF语句,即IF语句可以嵌套。简单简单IFIF语句示例语句示例:编写一个程序,实现下
8、面功能:任意输入一个整数,判断它是奇数还是偶数.输入n偶数?是不是ENDIF简单简单IFIF语句示例语句示例:SET TALK OFF Input 请输入一个整数:to xIf mod(x,2)=0?“这个数是一个偶数。”Else?“这个数是一个奇数。”Endifreturn分支结构主体判断某一年是否是闰年判断某一年是否是闰年.解:根据闰年年号能被4整除且不能被100整除,或能被400整除进行判断。程序设计如下:v INPUT 请输入年份:TO yv IF(y/4=int(y/4).and.y/100int(y/100)or y/400=int(y/400)v?y,年是闰年。v ELSEv?y
9、,年不是闰年。v ENDIFIFIF语句嵌套示例语句嵌套示例:例3.4硅谷公司员工的工资计算方法如下。(1)工作时数超过 120小时者,超过部分加发15%。(2)工作时数低于60小时者,扣除300元。(3)其余按每小时84元计发。试编程按输入的工号和该号员工的工时数,计算该员工的应发工资。分析:这个题目中实际上员工的工资是分三种情况发放,但是我们暂时没有学到多分支结构,所以我们利用现在所学的双分支结构将其分为两种情况,然后再继续划分。IFIF语句嵌套示例语句嵌套示例:输入员工工作时间超过120小时者低于60小时者60与120之间者超过部分加发15%扣除300元 每小时84元计发 显示工资输入员
10、工工作时间超过120小时者 超过部分加发15%没超过120小时低于60小时者60与120之间者扣除300元 每小时84元计发 显示工资SET TALK OFFSET TALK OFF CLEAR CLEAR ACCEPT ACCEPT 工号工号:TO TO ghgh INPUT INPUT 工时工时:TO TO gsgs IF IF gsgs120120 gzgz=GS*84+(gs-120)*84*0.15=GS*84+(gs-120)*84*0.15 ELSE ELSE IF IF gsgs6060 gzgz=gsgs*84*84 ELSE ELSE gz=gs*84-300gz=gs*8
11、4-300 ENDIF ENDIF ENDIF ENDIF?ghgh+号职工应发工资号职工应发工资:+:+STR(gz,8,2)STR(gz,8,2)SET TALK ON SET TALK ON多分支选择结构多分支选择结构:DO CASECASE 条件1命令组1CASE 条件2命令组2 CASE 条件n命令组nOTHERWISE命令组n+1ENDCASE多分支选择结构多分支选择结构:v执行过程:执行DO CASE语句时,依次判断各条件是否满足,若条件满足,就执行该条件后的命令组,直到遇到下一个CASE、OTHERWISE或ENDCASE。命令组执行后不再判断其他条件,而转向执行ENDCASE
12、后面的第一条命令。v使用注意点:(1)DO CASE、CASE、OTHERWISE、ENDCASE必须各占一行。每一个DO CASE都必须有一个ENDCASE与其对应。(2)可以为关系表达式、逻辑表达式或其他逻辑量。百分制等级制百分制等级制059不及格8089良6069及格90100优7079中【例例3.8】编写程序将学生百分制成绩转换为等级制成绩。转换规则如表编写程序将学生百分制成绩转换为等级制成绩。转换规则如表3.3所示所示vSET TALK OFFvCLEARvINPUT“请输入学生成绩:”TO scorevIF score70v IF score 60v grade=”不及格”v EL
13、SEv grade=”及格”v ENDIFvELSE IF score 80 grade=”中”ELSE IF score 120 gz=GS*84+(gs-120)*84*0.15 CASE gs60 gz=gs*84 otherwisegz=gs*84-300 ENDCASE?职工应发工资:+STR(gz,8,2)思考:这段程序中两个case条件能不能换位置?3.4循环结构程序设计循环结构程序设计 什么时候要用到循环?当一条或者一段命令需要被重复执行很多次时,我们考虑用循环解决。循环结构是一种重要的程序结构。Visual FoxPro提供了DO WHILE、FOR、SCAN等3种循环语句。
14、DO WHILE循环循环 DO WHILE命令组EXITLOOPENDDO执行过程:当给定的条件满足时,执行DO WHILE和ENDDO之间的命令组。命令组执行完毕后,程序自动返回到DO WHILE语句,再一次判断DO WHILE语句中的条件。如果条件仍然满足,则再执行一遍命令组,如果条件不满足,则结束循环,转去执行ENDDO之后的命令。语句格式语句格式DO WHILE 循环体ENDDO 语句格式语句格式DO WHILE 循环体ENDDO DO WHILE 称为循环说明语句语句格式语句格式DO WHILE 循环体ENDDO ENDDO的作用是使循环回到循环说明语句语句格式语句格式DO WHIL
15、E 循环体ENDDO DO WHILE 和 ENDDO 语句必须配对使用语句格式语句格式DO WHILE 循环体循环体ENDDO 循环体是位于 DO WHILE 和ENDDO之间的语句序列语句格式语句格式DO WHILE 循环体ENDDO 条件表达式为一个逻辑表达式 当值为假时,退出循环,执行ENDDO后面的语句其值为真时,执行循环体条件表达式条件表达式循环体循环体ENDDO之后的语句之后的语句.T.F.条条件件循循环环执执行行流流程程条条件件循循环环执执行行流流程程条件循环应用举例条件循环应用举例例例1:在屏幕上换行显示字符串:在屏幕上换行显示字符串OK20次次SET TALK OFF SE
16、T TALK ONRETURNCLEAR?OK?OK?OK例例1:在屏幕上换行显示字符串:在屏幕上换行显示字符串OK20次次i=1?OKi=i+1ENDDODO WHILESET TALK OFF SET TALK ONRETURNCLEARi=20&设置循环变量初值&修改循环变量 在以循环变量作为循环控制参数的条件循环中在以循环变量作为循环控制参数的条件循环中循环体内循环体内一定要有一定要有修改循环变量的语句修改循环变量的语句,否则,否则 就会出现就会出现死循环死循环DO WHILE 语句之前一定要有语句之前一定要有设置循环变量初设置循环变量初 值的语句值的语句注意注意求自然数求自然数1至至
17、4的和。的和。SET TALK OFFS=0&指定以循环次数作判断条件 S=S+i&修改循环变量i=1DO WHILE i=4i=i+1ENDDO?S&输出求和的结果 SET TALK ON RETURN&设置循环变量的初值S=0i=11=4S=1i=2.T.2=4S=3i=33=4S=6i=44=4S=10i=5i=4.F.10SET TALK OFFS=0i=1DO WHILE i=4 S=S+i i=i+1ENDDO?SSET TALK ONRETURN让我们来画出程序的流程图:让我们来画出程序的流程图:求自然数求自然数1至至4的和。的和。SET TALK OFFS=0 i=1INPUT
18、 请输入请输入N的值的值:TO N DO WHILE i=4 S=S+ii=i+1ENDDO?S SET TALK ON RETURN若求自然数若求自然数1至至N的和呢?的和呢?推 广 1 1改为:改为:DO WHILE i=N 求自然数求自然数1至至N的和。的和。SET TALK OFFS=0 i=1INPUT 请输入请输入N的值:的值:TO N DO WHILE i=N S=S+ii=i+1ENDDO?S SET TALK ON RETURN若求自然数若求自然数1至至N的积呢的积呢?推 广 2 2改为:改为:S=1改为:改为:S=S*i循环中循环中loop语句与语句与exit语句的作用语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内