简单介绍“自顶向下, 逐步求精”的程序设计方法
我们首先来对”自顶向下,逐步求精“有个简单的了解
自顶向下
自顶向下是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
逐步求精
逐步求精是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。
在用这个方法的时候要注意模块化设计,
所谓模块化设计,一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
1.采用自顶向下,逐步求精的程序设计方法
在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2.使用三种基本控制结构构造程序
任何程序都可由顺序、选择、重复三种基本控制结构构造。
(1)用顺序方式对过程分解,确定各部分的执行顺序。
(2)用选择方式对过程分解,确定某个部分的执行条件。
(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
下面我们举个例子 “验证“哥德巴赫猜想””
“哥德巴赫猜想”表述为:任何一个大于等于4的偶数均可以表示为两个素数之和。
求解
第一步 提出问题: 验证哥德巴赫猜想
第二步 设一上限数M,验证从4到M的所有偶数是否能被 分解为两个素数之和。
- 定义一个变量X,初值为4。
- 每次令其加2,并验证X能否 被分解为两个素数之和,直到 X不小于M为止。
第三步 如何验证X是否能被分解为两个素数之和
。
1. 从P=2开始;
2. 判别X—P是否仍为素数:
3. 若是,打印该偶数的分解式。
4. 否则,换更大的素数,再继续执行2.。如此循环,直到用于检测的素数大X/2且X 与其之差仍不是素数,则打印“哥德巴赫猜想”不成立。
第四步 查找下一个素数。
(1)当前素数P加1
(2)判别P是否是素数;
(3)若是素数,返回P;
(4)否则,P加1,继续执行( 2)。
这就是一个简单的应用“自顶向下, 逐步求精”的程序设计方法解决的问题,也欢迎大家去百度更多关于此方法的介绍,找个简单的问题自己实践一下。