自顶向下,逐步求精
程序设计初学者常常受困于不会想问题:“不知道让计算机解决这个问题该如何做”“不知道如何利用程序来方便日常生活”。而自顶向下,逐步求精这个方法这帮助程序设计初学者解决了这些问题。它通过分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决,之后再将一切连接起来,便能产生一个解决生活问题的总程序。
起源
结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。
由于模块相互独立,因此在设计其中一个模块时,不会受到其它模块的牵连,因而可将原来较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来了不少的方便,因为我们可以充分利用现有的模块作积木式的扩展。
按照结构化程序设计的观点,任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合: 顺序结构、选择结构和循环结构来实现。
实例1
![]()
0)选择注水量
1)注水, 量水器计水量
2)浸泡, 计时器计时
3)电机转动频率 清洗时间
4)排水,量水器计水量
5)电机转动(脱水) 脱水时间
6)结束
伪代码
0) Read注水量a
1) Read 此时水量 while(水量小于a) 注水
2) read 时间b while(时间大于b) 浸泡 时间++
3)read 频率c 清洗时间d While(d!=0) 左转c次 右转c次 d–
4) Read 此时水量e
While(e==0) 停止排水
5)read 脱水时间f While(f==0)
停止脱水
6)结束
实例2
在城市交通系统的运用: