2.1.1 数据是对现实的抽象
利用计算机解决现实问题时,首先需要将问题所涉及的信息和处理过程表示成计算机能
够接受的形式。如何建立现实问题的计算机表示呢?显然不能像照相机那样,追求将现实景 物事无巨细地复制到胶卷或 CCD 上,因为一个复杂问题所涉及的信息非常多,完全表示它 们几乎是不可能的。就拿照相来说,胶卷上的图像能表示事物的重量和人物间的亲属关系 吗?一方面无法表示问题的所有信息,另一方面也没有必要建立问题的完美表示。问题所涉 信息中一般只有部分信息与问题的解决有关,因此只需对现实问题进行抽象,抽取一部分与 问题求解有关的信息进行表示,而忽略那些与问题求解不相干的信息。可见,抽象是对问题 进行简化的重要手段。
读者对“数据”这个术语肯定不陌生,但若要问究竟什么是数据,恐怕多数人都很难准 确回答。在现实生活中,数据大体上是指各种事实或数值,当今使用更多也更时髦的术语是 “信息”。而在计算领域,我们将现实世界中的事实或信息用编程语言提供的符号化手段进 行表示,这种符号化表示称为数据(data)。
假设我们测得当前气温是摄氏 35 度,显然这是现实世界的信息。为了用计算机解决某 个涉及温度的问题,就需要将温度信息用计算机能接受的方式表示出来。例如可以用整数 “35”表示,也可以用整数“95”表示(假如采取华氏温标的话),还可以用文本“摄氏 35 度”表示。这几种表示都是编程语言支持、计算机能理解的形式,具体采用哪种形式来表示 温度取决于程序打算对温度数据进行什么处理,通常都会以数值数据来表示温度信息,以便 对温度进行数学计算。
又如,假设我们要用计算机解决学生信息管理的问题,就需要在计算机中用数据来表示 现实世界中的学生。这个数据是对学生的抽象,例如可能包括学生的学号、姓名、年龄等信 息,而不大可能包括学生的发型、是否追星族等与问题求解无关的信息。因此,现实中的学 生张三可能最终被抽象表示成计算机中的数据(2013001,张三,18),参见图 2.1。
图 2.1 数据是对现实的抽象
总之,为了用计算机解决一个问题,必须先对该问题进行抽象,定义问题在计算机中的
数据表示。数据表示的选择,必须依据将对数据施加的操作来考虑,以便将来能够方便、高 效地处理数据。