资源简介 (共16张PPT)1.2 对实际问题的数据抽象第一章 认识数据和数据结构计算机越来越多地用于控制、管理及数据处理等非数值计算的工作,这些工作的操作对象及其关系是一些具有一定结构的数据,无法用数学方程进行描述。因此,我们必须对实际问题进行数据抽象,分析待处理对象的特性以及各处理对象之间存在的关系,建立问题的数据模型。前 言目 录COMENTS1.2.1 抽象问题中的数据11.2.2 分析数据之间的关系21.2.3 建立数据模型31.2.1 抽象问题中的数据1从问题中抽象出一个适当的数学模型设计一个解决此数学模型的算法编写程序调试分析问题提取操作对象找出关系用数学语言加以描述例如:鸡兔同笼问题(鸡有1头2腿,兔有1头4腿,已知头数和腿数,求鸡兔只数),其数学模型是一个一元二次方程组,设计一个算法解决此方程组,并编程实现,就解决了这个问题。但是有许多非数值计算的问题,无法用数学方程来表示操作对象。用计算机解决问题,一般要经历以下过程:当前,计算机已成为高效处理数据的工具。数据是计算机程序处理的对象,通过计算机程序处理数据,速度快、效率高、出错少。用数据来表示现实世界的事物及其活动,让这些事物可以在计算机中存储、计算、处理,是实现计算机解决问题的基础。探究活动--超市数据明确问题解决目标对于“超市客户”这一特定事物,可从“分析数据以便定位超市经营策略”的需求出发,抽取其中包含的数据。探究活动--超市数据搜集资料,进行分析,探究问题的解对于“超市客户”这一特定事物,可从“分析数据以便定位超市经营策略”的需求出发,抽取其中包含的数据。研究表明,对超市经营有影响的各种因素中,人的因素起重要作用,“人”的属性很多,“超市客户”的属性则需要筛选,可以从超市客户管理需要的角度就行筛选。消费水平 跟踪联系 消费欲望 消费习惯姓名 √年龄 √性别 √职业 √地址 √家庭人数 √联系方式 √表1-2 “超市客户“属性的筛选探究活动--超市数据根据上述分析,超市的客户管理系统要做到准确推送商品信息,跟踪目标客户的消费情况,确定超市的经营定位,则姓名、性别、联系方式、年龄、职业、地址等属性应列入数据表的考虑范围,如表1-3所示。事物 属性人 姓名、年龄、性别、家庭人数、收入、职业、教育状况、身高、体重、视力、联系方式、地址......目的 需抽取的数据1、准确推送商品信息 姓名、联系方式、地址2、确定超市的经营定位 年龄、职业、收入探究活动--超市数据我们已经知道,数据是事实或观察的结果,用来表示客观事物的属性。抽取出来的属性中,姓名、性别、职业等属性,直接采用收集到的数据如“张达”“男”“公务员”就可以了;而对于“年龄”这一项,因为年龄会随着时间不断变化,因此可以换成同样可以区分年龄大小但值固定的“出生年月”来表示;“联系方式”属性则采用了现在最普遍使用的“手机号码”来表示。最后,得到如表1-4所示的超市客户表。姓名 性别 出生年月 职业 手机号码 地址 消费记录张达 男 197401 公务员 13712345678 ××× ××× 男 197509 工人 13523456789 ××× ×××... ... ... ... ... ... ...现实世界的事物纷繁多样,事物本身具备多种属性。从复杂多样、表现各异的现实世界的事物到规则有序的计算机世界的数据,让现实世界的问题在计算机中存储、计算、处理,需要一个转换的过程:从解决问题的需要出发,抽取出与问题解决相关的属性,用合适的数据表示这些属性;理清数据间的关系,建立数据模型。这个过程就是数据抽象的过程。1.2.2 分析数据之间的关系2计算机处理的数值计算问题能直接抽象出数学模型,但更多的非数值计算的问题、数据间的复杂关系并不能直接用数学模型表示。这些复杂的关系中,最基本的关系有三种,即线性关系、层次关系和网状关系。123484950......1、线性关系图1-9 顺序排列的学号从图1-9中可以看出,数据间的关系比较简单,每个数据仅有一个直接前驱和一个直接后继(第一个数据仅有后继,最后一个数据仅有前驱)。数据间的这种关系称为线性关系。如表1-4的“超市客户表”,表中的各行数据之间就是线性关系。线性关系是计算机中最常见的数据关系。1.2.2 分析数据之间的关系2贾代善贾赦贾琏贾迎春贾政贾元春......2、层次关系图1-10 《红楼梦》家族部分成员关系图1-10就像一棵倒立的树。每个结点(圆圈)有且仅有一个前驱(根除外),有任意多个后继(叶子可以看作具有0个后继的结点)。这种数据间具有的一对多的联系称为层次关系,具有层次关系的数据表示为一棵倒立的树。现实生活中也有不少例子,其数据间的关系为层次关系。例如,记录博弈过程的棋盘数据之间就是层次关系;学校里年级、班级的组织架构就是层次关系;班级成员中的班长、组长、组员间也构成层次关系。贾宝玉贾珠贾探春贾环根叶子1.2.2 分析数据之间的关系23、网状关系随着经济的发展,城市之间的交通发达,人们出行的选择变得多样化。城市之间的交通联系可用如图1-11所示的关系来表示。在图1-11中,数据间的联系是多对多的:每个数据既有多个前驱,也有多个后继。这种数据间的多对多联系称为网状关系。例如,学校教育教学活动中涉及的人员之间的关系就是网状关系:一个教师同时教多个学生,一个学生也同时有多个教师授课。城1城2城3城4城5图1-11 城市间的交通关系综合以上三个例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是用诸如表、树、图之类的数据模型进行描述。1.2.3 建立数据模型3数据模型是客观事物及其关系的数据描述,是对客观事物进行数据抽象的结果。当描述客观事物属性的数据被抽取出来,数据间的关系就能理清,建立数据模型也就水到渠成了。建立数据模型的过程如图1-12所示。图1-12 建立数据模型的过程1.2.3 建立数据模型3具有线性关系的数据,其数据模型是表——如超市客户表、商品表、各种场景下的学生表等。线性关系是计算机中最常见的数据关系,表是计算机中最常见的数据模型。在本教科书的后续章节中将要学习到的链表、队列、栈、字符串,其数据模型都是表。具有层次关系的数据,其数据模型是树——如家族成员树(如图1-10所示)、班级成员树、学校机构树等。具有网状关系的数据,其数据模型是图——如城市交通图(如图1-11所示)、学校人员图、(师生)教学图等。1.2.3 建立数据模型3表中的每一行,树、图中的每一个结点都被称为一个数据元素(Data Element)。数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。有时候一个数据元素可由若干个数据项(Data Item)组成。例如表中每个客户信息是一个数据元素,而客户信息中的每一项(如姓名、出生年月等)为一个数据项。数据项是数据的不可分割的最小单位。数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。例如,整数数据对象是集合N=(0, 1,-1,2,-2,3,-3,…。今日任务模型 生活中的事物 数据模型示意图表树图在小组中交流,列举生活中包含表、树、图模型的事物,画出数据模型示意图 展开更多...... 收起↑ 资源预览