2.1.1 数据是对现实的抽象

利用计算机解决现实问题时,首先需要将问题所涉及的信息和处理过程表示成计算机能

够接受的形式。如何建立现实问题的计算机表示呢?显然不能像照相机那样,追求将现实景 物事无巨细地复制到胶卷或 CCD 上,因为一个复杂问题所涉及的信息非常多,完全表示它 们几乎是不可能的。就拿照相来说,胶卷上的图像能表示事物的重量和人物间的亲属关系 吗?一方面无法表示问题的所有信息,另一方面也没有必要建立问题的完美表示。问题所涉 信息中一般只有部分信息与问题的解决有关,因此只需对现实问题进行抽象,抽取一部分与 问题求解有关的信息进行表示,而忽略那些与问题求解不相干的信息。可见,抽象是对问题 进行简化的重要手段。

读者对“数据”这个术语肯定不陌生,但若要问究竟什么是数据,恐怕多数人都很难准 确回答。在现实生活中,数据大体上是指各种事实或数值,当今使用更多也更时髦的术语是 “信息”。而在计算领域,我们将现实世界中的事实或信息用编程语言提供的符号化手段进 行表示,这种符号化表示称为数据(data)。

假设我们测得当前气温是摄氏 35 度,显然这是现实世界的信息。为了用计算机解决某 个涉及温度的问题,就需要将温度信息用计算机能接受的方式表示出来。例如可以用整数 “35”表示,也可以用整数“95”表示(假如采取华氏温标的话),还可以用文本“摄氏 35 度”表示。这几种表示都是编程语言支持、计算机能理解的形式,具体采用哪种形式来表示 温度取决于程序打算对温度数据进行什么处理,通常都会以数值数据来表示温度信息,以便 对温度进行数学计算。

又如,假设我们要用计算机解决学生信息管理的问题,就需要在计算机中用数据来表示 现实世界中的学生。这个数据是对学生的抽象,例如可能包括学生的学号、姓名、年龄等信 息,而不大可能包括学生的发型、是否追星族等与问题求解无关的信息。因此,现实中的学 生张三可能最终被抽象表示成计算机中的数据(2013001,张三,18),参见图 2.1。

2.1.1 数据是对现实的抽象 - 图1

图 2.1 数据是对现实的抽象

总之,为了用计算机解决一个问题,必须先对该问题进行抽象,定义问题在计算机中的

数据表示。数据表示的选择,必须依据将对数据施加的操作来考虑,以便将来能够方便、高 效地处理数据。