第3单元 认识数据 知识点 2021—2022学年教科版(2019)高中信息技术必修1

文档属性

名称 第3单元 认识数据 知识点 2021—2022学年教科版(2019)高中信息技术必修1
格式 docx
文件大小 358.7KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2022-05-10 08:20:08

图片预览

文档简介

第3单元 认识数据
3.1数据编码
1、模拟信号与数字信号
按照取值特征,可以将信号分为模拟信号和数字信号。用传感器直接获得的信号一般为模拟信号,如声音、温度、压强等。模拟信号的值是随时间连续变化的,波形光滑。模拟信号的值称为模拟数据。
数字信号随时间的变化是非连续的,数字信号可以由模拟信号转换得来,数字信号的值即数字数据,直接用计算机所能理解的二进制表示,以方便计算机对其进行处理。
2、声音的数字化
我们不能把连续的音频信号存放在计算机中,必须将模拟声音数据转换为数字数据。将模拟声音数据转换为数字数据的这一过程,称为声音的数字化。通常先对模拟声音信号按给定的时间间隔进行采样,然后对采样数据进行量化,最后将量化后的数据用计算机能够存储和处理的二进制数值表示,即编码。
3、进制与数制转换
计算机外部的各种形式的数据经过编码后,都以二进制数的形式存储在计算机中。二进制数中只有0和1两个数字符号,其计数特点是“逢二进一”即1+1=10。计算机中存储数据的最小单位是二进制位,用比特(bit)表示,1比特能表示两种(21)状态(即0或1),2比特可以表示00、01、10、11四种(22)状态,3比特可表示八种(23)状态....计算机存储数据的基本单位是字节(Byte,简写为B),8比特构成1字节,1字节二进制数可表示2* (256)种状态。
在二进制数中,每一个数字在不同的位置上具有不同的权值,各位上的权值是基数2的若干次幂。比如二进制数10010,5个位置上的权值从右往左可以表示为: 将二进制数转换为十进制数时,只要将该二进制数的每个位置上的数字与其对应位置的权值相乘,然后求和即可。比如,把十进制非负整数转换为二进制数,可使用短除法,即“除二取余”法。例如,把十进制整数18转换为二进制数的过程如图3.1.7所示,结果为。
由于二进制数位数较多,书写不便,故常改用十六进制数表示。我国古代曾经在重量单位上使用过十六进制,如规定16两为1斤。十六进制需要使用16个不同的基本数字,除了阿拉伯数字0到9外,一般用字母A到F(或a~f)依次表示后续数字(相当于十进制数中的10~15)。十六进制的基本计数规则是“逢十六进1”,即F+1=10。一般地,十进制非负整数转换成R进制数(R≥2)采用“除R取余法”,把R进制非负整数转换成十进制数采用“按权展开求和法”。
4、文本数据的编码
文本数据是用来表示一定意思的一系列字符,包括字母、数字、标点符号、汉字等。
文本数据的编码通过对其中每一个字符进行编码实现。用于文本数据字符编码的方案有多种类型,其中ASCII码和Unicode是最为典型的两种编码方案。
1. ASCI码
ASCII码( American Standard Code for Information Interchange, 美国信息交换标准码)用7位(标准ASCII码)或8位(扩展ASCII码)二进制数表示一个字符。标准ASCII码字符集中定义了大小写英文字母、标点符号和数字等字符和符号,共128个。计算机内部用一个字节来存放一个ASCII码字符,最高位用0表示。例如,“A” 的ASCII码为01000001,即65。堂用的ASCII码如表3.13 所示
2. Unicode码
Unicode是为了解决传统字符编码方案的局限性而产生的。例如, 它可以用两个字节来表示一个符号,这样就有2的l6次方(65536)种不同的二进制编码,能表示很多国家的常用字。目前,Unicode还可以用更多字节来对字符进行编码。为了简化ASCII与Unicode之间的转换,Unicode的设计者还使其兼容ASCII码。原来用ASCII码能表示的字符,其对应的Unicode码只是在原来的ASCII码前加上8个0。比如,“a” 的ASCII码是01100001,而它的Unicode码是000000001100001。
计算机要处理汉字,必须对汉字进行编码,显然每个汉字至少需要两个字节。我国先后制定了多个汉字编码方案:(1)GB2312- 1980字符集共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母等在内的682个字符;(2)GBK字符集,兼容GB2312-1980标准,收入21003个汉字,883个符号,共计21886个字符; (3)GB18030-2000字符集,包含GBK字符集和CJK统一汉字扩充A的汉字,共计27533个汉字; (4)GB18030- 2005字符集,在GB18030-2000的基础上,增加了CJK统一汉字扩充B的汉字及其他汉字,共计70244个汉字。
Unicode字符集,是全球可以共享的编码字符集,涵盖了世界上主要文字的字符,其中包括简繁体汉字,共计74686个汉字。如汉字“男”的Unicode编码为30007(十进制),用十六进制表示为7537,用二进制表示为0111010100110111。
3.2 数据与结构
A、数据类型
数据类型用来定义一系列值及应用于这些值的一系列操作。比如,在Python语言中,有整数、浮点数、字符串、布尔等数据类型。整数类型的范围几乎仅受内存限制,能够进行加、减、乘、除等多种计算操作。
大多数程序设计语言都定义了两类数据类型:简单数据类型和复合数据类型。简单数据类型不能分解成更小的数据类型,复合数据类型则由简单数据类型或者复合数据类型组成。在Python语言中,整数、浮点数、字符串、布尔属于简单数据类型,列表、字典等属于复合数据类型。
订单数据中的商品名称可以抽象为字符串类型的数据,是一个基本数据项,商品数量可以抽象为整数类型的数据,也是一个基本数据项。
每个订单数据包括商品名称、单价、数量、金额、收货地址等基本数据项,所以订单数据需要抽象为复合数据类型。
如图3.2.1(a)所示的订单数据用Python的列表存储,列表名称为OrderList。OrderList=["2374761814130XXX","语文:生命的,文学的,美学的",34.66]列表中前两个数据是字符串类型,最后一项是浮点数类型。我们还可以把很多订单数据排列在一起,形成订单表,用更复杂的列表存储。
B、数据结构
数据结构是存在特定关系的数据元素的集合。在解决有些问题时,一些相关联的数据将集中在一起,形成一个数据的集合,这种集合能够单独或作为一个整体被访问和处理。
C、线性数据结构
线性数据结构又称为线性表。在线性数据结构中,除首元素没有前趋元素、尾元素没有后继元素外,其他元素都只有一个前趋元素和一个后继元素,如图3.2.2所示。线性表中数据元素之间是一对一的关系。
D、队列
队列是一种有限制的线性结构,它的数据元素只能在一端依次添加(进队),在另一端依次删除(出队)。典型的例子如超市里排队付款的队伍。
许多程序设计语言定义了复杂数据类型,以实现对数据结构更高层级的抽象。复杂数据类型可以封装并隐藏数据结构中的操作细节,让程序设计者更多地关注数据结构能做什么,便于利用数据结构解决问题。
Python中的列表数据类型,可以实现线性结构组织的数据元素的存储和操作。列表的使用者只需要知道列表上有哪些可用的操作,而不需要知道这些操作是如何进行的。
比如在上述代码中,listque是列表类型的数据,存放了一组字符串类型的数据,表示订单编号。我们可以通过对应的方法对列表进行操作:pop(0)方法可以删除列表的首元素,append方法可以在列表尾部添加一个数据元素。利用列表,我们可以模拟队列中数据元素进队和出队的操作。
E、树结构
树结构是一种具有层次关系的非线性结构。树是由n(n≥0)个节点组成的有限集合。若n=0,则称为空树。任何一个非空树均满足以下两个条件: (1)仅有一个称为根的节点;(2) 当n>0时,其余节点可分为m ( m≥0)个互不相交的有限集合,其中每个集合又是一棵树,并称为根的子树。在图3.2.3中,节点A为根节点,B、C、D为A的子树的根节点。同理,E、F、G是B的子树的根节点,B是E、F、G的父节点。在树结构中,数据元素之间是一对多的关系。
快递到达目的地城市后,物流图的结构呈树状,如图3.2.4所示。
F、图结构
图结构是由一组节点(称为顶点)和一组节点间的连线(称为边或弧)构成的一种数据结构。图结构中的每个顶点都可以与其他顶点有边相连,图结构中数据元素之间是多对多的关系。
图3.2.6表示的是商品从供货点到收货点的派送过程的图结构。图3.2.7也是一个图结构,其中,标为“1”的顶点与两条边相连,顶点“4”与“2”“8”“9”相连。
在物流网络中,分拨中心、配送中心、货物需求点等可以抽象为图的顶点,城市道路、各级铁路等可以抽象为图的边,如城市以及城市之 间的运输道路就是图结构。利用图结构,我们还可以解决物流中的许多问题,如道路网络分析、车辆运营安排等。
某同学网购的书已经到达家附近的快递门店,需要他自己去取。不巧的是,这次购买的三本书是三个不同的物流公司派送的,他家与各快递门店的位置如图3.2.8所示。
下图可以更清晰地知道数据间的关系,从而解决问题。
(在图3.2.9中,每条边上的数值表示两个位置间的步行时间,称为边的"权”,这样的图称为“加权图”)
从起点出发,把当前可以到达的下一个位置列举出来,再从列举出的新位置出发,继续列举下一步可以到达的位置,以此类推,直到返回起点。我们把所有可能的做法用图形描述,如图3.2. 10所示,图下方圆圈中的数值是该走法的总用时。我们发现,分析过程的图形是树结构,树中的节点表示当前所在的位置,边表示选择的线路。利用树结构,我们能够更清晰地实现不重复、不遗漏地列举所有做法,更利于通过比较得到最优解。
3.3数据与系统
1、图形用户界面
图形用户界面(Graphical User Interface,GUI )又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。在Python语言中,tkinter是实现图形用户界面的模块,可以快速创建GUI应用程序。我们需要先导人模块,上面所示的代码用“from tkinter import*”导人tkinter模块,然后就可以运用相应代码创建矩形容器(Frame)、文本框(Entry)、命令按钮(Button)、文本标签(Label)等交互对象。
在现代程序设计中,我们用“对象”建立计算机世界的实体与客观世界的实体相一致的映射关系,问题的解决方案可以用一些彼此交互的对象来形象化表示。比如在“旅行线路”例子中,我们利用Python提供的按钮类创建按钮对象,通过单击按钮的交互方式完成代码的执行过程。示例:将以下旅行线路“桂林市区一龙脊梯田一漓江漂流一骑行之旅一遇龙河漂流。”添加至“旅行线路.txt”文本中
在面向过程的程序设计中,我们关注的是各种类型的数据及其操作;而在面向对象的程序设计中,我们将数据及其操作隐藏细节后封装为类,函数调用式的计算演变为对象之间的交互。
2、文件
在解决问题的过程中,我们可以根据需要将数据组织在--起形成 队列、树或图等逻辑结构,这时的数据一般存储在内存中,当退出程序时,相关数据也将丢失。如果需要更持久地存储数据,我们可以将数据以文件的形式存储到外存储设备中。“线路数据”是用文件的形式存储在计算机的磁盘里的。
文件是存储在外存储设备中的相关数据的集合。
3、Python读写文本文件
在Python语言中,用open函数把外存储器里的文本文件( .txt)打开,用write方法将内存中的数据存储到外存储器的文件中,文件操作结束时一定要用close方法关闭文件。
Python还提供了读写电子文档和电子表格等多种类型文件的模块,可以很方便地建立起不同计算工具间的联系。
在数据管理技术的发展历程中,文件的使用有助于长期保存数据,并且实现由专门的软件对数据进行管理,从而减轻人工管理数据的负担。数据的存储传统上是使用单独的没有关联的文件。将一些文件建立关联,形成数据库文件。
4、数据库
在日常生活中,我们通常用电子表格软件来管理数据。但电子表格软件中的表是有行数限制的,而且在多人共享和联表查询方面也存在不足,因此当数据量比较大,且管理比较复杂时便需要采用更科学的数据管理方法。数据库是以一定的组织方式存储在计算机中的相互关联的数据集合。
5、数据表
图3.3.4
在数据库中,数据是以二维表的形式组织存储的称为表。以如图3.3.4所示的“武汉至成都车次”表为例,表中的一列称为一个字段,一个字段对应车次实体的一个属性,每个字段都有一个名字,称为字段名,如车次编号、出发站等。表中的一行称为一条记录, 一条记录对应于一个车次实体,保存有关实体属性的数据。可以唯一确定一条记录的字段称为主键,如车次编号。若千个车次数据的集合就组成了“武汉至成都车次”表。我们可以对数据表进行插入、删除、更新等操作。
需要指出的是,数据库中的表与表之间也可以是相互关联的。为不同表中的两个字段建立关联后,两表中的记录就可以通过这个关系联系在一起。比如,在图3.3.4所示的两个表中,换乘站既是前段车程的到达站,又是下段车程的出发站,可以通过这一点建立关系。
6、数据库管理系统
在数据库技术中,数据是如何被科学地组织和存储的 又是如何被高效地获取和维护的 完成这些任务的是一个系统软件一数据库管理系统。
数据库管理系统是定义、创建、维护数据库的一种工具。它允许用户管理和控制数据库中的数据。常见的数据库管理系统有Sybase、ORACLE、MySQL、Access等 。
关系就像绳子将两个“表”联结在一起,我们可以利用“查询”面板中的“查询设计”选项按照提示创建选择查询,得到查询结果。但查询结果并不一定理想,比如没有考虑换乘时间的合理性等。武汉三个火车站之间利用地铁换乘,大约用时半小时。为此,修改查询表达式为:
SELECT厦门至武汉车次.*,武汉至成都车次.*
FROM厦门至武汉车次INNER JOIN武汉至成都车次ON厦门至武汉车次.到达时间+0.05<武汉至成都车次.出发时间
式中0.05的单位为天,即0.05*24小时=1 .2小时,预留了武汉三站之间的换乘时间及在火车站的出站、进站时间。
执行查询,结果如图3.3.6所示。在图中,“厦武”为“厦门至武汉”的简称,“武成”为“武汉至成都”的简称。这个结果可以作为换乘方案。
7、查询准则
如果只是简单地查找某个字段为特定值的记录,只要在该字段对应的“条件”栏中输入该值即可,如果不仅是查找某个特定值,在准则中可以使用表达式。在表达式中可通过操作符设置查询范围。
数据库的建立、使用和维护等工作仅靠数据库管理系统还远远不够,还要有专门的人员来完成,这些人被称为数据库管理员。数据库管理员通过数据库管理系统可以对数据库进行操作和维护。但对于广大普通用户来说,很难像专业的数据库管理员那样操作数据库,而具有良好交互性的数据库应用系统可以满足人们简单、方便地使用数据的需求。
8、数据库系统
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、数据库应用系统、数据库管理员和用户组成的存储、管理、处理和维护数据的系统。数据库主要用于存储数据,需要足够大的内存储器和外存储器等硬件平台的支持。软件部分除了操作系统和数据库管理系统外,还包括支持特定应用环境开发的软件工具以及开发完成的数据库应用系统。12306网站是一个大型数据库应用系统,其他如各类财务管理系统、人事管理系统、图书管理系统等软件也都是数据库应用系统。
设计数据库应用系统时,我们一般自顶向下进行。首先设计总体结构,然后再逐层深人,直至进行每一个模块的设计。我们需要先大体地勾画出系统以及每个模块大致的计算机处理流程,将头脑中构想的处理过程描述下来。比如,首先单击“成员管理”按钮,然后出现“成员管理”子窗口,利用该子窗口可以添加成员信息、修改成员信息和删除成员信息...。 “旅行小助手系统”还可能包含“旅行记录管理”“旅行线路管理”等模块。根据处理过程,可以设计系统功能和相关界面。
利用Python访问Access数据库一般可分为以下5个步骤:
(1)建立与数据库的连接;
(2)根据需要产生记录集;
(3)访问记录集,处理数据;
(4)根据需要把处理好的数据更新到数据库中;
(5)断开与数据库的连接。
数据库应用系统的设计一般包括系统总体结构设计、代码设计、数据库(文件)设计、输人/输出( I/O)设计、模块功能与处理过程设计等步骤。“旅行小助手系统”在完成了系统界面设计和数据库设计之后,还需要经过编写应用程序、调试等环节才能成为真正的应用系统。
3.4加密与解密
1、密码: 密码是指用来核对用户ID以验证用户就是本人的一组字符。
2、创建安全密码的一般技巧
使用长度不少于8个字符的密码。密码长度越长越不容易被破解。
在可能的情况下,尽量使用字母、数字和特殊字符(如$、#)相结合的密码。
不要使用电话号码、身份证号码或生日等信息作为密码。
不要使用整个用户ID或用户ID的一部分作为密码。
不要使用字典中能找到的词语作为密码,即使是字母次序颠倒过来的常用词语也不可以。
●加密
自古以来,在管理国家、指挥战斗或是经济来往中,都需要高效、安全的数据通信系统。古人就已会用很多办法将数据伪装起来,使得只有联络好的数据接收者才能读懂。比如,将数据刻在木板上,然后再覆上一层蜡,使其成为一个看上去很普通的刻写板;使用一套尺寸不等、形状各异的“阴符”,每支符都表示特定的含义等。这些都是数据的加密。
加密就是将原始信息(数据)隐匿起来,使之在缺少特殊信息(数 据)时不可读。原始信息(数据)称为明文,加密后的信息(数据)称为密文。将密文还原成明文的过程称为解密(或解码)
●加法密码
加法密码又被称为移位密码。在加法密码算法中,明文中的所有字母都在字母表上向后(或向前)按照--个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D, B变成E,以此类推,X将变成A,Y变成B, Z变成C。
恺撒密码作为--种最为古老的对称加密体制,在古罗马的时候已经很流行,它是加法密码的典型代表。
用Python语言实现加密算法时,明文和密文都被抽象为字符串类型的数据,Python中的字符串由一串字符组成,用引号引起来表示,比如“abCEd”。类似于列表的操作,我们可以指向或操作字符串中的某一个字符,比如c[0]表示字符串中的第一个字符。 我们还可以用Python系统函数对数据进行特定的操作,len函数可以获取字符串中字符的个数,ord函数可以将字符类型的参数转换为对应的整数值,chr函数可以将整数类型的参数转换为对应的字符。
了解密码安全与加密、解密的技术能够帮助我们保护个人隐私。同时,我们也要从自己做起,遵守相关法律和必要的道德规范,共同维护健康、良好的数据环境。