自顶向下逐步求精的程序设计方法

来源:互联网 发布:帮助记忆的音乐知乎 编辑:程序博客网 时间:2024/05/21 09:50
  • 什么是自顶向下

自顶向下设计(top-down design)是一种程序开发技术,其中问题被分解为更容易处理的子问题(即模块),这些子问题的解决方案组起来构成整体问题的解决方案。

  • 具体方法

自顶向下的方法使问题结构化和简易化。把问题分解成子问题、模块直到整个问题简化到足够容易解决。其中形成了一种分层结构表示问题和子问题之间的关系,这种结构也称树形结构。

对于树形结构我们是不陌生的
这里写图片描述

设计算法时,写下主要步骤,定为主要模块,然后进一步开发第一层模块中的细节,如果这一层还是太复杂棘手,可以继续开发下一个模块,把每个任务扩展成最小的细节。被扩展的步骤是抽象步骤(abstract step),无需扩展的步骤便是具体步骤(concrete step)。

  • 简单例子

–在编程时,如果要重复使用有某种功能的代码,那么一个很好的方法便是将其写成 一个函数,以便调用(前提是能用函数编写)。这个函数便是一个模块。

–对于编程中会出现的选择,循环结构,它们也是一个模块。

如你要输出斐波那契数列的第n个数是多少,并且有多个输入。
*分析问题,我们便可明确这里需要用到循环结构,因为有多个输入;该算法可以采用递归的方法,所以可以写成一个函数。
*一步步细化循环和函数。
*测试程序。
main.c
main.c

func.h
这里写图片描述

(斐波那契数列1、1、2、3、5、8、13、21……)
如果输入为
2 4 6 7

输出为
1
3
8
13


  • 结构化程序的产生

迪克斯特拉在1965年提出,它是软件发展的一个重要的里程碑。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。

原创粉丝点击