“自顶向下,逐步求精”的程序设计技术是目前较为时髦的、合理的找出算法的一种思维方法。
它的核心思想是:
对于某一个问题要解决的问题,在寻求它的解法过程中
首先从问题的整体出发,将它分解成独立而互不交叉的若干个子问题。每个子问题解决整体问题的一部分或一种情况。这几个子问题若能正确解决,则它们的总和就是整体问题的解。
向下再一个个的具体考虑下一层的各个子问题,针对每个子问题,仍采用对待整体问题解的思路,继续对其进行分解(求精),得到该子问题解法的分解步骤,即更低一层次的子子问题。
如此下去,直到最底层的每个子问题都能用计算机语言的一个语句表示出来或都能明显写出解法为止。便找到解决整体问题的解题算法了。
求精过程的每一步主要用到如下四种求精技术:
1.顺序连接的求精
2.分支、选择的求精
3.循环的求精
4.递归的求精
下面以洗衣机为案例
1 Set watervolume
2 waterinswitch(open)
3 Set timein
4 Set timeout
5 if(timein == timeout)
6 waterinswich(close)
7 getwatervolume(watervolume)
8 motorrun(start)
9 Set worktime
10 Set outtime //结束时间
11 for(worktime = outtime/2;worktime < outtime;worktime++)
12 motorrun(left)
13 for(worktime = 0;worktime < outtime/2;worktime++)
14 motorrun(right)
15 while(worktime == outtime)
16 motorrun(stop)
17 timecounter(worktime)
我编不下去了
谢谢大家!