您的位置:首页 > 编程语言

一起学编程(2--认识世界)

2017-06-06 11:12 435 查看
 人类认知这个世界的開始并非開始于人类成为人类的时刻,应该是生命開始诞生的时候就開始了,由于我们对世界的认知中。有部分已经刻画在我们的基因里面。在这里。我并不想写认知的历史和哲学,由于一是功底不够,二是我的目标是写学编程。

但由于编程本质上也是认知世界的一部分。因此,我想我应该被同意从这里開始我们的编程之旅。

当生命具有自我意识的时候,事实上就代表生命能够把自己从环境中区分开来,当然。前提是事物是可区分的,即事物具有生命感官可区分的特性(属性和行为)。分类是我们认知这个世界最主要的手段。而分类的基础就是事物可描写叙述的特性。

事物的特征非常多,基于现实容量(脑容量,存储介质等)和计算(包括思考)的能力,我们不可能把全部的特征都记下来。我们会根据我们的认知目的,从这些属性中选取一些能够表征这类事物的关键特征。来作为分类的根据。当然这样的特征本身也应该是可识别的(仅仅有可识别的特征才干作为分类的根据)。这样的过程实际上就是对目标事物进行抽象的过程。抽象泛化是我们在编程中最经常使用的两种设计手段,也是面向对象编程的核心思想。

表征事物的特征非常多,这些特征能够分成行为特征和状态属性。

在这样的认知过程中。我们学会了符号化事物,符号化本身就是一种约定和制定规则的过程。从图画,声符到文字,有一个发展的过程。

这个过程本身就是一种编程。仅仅是不是由计算机来运行。而是人手工进行而已。因此,计算机的出现是一种必定的结果。我们在对获得的认知数据进行处理的过程中。获得了数概念。并形成了一套数的处理机制。而将其分离出来。形成一类数据类型。这样做的目的是这类数据类型的数据能够进行数的运算。数据类型的本质就是具有同样类型的数据能够採用同一套加工处理机制。

对于数的概念来说,进位制的产生是人们抽象思维的一种飞跃。

它实现了用少数几个基本元素(符号)来表达无数情况。小的时候大家都听说过“一是一横。二是两横。三是三横”的故事。事实上人类的历史上,对于进制有非常多种。可能是由于人的手指头,脚趾头都是10个的缘故。大部分的民族都产生了十进制的概念。但真正具有位值意义的。最早的十进制是产生于商代。最后融于印度的数字符号形成了今天的十进制(算盘产生于中国,是不足为奇的)。人类选择10进制,除了手指头的缘故外。其所需基本元素和表达能力。性价比上应该是比較高的。

二进制尽管比較简单,但表达同样的数,二进制须要的位数会比較多。

而计算机使用二进制的根本原因在于二进制仅仅须要两个状态来表征其两个数符,比方,电位。仅仅须要区分高和低就可以。但假设用10进制,电位就须要分为10个刻度(状态),这对于測量,维持等方面都是不小的难度。

在处理认知过程中的各种数据中,通过分类,我们定义了不同的基本数据类型。一种基本数据类型,代表着一系列同样或者类似的处理加工方式。

比方,整数。浮点数。图片,文本等。

并在此基础上形成了数据结构的概念(比方单据)。数据类型和数据结构并非计算机编程所特有的。寻常的数据类型和数据结构,一般不存在长度的概念。但在计算机中,为了统一处理和节省空间,数据类型,特别是数字型被分为非常多种小类。尽管,我们如今的存储设备和计算机能力已经非常强大,但选取合适的数据类型和长度。还是一个非常好的习惯。

这是由于须要存储和计算的数据量也是同步,甚至更快增长的。仅仅要资源有限。在不论什么时候,节省都不失为一种美德。

在这里,我们须要特别强调一点,在数字类型方面。计算机中存储的数据和我们实际上的数据不全然是相等的。整数还好,日常中的浮点数相等,在计算机中并不能都成立。举个简单的样例,对于浮点数1.0,在内存中根据浮点数的表达规则(内存中是基于二进制的),由于长度有限,因此表达是有误差的。

可能是0.9999999。也可能是1.0000001.因此对于计算结果比較时,对于非整数型。一般不能应用等于比較。在实际编程过程中,这是非常easy犯错的地方。比方A=1.0,B=1.0。A-B等于0。A等于B 都则不一定成立的。这样的情况下,最经常使用的处理方式是用一个能够接受的误差来规避。

比方abs(A-B)<0.0000001就代表相等。

在一定规约(基本元素),制定出一套新的规约(表达),并按此运行来处理数据就形成了程序。程序=数据结构+算法,这是比較狭义的一种定义。数据结构方面大家能够參考相关的教材。数据类型是编程语言最主要的元素。一个编程语言提供的基本数据类型不能太多。也不能太少。但实际上,大多数编程语言提供的基本数据类型都几乎相同。对于数据类型的选取将在下一篇文章中讲。

理解约定规则在编程中非常重要。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: