本文主要是介绍ALevel CS里的分解和抽象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大纲一览,引用自第9单元,23页
1、Show an understanding of abstraction
Needfor and benefits of using abstraction
Describe the purpose of abstraction, Produce an abstract model of a system by only including essential details
2、Describe and use decomposition
Break down problems into sub-problems leading to the concept of a program module (procedure / function)
大纲里要求我们掌握抽象和分解的概念,事实上,历年真题里也有很多反应这两种方法的题目,抽象和分解也是我们解决问题的一种思路,那么什么是抽象?什么是分解呢?
抽象 abstraction
1、抽象是指看问题时过滤调所有不必要的信息。识别问题的关键部分有助于人们找到问题的解决办法。
2、基本要领
抽象是确定对象或者系统的哪个元素是必要的特征的过程,没有他们,物体就不会是他们本身的样子。
西班牙艺术家毕加索经常画抽象的肖像,画中人物的脸部看起来与现实世界完全不同,然而,由于他们有一张脸的基本特征-眼睛鼻子嘴巴,所以我们可以认出那是一张脸。
即使没有细节,人们也能认出来以上图片是个房子。
什么是不必要的细节?
房子必要的细节是墙壁,屋顶,门和窗户,像窗户的颜色或者数量之类的东西并不是必不可少的细节。
抽象关键:找到必要的细节
抽象的诀窍是在基本信息和非基本信息之间找到平衡,例如在传递任务的指令时,步骤太多就会引起混乱,步骤太少就可能无法完成任务。
比如,查找某个序列中的特定值,计算机程序员为了程序需要,将查找步骤按照正确的顺序排列,从而解决这个问题。
洗衣机的控制步骤就是一个抽象的例子,使用洗衣机洗衣服时,我们不必确切了解洗衣机是如何工作的,只需要打开洗衣机,然后按下所需要的模式即可。
案 例
链接:真实的世界
许多列车和地铁的现代地图就是抽象的例子,早期的地图准确地显示了一条铁路的所有路线,其中还包括了车站之间的距离,然而这让人很难阅读,因为他们提供了乘客不需要的信息,如确切路线等,并且使乘客很难看到他们真正需要的信息,就比如线路上的车站顺序
新的地图简化了信息,所有乘客可以看到从A到B站最高效的路径。
这篇关于ALevel CS里的分解和抽象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!