结构化程序设计PPT课件_OK
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例:设程序P由三条语句组成:
• t:=x; x:=y; y:=t; • 对任意的X=(x,y,t), 程序P的执行结果Y=(y,x,x) • 因此,程序函数是{(x,y,t),(y,x,x)}
• 本质: 计算输入和输出的关系
15
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)}
| p(x) q•f(x) r • h • f(x)y=g•h • f(x)
| p(x) q•f(x) r • h • f(x)y=h • f(x)
| p(x) …
21
|…
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
3)循环程序的程序函数
g2
g5
g1
g3
p f
8
Chap4 结构化程序设计及正确性证明
正规程序
• 4. 正规程序
• 定义:满足以下两个条件的流程图程序称为正规程 序。条件:
• 具有一条入口线和一条出口线,且 • 对每个节点,都有一条从入口线到出口线的通路通过该
节点。
• 例:下面两个流程图程序不是正规程序
f
p
g
f p
9
Chap4 结构化程序设计及正确性证明
p1
p2
p3
执行树: 1 g1
2 g3
g4
g2
1
p1
3
p2
g5 3 p3
g4
2 22
代C换hap后4 结的构化执程行序设树计及:正确性证明
f1
f2
g1
g3
p1
g2 f3
p2
f1
g5
f3
p3
g4
f2
f1 = {(x,y)|y = f2 •g1(x)}
F2 = {(x,y)|p1•g3(x)y=f1•g2•g3(x)
| p1•g3(x)y=f3•g3(x)}
F3= {(x,y)|p2(x) p3(x)y=f3 •g5(x)
| p2(x) p3(x)y=x
23
| p2(x) y=f2 • g4(x)}
Chap4 结构化程序设计及正确性证明
二、结构化定理
5 . 程序的函数等价 如果程序P1和程序P2有相同的程序函数,称它们是函数等价的,或简称是等价的。
• GOTO语句使程序的静态结构与它的动态执行之间有很大的差 别。这样使程序难阅读、难查错。
• 去掉GOTO语句可以直接从程序结构上反映出程序运行的过程, 结构清晰、便于查错、易验证。
• 保留GOTO语句
• GOTO语句使用起来比较灵活,而且有些情况下能够提高程序 的效率,若一味地强调删除GOTO语句,有些情形会使程序过 于复杂,增加不必要的计算量。
• 函数节点:只有一条入口线和一条出口 线,一般与赋值语句相对应。
• 谓词节点:有一条入口线和两条出口线, 它不改变程序的数据项的值。
• 汇点:有两条入口线和一条出口线,它 不执行任何运算,只起到收集出口线的 作用。
f p
7
Chap4 结构化程序设计及正确性证明
流程图程序举例
• 流程图程序举例:
g q
正规子程序
• 3. 正规子程序 • 一个正规程序的某些部分仍然可以是正规程序,这些部分称为正规子程序.
10
Chap4 结构化程序设计及正确性证明
基本程序
• 4. 基本程序 • 定义:一个正规程序,如果不包含多余一个节点的正规子程序,称为基本程序。 即基本程序是一种不可再分解的正规程序。 • 例:
f
• 化简的基本思想: • 对于某些 j>0,如果gj中不包含赋值语句L:=j,则可以用gj代替所有的赋值L:=j。 这样代替后,由于j不再赋值给L,因而测试L=j可以从IF-THEN-ELSE结构中去 掉。这种替换直到以下情况出现为止:
y1 =y0 x2 = x1 y3 = y2
= y1 = y0 Y3 = y2
=x1-y1
[P] = {((x,y),(y,x)}
=x0+y0–y0=1x80
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
练习: 计算下列语句序列的程序函数: y:=a; y:=x*y+b; y:=x*y+c; y:=x*y+d
19
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
2)无循环程序的程序函数 首先:构造有穷的执行树 然后:对每条路径写出相应的表达式 例:
f p
q
g
h
r
20
二、结构化定理 Chap4 结构化程序设计及正确性证明
3. 程序函数的计算
执行树:
g
f
q
g
p
h
r
g
h
r
[p] = { (x,y)| p(x) q•f(x)y=g•f(x)
3. 程序函数的计算
二、结构化定理
1)对于序列程序可使用跟踪表的方法计算[p]
例:语句段:x := x+y; y:= x-y; x:= x-y;
解:假设变量x,y的初值为x0,y0, …
有跟踪表:
X3=x2-y2
语句
x
y
=x1-(x1-y1)
x := x+y y:= x-y x:= x-y
x1 = x0+y0 y2 = x1–y1 X3 = x2- y2
• 折中派(Knuth)
• 不加限制地使用GOTO语句,特别往回跳的GOTO语句,会使 程序结构难以理解,这种情形应尽量避免使用GOTO语句。
• 为提高效率,同时又不破坏程序的良好结构,有控制地使用G4O TO语句是有必要的。
Chap4 结构化程序设计及正确性证明
结构程序设计结论
• 结论: • 结构程序设计讨论的是一种程序设计的方法和风格。关注的焦点是得到的程序的 结构的好坏,而有无GOTO语句并不是一个程序结构好坏的标志。避免和限制使 用GOTO语句是得到结构化程序的一种手段,而不是我们的目的。 • 结构化程序设计既着眼于程序设计的思路清晰,又着眼于程序的结构清晰。即通 过结构化的设计方法获得结构化产品
第4章 结构化程序设计
4.1 关于结构程序设计的基本概念 4.2 结构化程序和结构定理 4.3 结构化程序设计的判别 4.4 结构化程序设计的步骤和原理 4.5 逐步求精的程序设计 4.6 非结构化向结构化的转化 4.7 结构化程序的正确性验证 小结 习题
2021/7/27
1
Chap4 结构化程序设计及正确性证明
自我说明与自我捍卫的程序风格 • 是讨论如何将任何大规模的复杂的流程图程序转换成一
种标准形式,使得它们用几种标准的控制结构, 通过重复 2
和嵌套来表示.
Chap4 结构化程序设计及正确性证明
结构程序设计的综合描述
• 结构程序设计的综合描述:
• 结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序 的特点是:结构清晰、易阅读、易修改、易验证。
16
Chap4 结构化程序设计及正确性证明
二、结构化定理
2. 七种基本程序的程序函数(续)
[while-do] = {(x,y)|k0 ((j:0<=j<k:p ·f j(x))| ¬p ·f k(x)y= f k(x))} [do-until] = {(x,y)| k>0 (j:1<=j<k)(
¬ p ·f j(x)| p ·f k(x)y= f k(x))} [do f while p do g od] = {(x,y)| k0 (
j : 0<=j<k : p ·f ·(g ·f) j(x))| ¬p · f ·(g ·f) k(x)y= f ·(g ·f) k(x))}
17
Chap4 结构化程序设计及正确性证明
结构化定理--证明
最后,利用已经得到的一些gi(I=1,2,3,…,n),按下 图形式构造一个while-do循环。这个循环体是一个 对L从1到n进行测试的嵌套的IF-THEN-ELSE程序 (最内层的I表示恒等函数):
F=
L:=1
g1
L=1?
g2
L>0
L=2?
•••
•••
gn-1
L=n-1?
gn
L=n?
5
Chap4 结构化程序设计及正确性证明
4.2 结构化程序和结构定理
• 一、结构化程序 • 下面给结构化程序下一个精确的定义.
6
Chap4 结构化程序设计及正确性证明
流程图程序
1. 流程图程序
定义:一个用流程图的形式表示出来的程序, 称为流程图程序。
• 流程图程序的组成:函数节点、谓 词节点和汇点。
g p
f
p
g
f
p
13
Chap4 结构化程序设计及正确性证明
复合程序和结构化程序
• 5. 复合程序 • 若一个基本程序的函数节点用另外一个基本程序
替换, 所产生的正规程序称为复合程序。
• 6. 结构化程序
• 由基本程序的一个固定的基集合(例如,序列、IF-TH
EN-ELSE、While-DO)构造出的复合程序称为结构化
5. 结构化定理
定理:任一正规程序都可以函数等价与一个 由基集合{序列,if-then-else,while-do}产生的 结构化程序。
24
Chap4 结构化程序设计及正确性证明
结构化定理-证明
证明:考察任一正规程序:
首先,从程序的入口处开始给程序的函数节点和谓词节点编
号。编号为1,2,3,… ,n(若入口处是汇点,那么宴会
• 结构程序设计语言:按照结构程序设计的要求设计出的程序设计语言称为结构程序设 计语言。
• 结构化程序:利用结构程序设计语言,或按照结构程序设计的思想编制的程序称为 “结构化程序” 。
3
Chap4 结构化程序设计及正确性证明
关于GOTO语句的问题
• 4. 关于GOTO语句的问题
• 取消GOTO语句,即GOTO有害。理由:
程序。
14
Chap4 结构化程序设计及正确性证明
二、结构化定理
1. 程序函数
• 已知一正规程序P,对于每个初始的数据状态X,若程 序是终止的,那么有确定的最终数据状态Y。如果对于 每一个给定的X,值Y是唯一的,那么所有的有序对的 集合{(X,Y)}定义了一个函数,称这个函数为程序 P的程序函数,记为[P]。
其次,对原程序种的每一个编号为i,出口线编号 为J的函数节点h,构造一个新的序列程序gi,如图:
h i
j
gi= h
L:=j
对每一个编号为i,出口线编号为j、k的谓词节点p,
构造一个新的IF-THEN-ELSE程序gi,如图:
j
ip k
L:=j
gi=
p
L:=k
26Βιβλιοθήκη Chap4 结构化程序设计及正确性证明
4.1 关于结构程序设计
• 1. 定义
• 结构程序设计是避免使用GOTO语句的一种程序设计 • 结构程序设计是自顶向下的程序设计 • 是一种组织和编制程序的方法,利用它编制的程序易于
理解和修改 • 程序结构化的一个主要功能是使得正确性证明容易实现 • 允许在设计过程中的每一步验证其正确性,即自动导致
结构化定理举例
• 例:考察如下的流程图程序:
2
0
e
1 p
0 3
4
q
h
第一步:编号,结果如上图。
29
Chap4 结构化程序设计及正确性证明
结构化定理举例
• 第二步:重新构造函数节点和谓词节点
g1 =
L:=2 p
L:=3
g2 = g3 =
e
L:=0
L:=0 q
L:=4
30
g4 =
h
L:=1
Chap4 结构化程序设计及正确性证明
27
I
Chap4 结构化程序设计及正确性证明
结构化定理--证明
• 结论: • 显然,上面程序的功能和原程序的功能是相同的,因而它和原程序是函数等价的。而 且,该程序是由一个固定的基集合{序列,IF-THEN-ELSE,WHILE-DO}产生的结 构化程序,从而定理得证。
28
Chap4 结构化程序设计及正确性证明
点的出口线继续考察,直到找到第一个函数节点或谓词节
点)。同时将每一个函数节点及谓词节点的出口线用它后
面的节点的编号进行编号。如果它后面没有函数节点或谓
词节点,即该节点的出口线直接或通过汇点与程序的出口
相连时,出口线的编号为0。
2
0
e
1 p
0 3
4
q
25
h
Chap4 结构化程序设计及正确性证明
结构化定理--证明
结构化定理举例
• 第三步:用IF-THEN-ELSE和WHILE-DO重新构造程 序:
L:=2
p
L=1?
L:=3
L:=1
L>0
e
L:=0
L=2?
L:=0
q
L=3?
L:=4
h L:=1
L=4?
31
I
Chap4 结构化程序设计及正确性证明
结构化定理举例
• 第四步:化简:
• 上面得到的结构化程序比较庞大,且效率不高,还可以进一步改进,消除一些多余 的对L的测试和赋值。
g
f
f
g
h
g
f
11
Chap4 结构化程序设计及正确性证明
七种重要的基本程序
• 函数: • 序列: • If-then • If-then-else
f
f
g
f p
f p
12
g
Chap4 结构化程序设计及正确性证明
七种重要的基本程序
• while-do: • Do-until: • Do-while-do:
• t:=x; x:=y; y:=t; • 对任意的X=(x,y,t), 程序P的执行结果Y=(y,x,x) • 因此,程序函数是{(x,y,t),(y,x,x)}
• 本质: 计算输入和输出的关系
15
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)}
| p(x) q•f(x) r • h • f(x)y=g•h • f(x)
| p(x) q•f(x) r • h • f(x)y=h • f(x)
| p(x) …
21
|…
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
3)循环程序的程序函数
g2
g5
g1
g3
p f
8
Chap4 结构化程序设计及正确性证明
正规程序
• 4. 正规程序
• 定义:满足以下两个条件的流程图程序称为正规程 序。条件:
• 具有一条入口线和一条出口线,且 • 对每个节点,都有一条从入口线到出口线的通路通过该
节点。
• 例:下面两个流程图程序不是正规程序
f
p
g
f p
9
Chap4 结构化程序设计及正确性证明
p1
p2
p3
执行树: 1 g1
2 g3
g4
g2
1
p1
3
p2
g5 3 p3
g4
2 22
代C换hap后4 结的构化执程行序设树计及:正确性证明
f1
f2
g1
g3
p1
g2 f3
p2
f1
g5
f3
p3
g4
f2
f1 = {(x,y)|y = f2 •g1(x)}
F2 = {(x,y)|p1•g3(x)y=f1•g2•g3(x)
| p1•g3(x)y=f3•g3(x)}
F3= {(x,y)|p2(x) p3(x)y=f3 •g5(x)
| p2(x) p3(x)y=x
23
| p2(x) y=f2 • g4(x)}
Chap4 结构化程序设计及正确性证明
二、结构化定理
5 . 程序的函数等价 如果程序P1和程序P2有相同的程序函数,称它们是函数等价的,或简称是等价的。
• GOTO语句使程序的静态结构与它的动态执行之间有很大的差 别。这样使程序难阅读、难查错。
• 去掉GOTO语句可以直接从程序结构上反映出程序运行的过程, 结构清晰、便于查错、易验证。
• 保留GOTO语句
• GOTO语句使用起来比较灵活,而且有些情况下能够提高程序 的效率,若一味地强调删除GOTO语句,有些情形会使程序过 于复杂,增加不必要的计算量。
• 函数节点:只有一条入口线和一条出口 线,一般与赋值语句相对应。
• 谓词节点:有一条入口线和两条出口线, 它不改变程序的数据项的值。
• 汇点:有两条入口线和一条出口线,它 不执行任何运算,只起到收集出口线的 作用。
f p
7
Chap4 结构化程序设计及正确性证明
流程图程序举例
• 流程图程序举例:
g q
正规子程序
• 3. 正规子程序 • 一个正规程序的某些部分仍然可以是正规程序,这些部分称为正规子程序.
10
Chap4 结构化程序设计及正确性证明
基本程序
• 4. 基本程序 • 定义:一个正规程序,如果不包含多余一个节点的正规子程序,称为基本程序。 即基本程序是一种不可再分解的正规程序。 • 例:
f
• 化简的基本思想: • 对于某些 j>0,如果gj中不包含赋值语句L:=j,则可以用gj代替所有的赋值L:=j。 这样代替后,由于j不再赋值给L,因而测试L=j可以从IF-THEN-ELSE结构中去 掉。这种替换直到以下情况出现为止:
y1 =y0 x2 = x1 y3 = y2
= y1 = y0 Y3 = y2
=x1-y1
[P] = {((x,y),(y,x)}
=x0+y0–y0=1x80
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
练习: 计算下列语句序列的程序函数: y:=a; y:=x*y+b; y:=x*y+c; y:=x*y+d
19
Chap4 结构化程序设计及正确性证明
二、结构化定理
3. 程序函数的计算
2)无循环程序的程序函数 首先:构造有穷的执行树 然后:对每条路径写出相应的表达式 例:
f p
q
g
h
r
20
二、结构化定理 Chap4 结构化程序设计及正确性证明
3. 程序函数的计算
执行树:
g
f
q
g
p
h
r
g
h
r
[p] = { (x,y)| p(x) q•f(x)y=g•f(x)
3. 程序函数的计算
二、结构化定理
1)对于序列程序可使用跟踪表的方法计算[p]
例:语句段:x := x+y; y:= x-y; x:= x-y;
解:假设变量x,y的初值为x0,y0, …
有跟踪表:
X3=x2-y2
语句
x
y
=x1-(x1-y1)
x := x+y y:= x-y x:= x-y
x1 = x0+y0 y2 = x1–y1 X3 = x2- y2
• 折中派(Knuth)
• 不加限制地使用GOTO语句,特别往回跳的GOTO语句,会使 程序结构难以理解,这种情形应尽量避免使用GOTO语句。
• 为提高效率,同时又不破坏程序的良好结构,有控制地使用G4O TO语句是有必要的。
Chap4 结构化程序设计及正确性证明
结构程序设计结论
• 结论: • 结构程序设计讨论的是一种程序设计的方法和风格。关注的焦点是得到的程序的 结构的好坏,而有无GOTO语句并不是一个程序结构好坏的标志。避免和限制使 用GOTO语句是得到结构化程序的一种手段,而不是我们的目的。 • 结构化程序设计既着眼于程序设计的思路清晰,又着眼于程序的结构清晰。即通 过结构化的设计方法获得结构化产品
第4章 结构化程序设计
4.1 关于结构程序设计的基本概念 4.2 结构化程序和结构定理 4.3 结构化程序设计的判别 4.4 结构化程序设计的步骤和原理 4.5 逐步求精的程序设计 4.6 非结构化向结构化的转化 4.7 结构化程序的正确性验证 小结 习题
2021/7/27
1
Chap4 结构化程序设计及正确性证明
自我说明与自我捍卫的程序风格 • 是讨论如何将任何大规模的复杂的流程图程序转换成一
种标准形式,使得它们用几种标准的控制结构, 通过重复 2
和嵌套来表示.
Chap4 结构化程序设计及正确性证明
结构程序设计的综合描述
• 结构程序设计的综合描述:
• 结构程序设计是一种进行程序设计的原则和方法,按照这种原则和方法设计出的程序 的特点是:结构清晰、易阅读、易修改、易验证。
16
Chap4 结构化程序设计及正确性证明
二、结构化定理
2. 七种基本程序的程序函数(续)
[while-do] = {(x,y)|k0 ((j:0<=j<k:p ·f j(x))| ¬p ·f k(x)y= f k(x))} [do-until] = {(x,y)| k>0 (j:1<=j<k)(
¬ p ·f j(x)| p ·f k(x)y= f k(x))} [do f while p do g od] = {(x,y)| k0 (
j : 0<=j<k : p ·f ·(g ·f) j(x))| ¬p · f ·(g ·f) k(x)y= f ·(g ·f) k(x))}
17
Chap4 结构化程序设计及正确性证明
结构化定理--证明
最后,利用已经得到的一些gi(I=1,2,3,…,n),按下 图形式构造一个while-do循环。这个循环体是一个 对L从1到n进行测试的嵌套的IF-THEN-ELSE程序 (最内层的I表示恒等函数):
F=
L:=1
g1
L=1?
g2
L>0
L=2?
•••
•••
gn-1
L=n-1?
gn
L=n?
5
Chap4 结构化程序设计及正确性证明
4.2 结构化程序和结构定理
• 一、结构化程序 • 下面给结构化程序下一个精确的定义.
6
Chap4 结构化程序设计及正确性证明
流程图程序
1. 流程图程序
定义:一个用流程图的形式表示出来的程序, 称为流程图程序。
• 流程图程序的组成:函数节点、谓 词节点和汇点。
g p
f
p
g
f
p
13
Chap4 结构化程序设计及正确性证明
复合程序和结构化程序
• 5. 复合程序 • 若一个基本程序的函数节点用另外一个基本程序
替换, 所产生的正规程序称为复合程序。
• 6. 结构化程序
• 由基本程序的一个固定的基集合(例如,序列、IF-TH
EN-ELSE、While-DO)构造出的复合程序称为结构化
5. 结构化定理
定理:任一正规程序都可以函数等价与一个 由基集合{序列,if-then-else,while-do}产生的 结构化程序。
24
Chap4 结构化程序设计及正确性证明
结构化定理-证明
证明:考察任一正规程序:
首先,从程序的入口处开始给程序的函数节点和谓词节点编
号。编号为1,2,3,… ,n(若入口处是汇点,那么宴会
• 结构程序设计语言:按照结构程序设计的要求设计出的程序设计语言称为结构程序设 计语言。
• 结构化程序:利用结构程序设计语言,或按照结构程序设计的思想编制的程序称为 “结构化程序” 。
3
Chap4 结构化程序设计及正确性证明
关于GOTO语句的问题
• 4. 关于GOTO语句的问题
• 取消GOTO语句,即GOTO有害。理由:
程序。
14
Chap4 结构化程序设计及正确性证明
二、结构化定理
1. 程序函数
• 已知一正规程序P,对于每个初始的数据状态X,若程 序是终止的,那么有确定的最终数据状态Y。如果对于 每一个给定的X,值Y是唯一的,那么所有的有序对的 集合{(X,Y)}定义了一个函数,称这个函数为程序 P的程序函数,记为[P]。
其次,对原程序种的每一个编号为i,出口线编号 为J的函数节点h,构造一个新的序列程序gi,如图:
h i
j
gi= h
L:=j
对每一个编号为i,出口线编号为j、k的谓词节点p,
构造一个新的IF-THEN-ELSE程序gi,如图:
j
ip k
L:=j
gi=
p
L:=k
26Βιβλιοθήκη Chap4 结构化程序设计及正确性证明
4.1 关于结构程序设计
• 1. 定义
• 结构程序设计是避免使用GOTO语句的一种程序设计 • 结构程序设计是自顶向下的程序设计 • 是一种组织和编制程序的方法,利用它编制的程序易于
理解和修改 • 程序结构化的一个主要功能是使得正确性证明容易实现 • 允许在设计过程中的每一步验证其正确性,即自动导致
结构化定理举例
• 例:考察如下的流程图程序:
2
0
e
1 p
0 3
4
q
h
第一步:编号,结果如上图。
29
Chap4 结构化程序设计及正确性证明
结构化定理举例
• 第二步:重新构造函数节点和谓词节点
g1 =
L:=2 p
L:=3
g2 = g3 =
e
L:=0
L:=0 q
L:=4
30
g4 =
h
L:=1
Chap4 结构化程序设计及正确性证明
27
I
Chap4 结构化程序设计及正确性证明
结构化定理--证明
• 结论: • 显然,上面程序的功能和原程序的功能是相同的,因而它和原程序是函数等价的。而 且,该程序是由一个固定的基集合{序列,IF-THEN-ELSE,WHILE-DO}产生的结 构化程序,从而定理得证。
28
Chap4 结构化程序设计及正确性证明
点的出口线继续考察,直到找到第一个函数节点或谓词节
点)。同时将每一个函数节点及谓词节点的出口线用它后
面的节点的编号进行编号。如果它后面没有函数节点或谓
词节点,即该节点的出口线直接或通过汇点与程序的出口
相连时,出口线的编号为0。
2
0
e
1 p
0 3
4
q
25
h
Chap4 结构化程序设计及正确性证明
结构化定理--证明
结构化定理举例
• 第三步:用IF-THEN-ELSE和WHILE-DO重新构造程 序:
L:=2
p
L=1?
L:=3
L:=1
L>0
e
L:=0
L=2?
L:=0
q
L=3?
L:=4
h L:=1
L=4?
31
I
Chap4 结构化程序设计及正确性证明
结构化定理举例
• 第四步:化简:
• 上面得到的结构化程序比较庞大,且效率不高,还可以进一步改进,消除一些多余 的对L的测试和赋值。
g
f
f
g
h
g
f
11
Chap4 结构化程序设计及正确性证明
七种重要的基本程序
• 函数: • 序列: • If-then • If-then-else
f
f
g
f p
f p
12
g
Chap4 结构化程序设计及正确性证明
七种重要的基本程序
• while-do: • Do-until: • Do-while-do: