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

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

概念

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

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

举例

Talk is cheap,I will show you the code.

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

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

如图,我们要打印类似的一个图案。
输入图案的边长,将输出等比例的类似图案。

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

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

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

整个过程是输入边长,然后打印图案,所以我们从大方向出发,写一个如下图所示的主函数。
【实践+科普】自顶向下,逐步求精——面向过程程序设计方法_第3张图片

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

先看整个图案,很鲜明的发现每一行对角线左边和右边规律是不同的。
【实践+科普】自顶向下,逐步求精——面向过程程序设计方法_第4张图片

所以我们把图案划分成两部分——左图案和右图案
【实践+科普】自顶向下,逐步求精——面向过程程序设计方法_第5张图片

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

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

这样一个双层循环就可以轻松解决问题了
【实践+科普】自顶向下,逐步求精——面向过程程序设计方法_第6张图片

有了图案的规划方法,我们还需要打印这些图案
【实践+科普】自顶向下,逐步求精——面向过程程序设计方法_第7张图片

写完后就大功告成了。

小结

这样一个繁琐的问题,被细分后变成了一个一个的小模块,我们只需要专心解决每一个小模块,解决完所有模块后,程序就完成了。
这样的细分大大减少了我们的脑力消耗,提高了我们的编程效率,即自顶向下,逐步求精

你可能感兴趣的:(【实践+科普】自顶向下,逐步求精——面向过程程序设计方法)