C++程序设计实践学材系列(23)——1.5.3 体会“自顶向下,逐步求精”思想

简介: 回到系列文章的目录——[系列文章目录]  回到本章目录——[第1章目录] 1.5.3 体会“自顶向下,逐步求精”思想  接下来,我们的胃口开始大了。  提出来一种考虑问题的思路,其实已经蕴涵在例1.7输出7行星号的程序中了。  这种解决问题的思维方式是——“自顶向下,逐步求精”。  要输出的是:  写出的程序(例程ch1-13.cpp),循环7次。每次的循环,输出1行。因此,输出了7行,

回到系列文章的目录——[系列文章目录]  回到本章目录——[第1章目录]

 

1.5.3 体会“自顶向下,逐步求精”思想

  接下来,我们的胃口开始大了。
  提出来一种考虑问题的思路,其实已经蕴涵在例1.7输出7行星号的程序中了。
  这种解决问题的思维方式是——“自顶向下,逐步求精”。
  要输出的是:
  写出的程序(例程ch1-13.cpp),循环7次。每次的循环,输出1行。因此,输出了7行,如下面左侧的代码所示。
   
  这时再多想一些,输出一行方面可以动些脑子。于是在循环里面,又加了一个循环(例程ch1-15.cpp),如上面右侧的代码所示。
  相对而言,左侧就是一个项层设计,体现了整体到细节的思维。从宏观上,这个图就是有7行。将图看成是一个整体,再看出了有7行,于是写出这样的代码顺理成章。
  右侧是左侧的细化。这时,输出7行的结构已经确定,思维的角度落实在更具体的、规模更小的问题上来了:考虑怎么输出一行的问题。
  显然,输出一个星号图的问题,要比输出一行星号复杂。我们借助着“自项向下”,掌握住了思考这个问题的节奏,在“逐步求精”中,清晰地给出了问题的解答。“自顶向下,逐步求精”的思维,不至于让你看到一个星号图就是一堆星号,以至于狗咬刺猬,无从下口。
  问题变得更复杂的时候,这种“有节奏的思考”成了解决问题的关键,能够帮助你做好顶层设计,再逐级落实,直到给出最直接的实施方案。所谓程序设计要有逻辑思维,那只是战术层面的事了,这种战略层面的思维并不常被人提到。
  有初学者哀叹:“我就没有逻辑思维,我就没有设计能力。”其实,还可以列举出一大堆来。这样的叹息带来强烈的负面情绪,以致于事情无法进展。事实上,多虑了。每一位程序设计的专业人员者是从初学者而来的,大家都是从零基础起步的。学习不是应聘,不是因为你有了什么能力才要你来做这个事。学习的目的在于提高,因为你不具备某些思维方式和能力,所以才来学习。
  学习程序设计,学到的并不只是一项“手艺”,里面蕴藏着不少通用的道理,并且,程序设计的实践,能够使人将这样的道理,转变成思维的习惯。
  将来,你有可能是一个单位的高级技术人员或管理人员。之所以高级,是要负责一些很大的事情,做低级职务的人不能做的事。你负责的事,无论是技术工作还是别的,需要很多人完成。在程序设计实践中练就的“自顶向下,逐步求精”习惯,将是真正的依靠。你首先想到的不应该是鸡毛蒜皮的小细节,而是条缕分明地厘出大格局,据此分解任务交给下属负责,甚至细节该如何完成不用你做,也不用你想。
  所以,有人说,大学,学的是思维方式。抽象的思维方式要通过具体的学习载体传达和表现。如果有人对专业心怀成见,若无更好的变通,也请静心下来。大道可以从每个学科中得来,为何不从正在学习的程序设计中得到更多的启发和训练呢?


回到系列文章的目录——[系列文章目录]  回到本章目录——[第1章目录]

目录
相关文章
|
16天前
|
C语言 C++ 开发者
深入探索C++:特性、代码实践及流程图解析
深入探索C++:特性、代码实践及流程图解析
|
1月前
|
存储 IDE 编译器
深入探索C++中的变量世界:理论与实践
【4月更文挑战第5天】本文介绍了C++变量的基础知识,包括声明、数据类型、const和volatile限定符。通过示例展示了变量在用户输入、计算、控制流程和函数参数中的应用,并列举了常见错误及避免方法,如未声明、作用域混淆、类型不匹配、未初始化和拼写错误。最后提出了变量命名、避免冗余、适时复用、注释说明和利用现代C++特性的最佳实践。
28 0
|
16天前
|
机器学习/深度学习 开发框架 人工智能
探索C++的深邃世界:编程语言的魅力与实践
探索C++的深邃世界:编程语言的魅力与实践
|
2月前
|
缓存 编译器 数据处理
【C/C++ 性能优化】循环展开在C++中的艺术:提升性能的策略与实践
【C/C++ 性能优化】循环展开在C++中的艺术:提升性能的策略与实践
60 0
|
12天前
|
Linux 程序员 图形学
C++语言在现代软件开发中的应用与实践
C++语言在现代软件开发中的应用与实践
19 2
|
12天前
|
存储 程序员 C语言
深入理解C++:从语言特性到实践应用
深入理解C++:从语言特性到实践应用
23 3
|
12天前
|
存储 算法 安全
C++语言深度探索:从基础到实践
C++语言深度探索:从基础到实践
13 2
|
12天前
|
算法 程序员 C语言
C++:深度探索与编程实践
C++:深度探索与编程实践
16 3
|
24天前
|
缓存 编译器 API
NumPy与其他语言(如C/C++)的接口实践
【4月更文挑战第17天】本文介绍了NumPy与C/C++的接口实践,包括Python与C/C++交互基础、NumPy的C API和Cython的使用。通过案例展示了如何将C++函数与NumPy数组结合,强调了内存管理、类型匹配、错误处理和性能优化的最佳实践。掌握这些技能对于跨语言交互和集成至关重要。
|
2月前
|
安全 编译器 程序员
【C++ 编译时有理算术】理解 C++编译时有理数运算:原理、实践与应用
【C++ 编译时有理算术】理解 C++编译时有理数运算:原理、实践与应用
68 1