正如前面学习的过程和过程的嵌套,这种思维方式能够把问题分解为许多易于管理的部分,同时还能帮助你梳理整个程序的脉络和逻辑,利于维护各个部分之间的关系。
当创建了许多过程之后,我们便能以特定的顺序使用它们解决编程问题。如果程序中多次使用了相同的过程,就可以避免代码的复制和粘贴。(即代码复用)。
用过程的思维解决复杂问题的本质就是“分而治之”:将一个很大很复杂的问题分解成许多小的子问题,然后分别解决并独立地测试每一个子问题,最后将这些子问题整合在一起,从而解决了最初的问题。
现在我们就来讨论一下如何分析问题。不同问题之间虽然都存在差异,也没有千篇一律的解决方法,但这正是解决难题的魅力所在!
下面我们来学习两种分析复杂问题的方式:自顶向下分析和自底 向上分析。前者将大程序模块化,使其拥有清晰的逻辑结构;后者从最简单的问题入手,逐步构建完整的程序。
无论哪种方式,待解决的大问题都是上面的大圆圈,而下面的小圆圈则是构成大问题的众多小问题。具体使用哪种方式取决于问题的场景。
自顶向下分析
充分理解问题是解决任何编程问题的第一步。理解之后,我们可以做出一个大致的解决方案,然后将其划分为多个主要任务。程序分解的结果是因人而异的,一般没有正确和错误之分,但通常需要明确“主要任务”的含义,而且至少要保证程序的整体逻辑是正确的。
我们先来看一个绘制房屋的案例,绘制结果如下图4-24所示。该案例分析问题的方式便是自顶向下的。
原文:https://www.cnblogs.com/youjianschool/p/13290669.html