结构化设计与八皇后问题求解
1. 结构化编程的起源
结构化设计起源于Edsger Dijkstra在1968年发表的著名信件《Go To Statement Considered Harmful》。在这篇文章中,Dijkstra指出“goto”语句过于原始,容易让程序变得混乱。之后的编程语言虽然没有完全摒弃“goto”语句(Java除外),但都降低了它的使用频率。编程课程也鼓励学生避免使用“goto”语句,转而采用自顶向下的结构化方式解决问题,即从问题描述出发,将问题分解为一系列可解决的子问题,直到每个子问题都足够简单。在20世纪80年代中期面向对象编程出现之前,结构化编程是解决问题和编程的标准方法,并且至今仍是解决许多问题的优秀方法之一。
2. 逐步细化设计方法
Niklaus Wirth在1971年的论文《Program Development by Stepwise Refinement》中正式提出了结构化设计技术——逐步细化。该方法认为程序设计由一系列细化步骤组成,每个步骤将一个任务分解为多个子任务,同时要对数据描述和接口进行相应细化。程序的模块化程度决定了其适应需求或环境变化的难易程度。
在细化过程中,应使用适合问题空间的符号,尽量避免使用编程语言进行描述。每次细化都基于一组设计标准做出设计决策,这些标准包括时间和空间效率、清晰度以及结构规则性(简单性)。
细化可以采用两种方式:
- 自顶向下细化 :从问题的总体描述逐步细化到各个模块或例程的详细说明。其指导原则是人类一次只能专注处理少数事情,即Miller提出的7 ± 2数据块规则。具体操作步骤如下:
1. 分析问题,
超级会员免费看
订阅专栏 解锁全文
1384

被折叠的 条评论
为什么被折叠?



