高中信息技术沪教版(2019)选修1 数据与数据结构3.了解数据类型和抽象数据类型优秀教学ppt课件
展开二、了解数据类型和抽象数据类型
五、抽象数据类型的表示
存储结构是指数据的逻辑结构在计算机中的表示,即数据元素及其之间的关系在计算机中的表示,也称为物理结构。
计算机进行教学管理需要做诸如学生信息的增、删,或学生成绩统计等工作。这些工作完成的前提是要把学生信息或成绩等数据储存在计算机内存中,同时要给出指令,“告诉”计算机针对不同的数据对象“做什么”和“怎么做”。 计算机的内存容量是有限的,而做两个个位数的加法或两个位数不同的小数的加法,显然需要的空间大小可以不同。计算机研究者通过对不同数据进行分类的方法—数据类型,来描述不同数据的集合,为不同类型的数据分配了大小恰当的内存空间。
所有高级语言都定义了一系列的数据类型。 以 Pythn语言为例,基本数据类型也可以分为:
数字型( numbers,包括整型int和实数型flat)字符串型(string)
元组(tuple)列表(list)字典(dict)
教学管理数据中,班级学生人数是整型,学生成绩是实数型,学生的姓名是字符串型等。
你还知道教学管理数据中:哪些是整型?哪些是实数型?哪些是字符串型?
除了上述基本数据类型外,Pythn语言还通过定义类(class)来实现结构类型。 例如,用“class student:”就可以定义包含学号、姓名等多个数据项的结构类型。这时,student就相当于是一种记录类型,student的变量(一般称对象)就可以存放学生信息数据元素了。
数据类型还有一个作用是定义了对数据的一些操作。这些操作在程序设计语言中是直接使用运算符或函数来实现的,如将班级学生人数相加得出年级学生人数,在Pythn中为T=a1+a2+a3+a4(假设有4个班级,每个班级的人数分别为a1、a2、a3、a4),这就是基于整数类型上的一种操作(加法运算)。计算机编程者在编程时,不需要关心整数在计算机中是如何表示的,计算机是如何分配相应的存储空间,如何实现加法操作的。
整数型、实数型、字符串型通常定义了哪些操作?你使用过哪些?
事实上,各种计算机,不管是大型机、小型机、PC、平板电脑、PDA,甚至是智能手机都拥有“整数”类型,也需要整数间的运算,实现方法可能有所不同,但在计算机编程者看来,它们都是相同的,原因就在于整数类型定义的数学特性相同。这就是抽象的意义。从这个层面来看,整型其实是——抽象数据类型。
其他数据类型是抽象数据类型吗?为什么?
抽象数据类型不仅仅指已经定义并实现的数据类(如整型、字符串型等),还可以是计算机编程者对现实问题进行抽象后,在设计软件程序时自己定义的数据类型。 以学生信息管理问题为例,对其进行抽象后,可以得出数据对象是学生信息这一数据元素的集合,此集合中数据元素之间的关系是一对一的线性关系。如果在此数学模型基础上定义插入、删除等一组基本操作,就形成一种抽象数据类型。该抽象数据类型可以如下所示:
ADT List: 数据对象:D={ai lai ∈ ElemSet, i=1,2,…,n,n>=0} 数据关系:R={
数据类型是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
数据类型用来说明一个数据在数据分类中的归属。它是数据的一种属性。这个属性限定了该数据的变化范围。数据类型是被定义在程序设计语言中的,尽管不同的高级语言所定义的数据类型不尽相同。
抽象是指抽取出事物具有的普遍性的本质。它是抽出问题的特征而忽略非本质的细节。是对具体事物的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留实现目标所必需的信息。
抽象数据类型( abstract data type,ADT)是指一个数学模型以及定义在此数学模型上的一组操作。
例如,将某两个班级的学生数据定义为上述抽象数据类型后,调用其基本操作(如下面代码中框出的部分)就可以实现将两个班学生数据的合并(用Pythn语言编写)。
1. Pythn中列表属于抽象数据类型吗?为什么?2.使用抽象数据类型有何好处?
数据类型是一组性质相同的值的集合及定义在此集合上的一些操作的总称。高级程序设计语言的每一个变量、常量、表达式都有一个所属的确定的数据类型。类型明显或隐含地规定了在程序执行期间变量或表达式所有可能取的范围,以及在这些值上允许进行的操作。 例如,某语言整数类型取值范围[-maxint,maxint]( maxint是依赖特定的计算机的最大整数),定义在其上的一组操作为:加、减、乘、除、整除和取模等。
按“值”的不同特性,高级程序语言中的数据类型可分为两类:
一类是非结构的原子类型,如整型、字符型等,原子类型的值是不可分解的;
一类是结构类型,是由若干成分按某种结构组成的,因此是可以分解的,并且每个成分可以是非结构的,也可以是结构的例如,定义一个记录类型,记录包含姓名、性别等。
抽象数据类型中对数据对象和数据运算进行了声明,对数据对象的表示和数据运算的实现进行了分离。
抽象数据类型的两个重要特征
用抽象数据类型描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口。
将实体的外部特征和内部实现细节分离,并且对外部用户隐藏其内部实现细节。
ADT<抽象数据类型名> 数据对象:<数据对象的定义> 数据关系:<数据关系的定义> 基本操作:<基本操作的定义>
按如下格式表示抽象数据类型
数据对象和数据关系用集合或自然语言来描述;基本操作用 Pythn语句描述具体格式如下所示:
def 基本操作名(参数表) #功能说明
例如,有理数抽象数据类型表示如右图:
ADT Ratinal: 数据对象:D={e1,e2│e1,e2均为整数} 数据关系:R={
抽象数据类型把实际生活中的问题分解为多个规模小且容易处理的问题,然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元,从而使具体实现过程隐蔽起来。 因此,抽象数据类型体现了程序设计中问题分离、抽象和信息隐蔽的特性。
假定把矩形定义为一种抽象数据类型,其数据部分包括矩形的长度和宽度,操作部分包括初始化矩形的尺寸、求矩形的周长矩形的面积。请完成矩形的ADT(抽象数据类型)描述。 提示:假定该抽象数据类型名用Rectangle(矩形)表示,定义矩形长度和宽度的数据用length和width表示,并假定其类型为浮点(flat)型,初始化矩形数据的函数名用InitRectangle表示,求矩形周长的函数名用 Circumference(周长)表示,求矩形面积的函数名用Area(面积)表示。
浙教版 (2019)选修1 数据与数据结构1.2 数据的组织优秀ppt课件: 这是一份浙教版 (2019)选修1 数据与数据结构1.2 数据的组织优秀ppt课件,文件包含12数据的组织课件pptx、12数据的组织教学设计doc等2份课件配套教学资源,其中PPT共38页, 欢迎下载使用。
2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件: 这是一份2020-2021学年3.探究点餐数据的计算机处理过程精品ppt课件
高中信息技术3.采用索引查找法查找商品精品ppt课件: 这是一份高中信息技术3.采用索引查找法查找商品精品ppt课件,文件包含项目九第三课时pptx、项目九第三课时doc等2份课件配套教学资源,其中PPT共41页, 欢迎下载使用。