资源描述:
《结构化程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章结构化程序设计4.1关于结构程序设计的基本概念4.2结构化程序和结构定理4.3结构化程序设计的判别4.4结构化程序设计的步骤和原理4.5逐步求精的程序设计4.6非结构化向结构化的转化4.7结构化程序的正确性验证小结习题4.1关于结构程序设计1.定义结构程序设计是避免使用GOTO语句的一种程序设计结构程序设计是自顶向下的程序设计是一种组织和编制程序的方法,利用它编制的程序易于理解和修改程序结构化的一个主要功能是使得正确性证明容易实现允许在设计过程中的每一步验证其正确性,即自动导致自我说明与自我捍卫的程序风格是讨论如何将
2、任何大规模的复杂的流程图程序转换成一种标准形式,使得它们用几种标准的控制结构,通过重复和嵌套来表示.结构程序设计的综合描述结构程序设计的综合描述:结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序的特点是:结构清晰、易阅读、易修改、易验证。结构程序设计语言:按照结构程序设计的要求设计出的程序设计语言称为结构程序设计语言。结构化程序:利用结构程序设计语言,或按照结构程序设计的思想编制的程序称为“结构化程序”。关于GOTO语句的问题4.关于GOTO语句的问题取消GOTO语句,即GOTO有害。理由:GOT
3、O语句使程序的静态结构与它的动态执行之间有很大的差别。这样使程序难阅读、难查错。去掉GOTO语句可以直接从程序结构上反映出程序运行的过程,结构清晰、便于查错、易验证。保留GOTO语句GOTO语句使用起来比较灵活,而且有些情况下能够提高程序的效率,若一味地强调删除GOTO语句,有些情形会使程序过于复杂,增加不必要的计算量。折中派(Knuth)不加限制地使用GOTO语句,特别往回跳的GOTO语句,会使程序结构难以理解,这种情形应尽量避免使用GOTO语句。为提高效率,同时又不破坏程序的良好结构,有控制地使用GOTO语句是有必要的
4、。结构程序设计结论结论:结构程序设计讨论的是一种程序设计的方法和风格。关注的焦点是得到的程序的结构的好坏,而有无GOTO语句并不是一个程序结构好坏的标志。避免和限制使用GOTO语句是得到结构化程序的一种手段,而不是我们的目的。结构化程序设计既着眼于程序设计的思路清晰,又着眼于程序的结构清晰。即通过结构化的设计方法获得结构化产品4.2结构化程序和结构定理一、结构化程序下面给结构化程序下一个精确的定义.流程图程序流程图程序的组成:函数节点、谓词节点和汇点。函数节点:只有一条入口线和一条出口线,一般与赋值语句相对应。谓词节点:有
5、一条入口线和两条出口线,它不改变程序的数据项的值。汇点:有两条入口线和一条出口线,它不执行任何运算,只起到收集出口线的作用。fp1.流程图程序定义:一个用流程图的形式表示出来的程序,称为流程图程序。流程图程序举例流程图程序举例:pqgf正规程序4.正规程序定义:满足以下两个条件的流程图程序称为正规程序。条件:具有一条入口线和一条出口线,且对每个节点,都有一条从入口线到出口线的通路通过该节点。例:下面两个流程图程序不是正规程序pfgpf正规子程序3.正规子程序一个正规程序的某些部分仍然可以是正规程序,这些部分称为正规子程序.
6、基本程序4.基本程序定义:一个正规程序,如果不包含多余一个节点的正规子程序,称为基本程序。即基本程序是一种不可再分解的正规程序。例:fgfghfgf七种重要的基本程序函数:序列:If-thenIf-then-elsefgfpfgpf七种重要的基本程序while-do:Do-until:Do-while-do:pfpgfpg复合程序和结构化程序5.复合程序若一个基本程序的函数节点用另外一个基本程序替换,所产生的正规程序称为复合程序。6.结构化程序由基本程序的一个固定的基集合(例如,序列、IF-THEN-ELSE、While-
7、DO)构造出的复合程序称为结构化程序。二、结构化定理1.程序函数已知一正规程序P,对于每个初始的数据状态X,若程序是终止的,那么有确定的最终数据状态Y。如果对于每一个给定的X,值Y是唯一的,那么所有的有序对的集合{(X,Y)}定义了一个函数,称这个函数为程序P的程序函数,记为[P]。例:设程序P由三条语句组成:t:=x;x:=y;y:=t;对任意的X=(x,y,t),程序P的执行结果Y=(y,x,x)因此,程序函数是{(x,y,t),(y,x,x)}本质:计算输入和输出的关系二、结构化定理2.七种基本程序的程序函数[f]=
8、{(x,y)
9、y=f(x)}[f;g]={(x,y)
10、y=g·f(x)}[if-then]={(x,y)
11、p(x)y=f(x)
12、¬p(x)y=x}[if-then-else]={(x,y)
13、p(x)y=f(x)
14、¬p(x)y=g(x)}二、结构化定理[while-do]={(x,y)
15、k0(