结构化程序设计方法出现的背景
- goto语句是有害的
- 可以从高级语言中消除goto语句,主张在高级语言中应保留goto语句,在功能方面不加限制,但限制其使用范围,切不必对一般用户开放
- 争论的焦点不应该放在是否取消goto语句上, 应该放在程序的质量上
计算机发展的初期,评价软件质量主要看占内存容量的大小和运行速度的快慢
程序设计的目标
- 不只是编写一个能够得到正确运行结果的程序
- 关注程序结构的好坏,好的结构比高的效率更为重要
结构化程序设计的一个比较流行的定义是
- 结构化程序设计(Srructured Programming)是一种程序设计的原则和方法
- 限制和避免使用goto语句,采用”自顶向下,逐步求精”方法进行程序设计
- 按照这种原则和方法设计出的程序的特点为:
- 结构清晰
- 容易阅读
- 容易修改
- 容易验证
结构化程序设计的目标
- 为了得到一个好结构的程序
- 有无goto语句,并不是程序结构好坏的标志
采用顺序、选择和循环三种基本控制作为程序设计的基本单元
坚持单入口单出口原则
- 程序的静态结构和动态执行可以保持一致
- 差异很大会给程序的流向分析带来困难,可读性差,易出错,不易查错
正规程序需满足下面两个条件
- 具有一个入口线,一个出口线
- 对每一个节点,都有一条从入口线到出口县的通路通过该节点
正规程序的某些部分仍是正规程序——正规子程序
基本程序
- 不存在多余一个函数节点的正规真子程序(不可再分解的正规程序,不能抽象为多于一个的函数节点)
- 封闭结构(若存在的话)都是正规程序
- 任何一个结构化程序都是可以用这些基本程序来构成
- 怼构造一个结构化程序来说并不都是必须的
复合程序
一个基本程序的函数节点用另外一个基本程序替换,所产生的正规程序称之为复合程序
复合程序的替换形式:堆叠,嵌套
基集合
用于构造程序的基本程序集合
结构化程序
由基本程序的一个固定的基集合构造出来的复合程序
- 按照结构化程序设计的要求设计出的语言——结构化程序设计语言
- 按照结构化程序设计语言(或结构化程序设计思想)设计的程序——结构化程序
结构化程序的特点:
无论从总体上还是从每一个组成部分来看, 都遵循“单入口单出口”的原则