自顶向下,逐步求精

来源:互联网 发布:java 包装类 编辑:程序博客网 时间:2024/05/18 04:27
  • 自顶向下:是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。

  •         逐步求精: 

    是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。

              操作步骤:

         (1)让你建立“自顶向下,逐步求精”的思维方式,你的大脑先能“机械化”,为指挥计算机“一步一步”地完成任务打下基础;

         (2)让循环的概念在头脑中扎根:在顺序、选择、循环三种控制结构中,循环是最复杂的(只要你掌握了,也就不复杂,而成为一种自然的思维方式了),也是解决问题的最有效的结构,我们就先在此力求先期得到体会。

         (3)C++程序的基本单位是函数,用函数解决更小的问题,这是求精实现的途径。

        这部分内容并未对应到课本上的某一段。要学会“跳跃”的学习方式,自己构建知识,跳出所谓课本的框框。课本给出了一种知识的组织形式,然而知识本身并不本来就呈现这种关系的,这样组织只是作者的一种思路而已。工科学生要学会查阅资料,因为你所需的知识“背”不会,也不应该是用“背书”的方式学的。将课本看成是手册、工具书,无论学到哪儿,能随时恰当、准确地找到书中能够给你启示和参考的地方。不要迷信老师讲过就如何如何,只要你需要,消除心理障碍,你就能读下去,获得自己需要的知识。

      • 哥德巴赫猜想的验证

      • 第一步 提出问题: 验证哥德巴赫猜想

       

      • 第二步 设一上限数M,验证从4到M的所有偶数是否能被 分解为两个素数之和。
        1. 定义一个变量X,初值为4。
        2. 每次令其加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)。


原创粉丝点击