结构化程序设计PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 定义
结构程序设计是避免使用GOTO语句的一种程序设计 结构程序设计是自顶向下的程序设计 是一种组织和编制程序的方法,利用它编制的程序易于
理解和修改 程序结构化的一个主要功能是使得正确性证明容易实现 允许在设计过程中的每一步验证其正确性,即自动导致
自我说明与自我捍卫的程序风格 是讨论如何将任何大规源自文库的复杂的流程图程序转换成一
结构化程序设计既着眼于程序设计的思路清晰, 又着眼于程序的结构清晰。即通过结构化的设 计方法获得结构化产品
Chap4 结构化程序设计及正确性证明
4.2 结构化程序和结构定理
一、结构化程序
下面给结构化程序下一个精确的定义.
Chap4 结构化程序设计及正确性证明
流程图程序
1. 流程图程序
定义:一个用流程图的形式表示出来的程序, 称为流程图程序。
第4章 结构化程序设计
4.1 关于结构程序设计的基本概念 4.2 结构化程序和结构定理 4.3 结构化程序设计的判别 4.4 结构化程序设计的步骤和原理 4.5 逐步求精的程序设计 4.6 非结构化向结构化的转化 4.7 结构化程序的正确性验证 小结 习题
Chap4 结构化程序设计及正确性证明
4.1 关于结构程序设计
本质: 计算输入和输出的关系
Chap4 结构化程序设计及正确性证明
二、结构化定理
2. 七种基本程序的程序函数 [f] = {(x,y)| y=f(x)}
[f;g] = {(x,y)| y = g ·f(x)}
[if-then] = {(x,y)|p(x)y=f(x)|¬p(x)y=x}
[if-then-else] = {(x,y)| p(x)y=f(x)|¬p(x)y=g(x)}
流程图程序的组成:函数节点、谓 词节点和汇点。
f 函数节点:只有一条入口线和一条出口
线,一般与赋值语句相对应。
谓词节点:有一条入口线和两条出口线,
p
它不改变程序的数据项的值。
汇点:有两条入口线和一条出口线,它
不执行任何运算,只起到收集出口线的 作用。
Chap4 结构化程序设计及正确性证明
流程图程序举例
Chap4 结构化程序设计及正确性证明
二、结构化定理
2. 七种基本程序的程序函数(续)
[while-do] = {(x,y)|k0 ((j:0<=j<k:p ·f j(x))| ¬p ·f k(x)y= f k(x))}
种标准形式,使得它们用几种标准的控制结构, 通过重复 和嵌套来表示.
Chap4 结构化程序设计及正确性证明
结构程序设计的综合描述
结构程序设计的综合描述: 结构程序设计是一种进行程序设计的原则和方法, 按照这种原则和方法设计出的程序的特点是:结 构清晰、易阅读、易修改、易验证。 结构程序设计语言:按照结构程序设计的要求设 计出的程序设计语言称为结构程序设计语言。 结构化程序:利用结构程序设计语言,或按照结 构程序设计的思想编制的程序称为“结构化程 序” 。
保留GOTO语句
GOTO语句使用起来比较灵活,而且有些情况下能够提高程序 的效率,若一味地强调删除GOTO语句,有些情形会使程序过 于复杂,增加不必要的计算量。
折中派(Knuth)
不加限制地使用GOTO语句,特别往回跳的GOTO语句,会使 程序结构难以理解,这种情形应尽量避免使用GOTO语句。
正规子程序
3. 正规子程序
一个正规程序的某些部分仍然可以是正规程序, 这些部分称为正规子程序.
Chap4 结构化程序设计及正确性证明
基本程序
4. 基本程序
定义:一个正规程序,如果不包含多余一个 节点的正规子程序,称为基本程序。即基本 程序是一种不可再分解的正规程序。
例:
f
g
f
g
h
f
g
f
Chap4 结构化程序设计及正确性证明
流程图程序举例:
g q
p f
Chap4 结构化程序设计及正确性证明
正规程序
4. 正规程序
定义:满足以下两个条件的流程图程序称为正规程 序。条件:
具有一条入口线和一条出口线,且
对每个节点,都有一条从入口线到出口线的通路通过该 节点。
例:下面两个流程图程序不是正规程序
f
p
g
f p
Chap4 结构化程序设计及正确性证明
Chap4 结构化程序设计及正确性证明
关于GOTO语句的问题
4. 关于GOTO语句的问题
取消GOTO语句,即GOTO有害。理由:
GOTO语句使程序的静态结构与它的动态执行之间有很大的差 别。这样使程序难阅读、难查错。
去掉GOTO语句可以直接从程序结构上反映出程序运行的过程, 结构清晰、便于查错、易验证。
七种重要的基本程序
函数: 序列: If-then If-then-else
f
f
g
f p
f p
g
Chap4 结构化程序设计及正确性证明
七种重要的基本程序
while-do: Do-until:
g p
f
p
Do-while-do:
g
f
p
Chap4 结构化程序设计及正确性证明
复合程序和结构化程序
为提高效率,同时又不破坏程序的良好结构,有控制地使用 GOTO语句是有必要的。
Chap4 结构化程序设计及正确性证明
结构程序设计结论
结论:
结构程序设计讨论的是一种程序设计的方法和 风格。关注的焦点是得到的程序的结构的好坏, 而有无GOTO语句并不是一个程序结构好坏的 标志。避免和限制使用GOTO语句是得到结构 化程序的一种手段,而不是我们的目的。
• 已知一正规程序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)}
5. 复合程序 若一个基本程序的函数节点用另外一个基本程序
替换, 所产生的正规程序称为复合程序。
6. 结构化程序
由基本程序的一个固定的基集合(例如,序列、IFTHEN-ELSE、While-DO)构造出的复合程序称为结 构化程序。
Chap4 结构化程序设计及正确性证明
二、结构化定理
1. 程序函数
相关文档
最新文档