您的位置:首页 > 其它

【实践+科普】自顶向下,逐步求精——面向过程程序设计方法

2017-11-26 14:33 686 查看
> 面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。               ——百度百科


概念

自顶向下,逐步求精,简而言之就是把一个很大的任务细分,划分成若干部分,然后一个一个的解决这些部分。

编程的时候,分析解决问题需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

举例

Talk is cheap,I will show you the code.

我们来举一个打印旗帜的例子。



如图,我们要打印类似的一个图案。

输入图案的边长,将输出等比例的类似图案。

如果我们不细分任务,这将是一个让人很头大的问题,相信大家大脑的内存都有限,一次性处理不了这个问题。

现在我们把这个问题分解成若干部分来解决。



整个过程是输入边长,然后打印图案,所以我们从大方向出发,写一个如下图所示的主函数。



下面便是考虑解决这个问题需要的步骤了。

先看整个图案,很鲜明的发现每一行对角线左边和右边规律是不同的。



所以我们把图案划分成两部分——左图案和右图案



再以左图案为例,观察这部分图像的规律。

我们不妨建立一个坐标系,以左上角的那个 * 为(0,0)点,这样不难观察出,横坐标j和纵坐标i满足

(j+i)%4 == 0 || (j+i)%4 == 1


这样一个双层循环就可以轻松解决问题了



有了图案的规划方法,我们还需要打印这些图案



写完后就大功告成了。

小结

这样一个繁琐的问题,被细分后变成了一个一个的小模块,我们只需要专心解决每一个小模块,解决完所有模块后,程序就完成了。

这样的细分大大减少了我们的脑力消耗,提高了我们的编程效率,即自顶向下,逐步求精
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: