自顶向下,逐步求精(Top-down)的程序设计方法简介

来源:互联网 发布:js正则表达式空格 编辑:程序博客网 时间:2024/06/01 12:47

  程序设计初学者常常受困于不会想问题:“不知道让计算机解决这个问题该如何做”。其实,程序员的一个基本功是,能够将复杂的问题分解开来。学会分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决。记住一个很管用的策略:自项向下,逐步求精。不管做何事,都拿这个策略套一套,程序能编好,其他事也都能做。

   自顶向下的意思是:是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
   精益求精指的是:是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。

   不妨将洗衣机作为例子,用Top-down方法描述洗衣机控制程序:
我们先将正常洗衣的任务分解为各个小步骤:
   0)选择洗衣模式:对应水位,注水时间
  1)注水, 水位计计水位
  2)浸泡, 计时器计时
  3)电机转动, 左3次,右3次
  4)排水, 水位计计水位
  5)电机转动(脱水)
  6)结束
分解完成后,我们根据每个小步骤,写出伪代码:
  READ 用户选择模式
  REPEAT
  注水
  UNTILL 水位=注水要求
  REPEAT
  浸泡
  UNTILL 时间 = 时间要求
  WHILE(电机启动时间>0)
  REPEAT
  电机左转3次
  电机右转3次
  时间-1单位
  ENDWHILE
  WHILE(水位!=0)
  排水
  ENDWHILE
  FOR(脱水时间>0)
  电机转动
  ENDFOR
  关闭电源
现在,根据每个步骤的伪代码,不难写出相应的程序语句。并且,弄清每个步骤后,我们只需对某个步骤进行编辑,就能使得洗衣机拥有多种洗涤模式。
这里写图片描述

原创粉丝点击