自顶向下,逐步求精的程序设计方法。
“自顶向下”
是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
“逐步求精”
是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。
若想让计算机解题必须用清晰而无两义性的方式给它提供算法。要求: 1 .找出一个算法,它能提供所解问题的从输入到输出所需的映象。 2 .选择一种程序语言写出程序,用计算机能接受的方式表述算法。关键是如何找出算法。因为写出程序,只是表述算法,应该没有困难。“自顶向下、逐步求精”的程序设计技术是目前较为时髦的、合理的找出算法的一种思维方法。它的核心思想是:对于某一个要解决的问题,在寻求它的解法过程中:
1.首先从问题的整体(最顶层)出发,将它分解成独立而互不交叉的若干个子问题。每个子问题解决整体问题的一部分或一种情况。这几个子问题若能正确解决,则它们的总和就是整体问题的解。
2.向下再一个个的具体考虑下一层的各个子问题,针对每个子问题,仍采用对待整体问题解的思路,继续对其进行分解(求精),得到该子问题解法的分解步骤,即更低一层次的子问题。
3.如此下去,直到最低层的每个子问题都能用计算机语言的一个语句表示出来或都能明显写出解法为止。便找到解决整体问题的解题算法了。
上述的求精过程中的每一步,主要用到如下四种求精技术:
1、顺序连接的求精。
2、分支、选择的求精。
3、循环