1.3.1 结构化程序设计
结构化程序设计是荷兰科学家E.W.Dijikstra在1965年提出的,其主要思想是通过分解复杂问题为若干简单问题的方式,从而降低程序的复杂性。它的主要观点是采用自顶向下、逐步细化的程序设计方法,同时,严格使用三种基本控制结构来构造程序。
所谓自顶向下、逐步细化的程序设计方法是指先把一个问题分解为几个子问题,然后依次针对每个子问题再进行分析。如果子问题仍然过于复杂、庞大,就需要继续将其分解,细化为几个小问题,如此一步一步向下分解,直至每个小问题足够清晰。把自顶向下、逐步细化的设计方法与模块化设计方法结合在一起能得到更好的程序结构。模块化设计方式的主要思想,是把程序分解为多个单一、独自的模块依次解决。例如,由于C语言的知识点众多,而各个知识点之间独立性较强,因此,写一本C语言书的过程也可以说是一个自顶向下、逐步细化的模块化过程,一般有以下步骤:
① 要根据写作目标确定这本书需要写哪方面的内容,可以将书的内容分为三部分:C语言基础知识、C语言的特性和C语言的一些专题应用。
② 很显然,这三个部分仍然显得过于庞大,因此,需要继续分解。C语言的基础知识有很多,可以细分为数据类型、操作符与表达式、程序控制结构、数组、字符串、函数等,其中,程序控制结构还可以继续分为选择结构和循环结构;C语言的特性和C语言的专题应用也同样可以分为多个章节。
③ 对每一章需要继续分解,罗列各个章节的知识点,确定每个章节中知识点的讲解顺序。这一步完成后就可以得到这本C语言书的目录,整本书的框架就十分清晰了。
④ 按各个章节的顺序依次往里面填内容。
按照这种方式组织书写的方法,其中一个显著的好处是,当写一个章节的时候,可以几乎忘记其他章节的内容;同时,还可以任意挑选中间章节先行编写。这种好处在程序上就体现为程序的结构清晰、易于调试和维护。
三种基本控制结构是指顺序结构、选择结构和循环结构。所有的程序结构都可以分解为这三个基本控制结构。1.3.2节将详细介绍。