导图社区 计算机
这是一篇关于计算机的思维导图,包含计算机的概述、网络与安全、数据组织、算法与程序设计等。希望可以对大家有所帮助。欢迎点赞收藏哦~
编辑于2023-12-10 19:18:11计算机
计算机的概述
1、计算机的发展史
1.1 计算机的史前时代
1.1.1 石头计算到算盘
公元前3000年的古埃及人用结绳来记录土地面积和收获的谷物。
公元前2000年的美索不达米亚人用泥板计数,这块泥板上的契形文字代表25。
我国古代数学家祖冲之就是用算筹计算出圆周率值介于3.1415926和3.1415927之间。
算圣刘洪及其发明的珠算盘。珠算被称为我国“第五大发明”,最早记录于汉朝人徐岳撰写的《数术记遗》-书里。
1.1.2 计算尺和计算器
John Napier(1550-1617)约翰·纳皮尔于1612年发明出纳皮尔算筹
史上第一台商用计算器Casio14-A于19957年被发明出来
1.2 机械式计算机
1.2.1 契卡德计算机
1960年,契克卡德家乡人根据示意图重新制作的契克卡德计算机:能做6位数加减法,设置了某种“溢出”响铃装置;机器上部附加套一套圆柱型“纳皮尔算筹”,因此也能进行乘除运算。
1.2.2 帕斯卡加法机
保存在巴黎国立工艺博物馆的帕斯卡加法机,1642年发明:机器由系列齿轮组成的装置,外壳用黄铜材料制作,是一一个长20英寸、宽4英寸、高3英寸的长方盒子,面板上有一-列显示数字的小窗口,旋紧发条后才能转动,用专用的铁笔来拨动转轮以输入数字。
1.2.3 莱布尼茨乘法机
1674年,莱布尼茨发明乘法机。这是第-台可以运行完整四则运算的计算机,长100厘米、宽30厘米、高25厘米,主要由不动的计数器和可动的定动。[公元1700年左右,莱布尼茨从位友人送给他的中国“易图”(八卦)里受到启发,悟出了二进制数之真谛,率先提出了二进制的运算法则。]
1.2.4 “编织”的程序
明代宋应星所著《天工开物》中记载的小花楼提花机
英国曼切斯特“科学与工业博物馆”中是杰卡德编织机(1805)年发明
布乔的穿卡片思想在杰卡德的自动编织机上实现——程序控制思想的萌芽
1.2.5 差分机和分析机
1834年,巴贝奇提出通用计算机“分析机”构想,但直至他去世也为曾制成
1.2.6 手摇计算机
1873年,弗兰克·鲍德温发明了手摇计算机
1.3 从机械到电子的进程
1.3.1 穿针制表机
美国著名统计专家——赫尔曼·霍列瑞斯发明了自动制表机
1.3.2 电子文明的曙光
1904年,英国青年工程师约翰·弗莱明发明了真空二极管
1906年,美国人李·德·福雷斯特发明能起放大作用的真空三极管
1.3.3 冲击最后的技术壁垒
Z系列计算机
MARK系列计算机
1.4 电子计算机的发展历史
第一代 1946年~20世纪50年代末
主要元件:电子管
速度(次/秒):5千~1万
体积巨大, 运算速度较低,耗电量大,存储容量小;主要用来进行科学计算
第二代 20世纪50年代中~20世纪60年代中
主要元件:晶体管
速度(次/秒):几万~几十万
第三代 20世纪60年代中~20世纪70年代中
主要元件:中、小规模集成电路
速度:几十万次~几百万次
第四代 20世纪70年代中~至今
主要元件:大规模和超大规模集成电路
速度:几千万次
几百万亿次
1.5 奠定现代计算机理论基础的重要人物和思想
1.5.1 布尔及逻辑代数
1.5.2 香农及计算机开关电路
1.5.3 图灵、图灵机及图灵测试
1.5.4 阿塔纳索夫及ABC计算机
1.5.5 维纳及计算机设计五原则
1.5.6 冯·诺依曼及诺依曼结构
1.6 计算机在中国
中国的计算机事业开始的标志是1956年6月14日,毛泽东主席等中央领导同志在怀仁堂草坪接见了参加规划的几百位专家,批准了我国著名的12年科技规划,选定了“计算机、电子学、半导体、自动化”作为发展规划的四项紧急措施,批准中国科学院成立计算技术、半导体、电子学及自动化四个研究所。
1956年8月25日,中国科学院计算技术研究所筹备委员会成立,著名数学家华罗庚任主任,我国计算机事业由此起步。
1.7 计算机的发展趋势
1.7.1 高性能计算
银河-Ⅱ十亿次巨型计算机
曙光4000A超级计算机
长城至翔刀片式服务器
1.7.2 普适计算
含义:无所不在的计算
特征
user-centeric:以人为中心的计算。
invisibility:不可见的计算。
access anything by anybody via any devices, anywhere anytime:在任何时间和地点,人们通过任何设备,访问任何信息。
hundreds of handheld and wearable computers:许多手持式和可穿戴式计算机。
hundreds of wireless computing devices per person per office, of all scales:大量遍布在每个办公室、每个人的,各种规格的无线计算设备。
hundreds of devices to sense and control appliances:许多传感设备和控制设备。
典型项目
麻省理工学院的Oxygen项目
Microsoft公司的Easy Living项目
AT&T实验室和英国剑桥大学合作的研究项目Sentient Computing
卡内基梅隆大学的Aura 项目
乔治亚理工学院的The Aware House项目
1.7.3 下一代计算机
生物计算机
光计算机
量子计算机
2、计算机组成与工作原理
2.1 计算机常用的数制及机内信息表示
2.1.1 常用数制
十进制
二进制
八进制
十六进制
2.1.2 数值数据的表示
整数的表示
无符号整数
有符号整数
小数的表示
定点表示
浮点表示
2.2 门和电路
2.2.1 门
对电信号执行基础运算的设备,接受一个或多个输入信号,产生一个输出信号。
基本门
非门
与门
或门
异或门
与非门
或非门
具有更多输入的门
门的构造
现代计算机中的门电路是由晶体三极管构成的。
2.2.2 电路
组合电路:把一个门的输出作为另一个门的输入
时序电路
集成电路:又称芯片,是嵌入了多个门的硅片
小规模集成电路 SSI 1~10门
中规模集成电路 MSI 10~100门
大规模集成电路 LSI 100~100000门
超大规模集成电路 VLSI 多于100000门
2.3 计算机硬件组成
2.3.1 冯·诺依曼结构
运算器:负责各种算术运算和逻辑运算。
控制器:整个计算机的指挥中心,负责往其他部件发送控制命令。
存储器:计算机的记忆部件。
输入设备:负责将程序和数据 输入计算机。
输出设备:负责将程序执行结果输出计算机。
2.3.3 总线访问
CPU通过总线访问主存或外设,称为总线访问或总线操作。
CPU的动作不外乎内部操作和总线操作两种。
CPU内部操作并不需要通过总线,非常快。
2.4 计算机的工作工程
2.4.1 指令执行过程
取指令:CPU根据程序计数器PC的内容,将下一条即将要执行的指令从主存复制到指令寄存器IR中。复制完成后,程序计数器PC的内容自动加1,指向下一条指令。
译码:对IR中的指令代码进行译码分析,确定是什么类型的指令。
执行指令:根据指令译码的结果,控制单元向有关的功能部件发送为执行该指令所需要的一切控制信号,以正确执行该指令。
2.3.2 计算机系统的硬件组成
中央处理单元
算术逻辑单元(ALU):进行算术运算和逻辑运算的部件
寄存器组(Register File):一系列寄存器
数据寄存器:用于存放参与运算的操作数和运算的结果。
程序计数器PC(指令计数器):它给出程序中下一条指令在存储器中的单元地址。
指令寄存器IR:保存当前正在执行的指令,在指令执行过程中它决定指令的操作性质及参与操作的操作数地址等。
控制单元(CU):计算机的管理机构和指挥中心,它协调计算机的各部件自动地工作。
存储器
Cache和主存构成Cache存储系统,其目的是为了提高速度,解决CPU与主存之间速度不匹配的矛盾。
主存和辅存构成虚拟存储系统,其目的是弥补主存容量的不足。
输入设备
输入设备(Input Device)的作用是将参加运算的数据和程序送入计算机,并将它们转换成计算机能识别的信息,一般均通过接口主机连接。
输出设备
输出设备(Out Device)是将计算处理的结果转化为人或其他设备所能识别或接收的信息形式的装置,也需通过设置接口主机连接。
总线
总线(Bus):连接计算机各部分之间进行信息传送的一组公共传输线
2.5 计算机系统的组成
计算机系统
硬件系统
主机
中央处理器
控制器
运算器
内存处理器
随机存储器
只读存储器
外部设备
输入设备
输出设备
外存设备
软件设备
系统软件
操作系统
语言处理系统
数据库管理系统
网络软件系统
分布式软件系统
人机交互软件系统
各种服务性支持软件
应用软件
科学计算机
数据处理程序
工程设计程序
过程控制程序
......
网络与安全
3、计算机网络
3.1 网络的起源
1.1.1 联机系统阶段:利用集中器实现多路复用
1.1.2 网络互联阶段:计算机网络互连
1.1.3 标准化网络阶段:国际标准化组织ISO于1977年成立了专门的机构来研究网络 互连问题,在1984年正式颁布了“开放系统互连参考模型”的国际标准。
1.1.4 网络互连与高速网络: 1993年美国宣布建立国家信息基础设施后,全世界许多国家纷纷制订和建立本国的NII,从而极大地推动了计算机网络技术的发展
3.2 网络的定义
计算机网络就是利用通信设备和线路将地理位置分散的、具有独立功能的多个计算机连接起来,按照以功能完善的网络软件(即网络通信协议、信息交换方式和网络操作系统(Network Operating System, NOS)等)进行数据通信,以实现网络中资源共享和信息传递的系统。
3.3 数据传输
有线介质
双绞线
同轴电缆
光缆
无线介质
短波
无线地面微波接力通信
卫星通信
VSAT卫星通信
红外线通信和激光通信
宽带
带宽(bandwidth)是对通信信道容量的度量。它表示在给定时间内有多少信息通过通信信道。
语音带
中带宽
宽带
协议
定义了在两个或多个通信实体之间交换的报文格式和次序,以及在报文传输、接收或其他事件上所采取的动作。
3.4 网络的分类
按距离划分
广域网
城域网
接入网
局域网
按网络功能划分
电路转换
报文转换
分组转换
混合转换
3.5 网络的拓扑结构
概念:采用拓扑学方法抽象出的网络结构称为计算机网络的拓扑结构。
链路:
链路是两个节点间的连线。
链路分“物理链路”和“逻辑链路”两种,前者是指实际存在的通信连线,后者是指在逻辑上起作用的连线。
链路有容量,它是用来表示每个链路在单位时间内可能接纳的最大信息量。
通路:
通路是从发出信息的节点到接收信息的节点的一串节点和链路,是一系列穿越通信网络而建立起的节点到节点的链路。
网络拓扑结构
总线型网络结构
树型网络结构
星型网络结构
环型网络结构
3.6 服务模型
终端网络模型
客户机/服务器模型
对等网络模型
3.7 网络的体系结构
国际标准化组织(ISO)在1977年成立一个分委员会来专门研究网络通信的体系结构问题,并提出了OSI/RM,它是一个定义异构计算机连接标准的框架结构。 OSI参考模型的系统结构是层次式的,由七层组成,从高层到低层依次是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层
3.8 网络互连:网络可通过连接设备实现互连
中继器
网桥
路由器
网关
3.9 Internet和TCP/IP
3.9.1 Internet的起源
Internet的前身是ARPANET,它是由美国国防部的高级研究计划署资助的,1983年,TCP/IP正式成为ARPANET的协议标准。随着一些地区网络的连入,Internet逐步扩展到其他国家与地区。
3.9.2 TCP/IP
TCP/IP是Internet赖以存在的基础,Internet中计算机之间通信必须共同遵循TCP/IP通信协议。TCP/IP的体系结构
3.9.3 IP地址
IP地址结构
IP地址编码方案
下一代网际协议—IPv6
3.9.4 Internet提供的主要服务
WWW服务
域名系统
电子邮件服务
文件传输服务
远程登录服务
3.9.5 内网与外网
企业内部网
Intranet是采用TCP/IP、WWW工具、防止外界侵入的安全措施,为企业内部提供服务,并有连接Internet功能的企业内部网络。
企业外部网
企业外部网是几个组织互连的专用网络(private network)。许多组织利用互连网络技术,让供应商和其他组织有限制地访问他们的网络。
3.10 网络管理
概念:网络管理简称为网管,主要是指网络硬件、网络软件和人力资源的使用、协调和综合,从而对网络资源进行分析、配置、监视、测试、评价和控制等操作,以合理的性价比满足网络的需求,如实时性、服务质量(QoS)等。
网络管理的目标:网络管理的目标就是更加有效地使用网络中的各种资源,维护网络的正常运行,当网络出现故障时能及时报告和处理,并协调、保证网络系统的高效运行等。
网络管理对象: 网络管理对象是网络中几乎所有的实体,包括路由器、交换机、网关、集线器、网桥、通信线路、网卡、应用程序、服务器系统、工作站、辅助设备等。
网络管理的结构
被管理资源
网路管理应用
网路管理框架
应用层
表示层
会话层
传输层
网路层
数据链路层
物理层
协议支持
操作系统
网络管理功能
1、配置管理功能
2、性能管理功能
3、计费管理功能
4、故障管理功能
5、安全管理功能
Internet的管理信息库
1. Internet网络管理
Internet网络管理方案是由Internet组织专门针对 TCP/IP网络而设计的一个以SNMP为核心的网络管理方案,也称为SNMP网络管理方案。SNMP定义为应用层协议,它是采用数据报服务。
2. Internet网络管理的工作原理
Internet网络管理方案的核心是SNMP,它采用“请求—回答”的操作方式。管理站和代理之间、代理和本地MIB之间都是通过SNMP进行通信的。SNMP的操作很方便,只定义了以下4类管理操作。
(1)GET操作:用来获取特定的网络管理信息。
(2)GET-NEXT操作:通过遍历来提供强大的管理信息提取功能。
(3)SET操作:对管理信息进行设置或修改以实现控制。
(4)TRAP操作:用来向管理站报告严重的异常事件。
3. MIB
MIB是网络管理系统的信息存储地,在MIB中,被管对象封装着关于网络及网络管理行为和作用的数据。MIB提供了执行查询、被管对象操作、处理事件管理及被管对象间关系的能力。网管系统通常可以支持单一或多个MIB的体系结构。
网络管理协议
网络管理协议简称为网管协议,是管理程序和代理程序之间进行通信的规则和标准。网络管理员利用网管协议通过管理站对网络中的被管设备进行管理。网络管理协议主要有以下3种。
(1)基于TCP/IP体系的简单网络管理协议(SNMP)。
(2)基于OSI参考模型的公共管理信息服务和公共管理信息协议(Common Management Information Service/Common Management Information Protocol,CMIS/CMIP)。
(3)基于TCP/IP体系的公共管理信息服务与协议(CMOT)。
1. 简单网络管理协议
SNMP是适应于互连网络设备的网络管理框架,基于TCP/IP协议集,但现在也已经在其他协议栈上运行。SNMP采用管理站、代理模型、管理协议在应用层上运行。 SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。
2. 公共管理信息协议
为了保证异构型网络设备之间可以相互交换管理信息,ISO指定了两个管理信息通信的标准,即公共管理信息服务(CMIS)和公共管理信息协议(CMIP)。 CMIS定义了每个网络的组成部分提供的网络管理服务,这些服务在本质上是很普通的,CMIP则是实现CMIS服务的协议。
3. 公共管理信息服务与协议
Internet体系结构委员会制定了一个将SNMP过度到CMIP的标准,即公共管理信息服务与协议(CMOT)。CMOT提出在TCP/IP协议集之上实现CMIP服务,这是一种过渡性的解决方案,直到OSI的体系结构被广泛采用。
4. 局域网个人管理协议
局域网个人管理协议(LMMP)试图为LAN环境提供一个网络管理方案。LMMP以前被称为IEEE802逻辑链路控制上的公共管理信息服务协议(CMOL),由于该协议直接位于IEEE802逻辑链路层上,它可以不依赖于任何特定的网络层协议进行网络传输。
4、 信息安全
4.1 信息安全的基本概念
4.1.1 信息安全特征
机密性 (confidentiality)
身份验证 (authentication)
完整性 (integrity)
不可抵赖性(non-repudiation)
可用性( availability)
可控性(controllability)
4.1.2 信息安全保护技术
1. 主动防御技术
(1) 数据加密
(2) 存取控制
(3) 权限设置
(4) 虚拟专用网技术
2. 被动防御技术
(1) 防火墙技术
(2) 入侵检测技术
(3) 安全扫描器
(4) 口令验证
(5) 审计跟踪
(6) 物理保护与安全管理
4.2 密码技术及应用
4.2.1 基本概念
4.2.2 对称密钥密码系统
4.2.3 公开密钥密码系统
4.2.4 计算机网络中的数据加密
链路加密
端__端加密
混合加密
4.2.5 数字签名
数字签名可以实现消息完整性认证和身份验证。 按接收者验证签名的方式不同,可将数字签名分为真数字签名和公证数字签名两类。 在真数字签名中,签名者直接把签名消息传递给接收者,接收者无需借助于第三方就能验证签名。 在公证数字签名中,签名者把签名消息经由被称做公证者的可信的第三方发送给接收者,接收者不能直接验证签名,签名的合法性是通过公证者作为媒介来保证,也就是说接收者要验证签名必须同公证者合作。
4.3 防火墙技术
4.3.1 防火墙的基本概念
防火墙是由硬件(如路由器、服务器等)和软件构成的系统,用来在两个网络之间实施接入控制策略,是一种屏障
4.3.2 防火墙的功能
网络防火墙的主要功能有控制对网站的访问和封锁网站信息的泄露,限制被保护子网的暴露,具有审计功能,强制安全策略,对出入防火墙的信息进行加密和解密等。
4.3.3 防火墙的基本类型
包过滤防火墙
应用层网关
复合型防火墙
(1)屏蔽主机防火墙体系结构
(2)屏蔽子网防火墙体系结构
4.3.4 防火墙的优缺点
防火墙的优点
(1)防火墙能强化安全策略
(2)防火墙能有效地记录网络上的活动
(3)防火墙限制暴露用户点
(4)防火墙是一个安全策略的检查站
防火墙的不足之处
(1)不能防范恶意的知情者
(2)不能防范不通过它的连接
(3)不能防备全部的威胁
(4)不能防范病毒
4.4 恶意软件
4.4.1 病毒及相关威胁
1.恶意程序
这些威胁大致可以分为两类:依赖于宿主程序的和独立于宿主程序的。也可以按其是否进行复制而将软件威胁分成两类:不进行复制的威胁和进行复制的威胁。
2.病毒的特性
病毒是一种可以通过修改自身来感染其他程序的程序,这种修改包括对病毒程序的复制,复制后生成的新病毒同样具有感染其他程序的功能。 在其生命周期中,病毒一般会经历如下4个阶段。
(1) 潜伏阶段
(2) 传染阶段
(3) 触发阶段
(4) 发作阶段
3.病毒的种类
寄生性病毒
常驻存储器病毒
引导扇区病毒
隐蔽性病毒
多态性病毒
4.宏病毒
宏病毒利用了Word和其他办公软件的一个特点,即“宏”。宏是嵌入在Word文档或其他类似文档里的可执行程序代码。用户可以使用宏来自动完成某种重复任务,而不必重复敲击键盘。宏语言与Basic语言类似,用户可以在宏中定义一连串的按键操作,当输入某一功能键或功能键组合时,该宏就被调用了。
5.电子邮件病毒
近几年来发展比较快的恶意程序之一是电子邮件病毒。传播迅速的电子邮件病毒如“Melissa”是利用Microsoft Word宏嵌在电子邮件附件中,一旦接收者打开邮件附件,该 Word宏就被激活,然后执行下列操作:
(1)向用户电子邮件地址簿中的地址发送感染文件;
(2)就地发作。
6.蠕虫
蠕虫是能进行自我复制,并能自动在网络上传播的程序。 网络蠕虫具有计算机病毒的一些特征,也有4个阶段:
潜伏阶段
传染阶段
触发阶段
发作阶段
4.4.2 计算机病毒的防治
病毒的检测
计算机病毒发作时,通常会表现出一些异常症状,因此,用户需要经常关注异常现象的出现或者发生以检测计算机病毒。
病毒的防治
(1) 软件防治
(2) 在计算机上插防病毒卡
(3) 在网络接口卡上安装防病毒芯片
(4) 服务器防病毒方式
4.5 入侵检测技术
4.5.1 入侵者
1.假冒者:指未经授权使用计算机的人或穿透系统的存取控制冒用合法用户账号的人。
2.非法者:指未经授权访问数据、程序和资源的合法用户;或者已经获得授权访问,但是错误使用权限的合法用户。
3.秘密用户:夺取系统超级控制并使用这种控制权逃避审计和访问控制,或者抑制审计记录的个人。
4.5.2 入侵检测
入侵检测的前提是假设入侵者的行为在某些情况下不同于合法用户的行为。当然,入侵和合法用户正常使用资源的差别不可能十分明显,甚至他们的行为还有相似之处。
入侵检测原理
入侵检测通常是指对入侵行为的发觉或发现,通过从计算机网络或系统中某些检测点(关键位置)收集到的信息进行分析比较,从中发现网络或系统运行是否有异常现象和违反安全策略的行为发生。
入侵检测体系结构
(1) 基于主机型的体系结构
(2) 基于网络型的体系结构
(3) 基于分布式的体系结构
入侵检测步骤
(1) 收集信息。多方位收集检测对象的原始信息,包括系统、网络、数据及用户活动的状态和行为。
(2) 数据分析。根据采集到的原始信息,进行最基本的模式匹配、统计分析和完整性分析。
入侵检测分类方法
(1)异常检测。给定正常操作所具有的稳定特征(包括用户轮廓)作参照,当用户活动与正常行为发生较大或重大偏差时,即被认为是异常入侵现象。
(2)误用检测。首先收集正常操作的行为特征(越多越细越好,表明档案完整充分),并建立相关的特征库。当检测的用户或系统行为与标准库中的记录相匹配时,系统就认为这种行为是入侵现象。
数据组织
7、数据结构
7.1 基本概念
7.1.1 数据结构的定义
(1)数据(Data):是信息的载体。它能够被计算机识别、存储和加工处理,是计算机程序加工的“原料”。
数据的范畴包括整数、实数、字符串、图像和声音等。
(2)数据元素(Data Element):是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点和记录等。一个数据元素可由若干个数据项(Data Item)组成
(3)数据对象(Data Object):是具有相同性质的数据元素的集合。
(4)数据结构(Data Structure):涉及数据之间的逻辑关系、数据在计算机中的存储方式和在这种结构上的一组操作(运算)。
数据的逻辑结构(Logical Structure):即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的。数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
数据的存储结构(Storage Structure):即数据元素及其关系在计算机存储器内的表示,是逻辑结构在计算机中的表示(亦称为映像),它包括数据元素的表示和关系的表示。
数据的运算,即对数据施加的操作,操作的种类是没有限制的,可以根据需要而定义。基本的操作主要有检索、插入、删除、更新和排序。
7.1.2 数据的逻辑结构
数据的逻辑结构由某一数据对象及该对象中所有数据成员之间的关系组成。
(1)线性结构 所有的数据元素按某种次序排列在一个序列中。对线性结构中的每一个数据元素,除第一个元素外,其他每个元素有且仅有一个直接前驱,第一个数据元素无直接前驱。除最后一个元素外,其他每一个元素有且仅有一个直接后继,最后一个数据元素无直接后继。
(2)树形结构 所有的数据元素之间呈现出层次结构,每一个数据元素可以有多于一个的“直接下级”,但它只能有唯一的“直接上级”。树形结构中有且仅有一个根结点,该结点没有父结点。
树形结构可以类比为家族的家谱层次结构。
(3)图结构 可称为网络结构。对于图结构中的所有数据元素之间的关系没有任何约束。可以将图结构看作层次结构的一种扩展且允许数据元素之间具有多个“直接上级”。
因特网的网页链接关系就是一个非常复杂的图结构。
7.1.3 数据的存储结构
数据的存储结构是指在计算机中的存储器内如何表示数据元素及数据元素之间的关系
1.顺序方法 顺序方法是借助元素在存储器中的相对位置来表示数据元素间的逻辑关系。
该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
2.链接方法 链接方法是借助指示元素存储地址的指针表示数据元素间的逻辑关系。
7.1.4 数据的运算
对于一种数据结构,常见的运算包括建立数据结构、清除数据结构、插入一个新的数据元素、删除某个数据元素、修改某个数据元素、排序和检索等。 逻辑结构和存储结构都相同,但运算不同,则数据结构不同。例如,栈与队列。
7.2 线性表
线性表是由数据元素组成的一种有限且有序的序列。 其最主要的特点是结构中的元素之间满足线性关系,即按这种关系可以把所有元素排成一个线性序列。
7.2.1 基于数组的实现
数组是有固定大小的、相同数据类型的元素的顺序集合,通过每个元素在集合中的位置可以单独访问它。
7.2.2 基于链表的实现
链表实现是以结点的概念为基础的,链表中的结点至少包括两个域的记录:一个包含数据,另一个包含链表中该结点的下一个结点的地址。
特点: 用一组任意的存储单元存储线性表的数据元素。 利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素。 每个数据元素,除存储本身信息外,还需存储其直接后继的信息。链表中元素的插入和删除只涉及指针的修改
7.2.3 基于线性表的检索
基本思想: 数据对象存储在数组或链表等线性结构中,检索算法根据给定值key,在线性表中进行检索,直到找到key在线性表中的存放位置或确定在表中找不到key为止。
1.顺序检索 顺序检索是一种最基本的检索方法,是从线性表中第一个元素开始,逐个进行关键字和给定值的比较,直到找到了要找的值或没发现该值但已经遍历了整个线性表为止。
2.二分检索 二分检索法假设要检索的线性表是有序的,其中每次比较操作可以找到要找的数据项或把线性表减少一半。该算法从表中间开始,如果要检索的数据小于线性表的中间项,那么可以知道这个数据一定不会出现在表的后半部分,因此,只需要检索表的前半部分即可,然后再检测这个部分表的中间项(即整个表1/4处的数据)。如果要检索的数据大于中间项,检索将在表的后半部分继续。如果中间项等于正在检索的数据,检索将终止。每次比较操作,都会将检索范围缩小一半。当要找的数据找到了,或可能出现这个数据的表为空了,整个过程将终止。
7.3 堆栈
7.3.1 堆栈的基本概念
堆栈是限定仅在表尾进行插入和删除运算的表,栈在逻辑上是一个下限为常数,上限可变化的向量。栈可被认为是一种特殊的线性表,我们称其表尾为“栈顶”,表头为“栈底”,表中无元素时称为空栈(栈空)。这些数据项的处理是依据后进先出的原则。因此,栈又称为后进先出(Last In First Out,LIFO)的表。
7.3.2 栈的实现
1. 顺序栈
2. 链式栈
7.3.3 栈的操作
1.进栈 进栈操作就是把一个元素存入栈中,即在栈顶添加新的元素。进栈后,新的元素成为栈顶。
2.出栈 出栈操作就是从栈中取出一个元素。当最后一个元素被删除后,栈必须设为空状态。
7.3.4 栈的应用
1.数制转换 将一个非负的十进制整数A转换为另一个等价的基为B的B进制数的问题,很容易通过“除B取余法”来解决。
2.括号匹配 对算术表达式进行运算前应该检查语法是否存在错误,检查括号是否匹配,我们可以用堆栈来实现。当括号不匹配时,会发生两种类型的错误:左括号丢失或是右括号丢失。当遇到一个左括号时,它就入栈,当遇到一个右括号时,左括号就出栈,如果栈最后非空,意味着左括号多于右括号,当遇到一个右括号而栈顶却没有左括号时,意味着该右括号无对应的左括号与之匹配,也会出错。
7.4 队列
7.4.1 队列的定义
具有“先进先出”(First In First Out,FIFO)特性的表,即插入在表的一端进行,而删除在表的另一端进行,我们将这种表称为队或队列,把允许删除的一端叫队头,把允许插入的一端叫队尾。
7.4.2 队列的实现
1.顺序队列 队列的顺序存储结构称为顺序队列。顺序队列一般用一个向量空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,需设置两个指针front和rear分别指示队头元素和队尾元素在向量空间中的位置。一般情况下,队头指针始终指向队头元素,尾指针始终指向队尾元素的下一位置。它们的初值在队列初始化时均应置为0。当头尾指针相等时,队列为空。
2.循环队列 我们可以将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列.
3.链式队列 队列的链式存储结构简称为链式队列。它是限制仅在表头删除和表尾插入的单链表.
7.4.3 队列的操作
1.进队 把一个元素存入队中,即在队尾添加新的元素,入队后,新入的元素成为队尾。
2.出队 从队头取出一个元素。
7.5 树
7.5.1 二叉树的基本概念
二叉树t是有限个元素的集合(可以为空)。当集合为空时,称该二叉树为空二叉树。当二叉树非空时,其中有一个称为根的元素,余下的元素(如果有的话)被组成两个二叉树,分别称为t的左子树和右子树。
树叶: 如果一个结点无子树,这个结点叫做树叶。 除了根结点外,每个结点只有一个双亲结点。
7.5.2 二叉树的实现
二叉树通常用链式存储。每个结点除了存储结点本身的数据外,再设置两个指针字段lchild和rchild,分别指向该结点的左孩子和右孩子,当结点的某个孩子为空时,则相应的指针为空指针。
7.5.3 二叉树的遍历
二叉树的遍历是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次且仅被访问一次。
1.先序遍历
若二叉树为空,遍历结束;否则,执行以下操作。
(1)访问根结点
(2)先序遍历根结点的左子树
(3)先序遍历根结点的右子树
2.中序遍历
若二叉树为空,遍历结束;否则,执行以下操作。
(1)中序遍历根结点的左子树;
(2)访问根结点;
(3)中序遍历根结点的右子树。
3.后序遍历
若二叉树为空,遍历结束;否则,执行以下操作。
(1)后序遍历根结点的左子树;
(2)后序遍历根结点的右子树;
(3)访问根结点。
通过一次完整的遍历,可使二叉树中的结点信息由非线性排列变为某种意义上的线性序列。
7.5.4 二叉检索树
如果一棵二叉树的每个结点对应于一个关键码,整个二叉树各结点对应的关键码组成了一个关键码集合,并且该二叉树满足以下属性:任何结点的值都要大于它的左子树中的所有结点的值,并且小于它的右子树中的所有结点的值,则称此二叉树为二叉检索树。
对二叉检索树中序遍历可得到关键码值的递增序列。
二叉检索树的检索:是从根结点开始,若根结点的关键码等于查找的关键码,则查找成功。否则,若小于根结点的关键码,查其左子树;若大于根结点的关键码,查其右子树。在左右子树上的操作类似。
7.6 图
7.6.1 图的定义和术语
图由两个集合构成:顶点的集合和边的集合。
无向图:边是没有方向的,边采用(顶点1,顶点2)表示。
有向图:每一条边都有方向。有向图中的边称为弧,弧采用<起点,终点>的形式表示。
顶点相邻:
V4
V2
V0
V1
V3
(1)无向图:当且仅当(Vi,Vj)是图中的边时,顶点Vi和Vj是邻接的;
(2)有向图:当且仅当<Vi,Vj>是图中的弧时,称顶点Vi邻接至顶点Vj,顶点Vj邻接于顶点Vi。
顶点的度(无向图):是指依附于某顶点的边数。
顶点的入度(有向图):是指以该顶点为终点的弧的数目。
顶点的出度(有向图):是指以该顶点为始点的弧的数目。
路径:
(1)无向图:若存在一个顶点序列Vp,Vi1,Vi2,…,Vim,Vq,使得(Vp,Vi1),(Vi1,Vi2),…,(Vim,Vq)均属于图中的边,则称顶点Vp到Vq存在一条路径。
(2)有向图:若存在一个顶点序列Vp,Vi1,Vi2,…,Vim,Vq,它由图中的弧<Vp,Vi1>,<Vi1,Vi2>,…,<Vim,Vq>组成,则称顶点Vp到Vq存在一条有向路径。
路径长度:路径上边的数目。
回路(环):第一个顶点和最后一个顶点相同的路径。
简单路径:序列中顶点不重复出现的路径。
7.6.2 图的实现
1.图的邻接矩阵表示法
(1)用邻接矩阵表示顶点间的相邻关系
(2)用一个顺序表来存储顶点信息
2.图的邻接表表示法
对于图G中的每个顶点Vi,该方法把所有邻接于Vi的顶点Vj链成一个带头结点的单链表,这个单链表就称为顶点Vi的邻接表.
7.6.3 图的遍历
1.深度优先遍历 假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可从图中某个顶点V出发,访问此顶点,然后依次从V的未被访问的邻接点出发深度优先遍历图,直至图中所有和V有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。
2.广度优先遍历 假设从图中某顶点V出发,在访问了V之后依次访问V的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们未被访问的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。
7.6.4 图的应用
1.带权图的最短路径问题 带权图的最短路径问题即求两个顶点间长度最短的路径
2.最小生成树 连通图G的最小代价生成树称为G的最小生成树
8、文件结构
8.1 文件系统
文件系统是一个负责存取和管理辅助存储器上文件信息的机构,通常用目录组织文件
8.1.1 文件命名
文件是一种抽象的机制。为了区分每个不同文件以便用户访问,需要对被管理的对象进行命名。
文件的具体命名规则在各个系统中是不同的,不过所有的计算机系统都允许用1~8个字母组成的字符串作为合法文件名。通常文件名中有数字和一些特殊字符也是允许的。
很多文件系统支持用句点隔开为两部分的文件名,如prog.C。句点后的部分称为文件扩展名, 通常文件扩展名说明了文件的类型。
8.1.2 文件访问
1. 顺序访问法 应用程序按照从头至尾的顺序读取文件信息,不允许跳过某些内容读取。读写操作将根据读写的数据量移动当前文件指针。
2. 随机存取访问方法 该方法是将文件概念地址划分为带编号的逻辑记录,读写操作将文件指针设置到用户指定的记录编号,因此,用户可以按照任何顺序读写记录。
8.2 文件结构
8.2.1 顺序文件
顺序文件是只能按照从头到尾的顺序以一定的数据单元对其进行存取操作的文件。在对文件的访问过程中,只能从头到尾按顺序进行, 或在访问过程中直接定位到第一个记录所在位置重新开始访问, 不允许随意进行访问, 也不允许逆向访问。
8.2.2 索引文件
索引文件由数据文件和索引组成。
数据文件一般是无序的可以随机存取的文件。
索引中每条记录只包含两个域:记录的关键字和表示包含该关键字记录在文件中的位置。
访问数据文件中的记录需要按以下步骤进行。
(1)整个索引文件都载入主存中;
(2)按照给定的关键字搜索在内存中的索引文件,快速查找到包含给定关键字的目标索引记录
(3)从索引记录中获取目标记录所在数据文件中的位置;
(4)按照给定的地址,检索记录并返回给用户。
8.2.3 散列文件
1.散列文件:通过一个哈希函数直接将关键字的值映射成为对应记录所在数据文件中的位置,从而直接定位每一个记录
2.散列系统:数据存储空间被分为若干多个小区域,每个区域称为槽,每个槽存放数个记录。根据散列函数将记录存放到对应的存储槽中。检索时,先将散列函数用于该记录的关键字,以确定相应的存储槽,然后读取槽中的数据,从读取的数据中检索需查找的记录。
3.冲突:把不同的关键码映射到同一个散列地址上.
4.冲突的解决方法。
(1)扩大槽的容量,每个槽可以容纳多个记录。
(2)开放寻址解决法,当冲突发生时,系统将查找开放的或者是空闲的槽来存放新的数据,简单的办法是将新记录存放到冲突地址的下一个地址中。
9、 数据库概述
9.1 数据库管理系统
9.1.1 数据库管理系统概述
数据库:存储在一台或多台计算机上信息的集合。
数据库管理系统:
(1)定义:是一个软件系统,用来创建和维护用户数据库,并为其提供控制性访问。
(2)特点:
①提供了在数据库中创建、更新、存储及检索数据的一个系统的方法。
②数据共享。
③为控制数据访问、增强数据完整性、管理并发控制和恢复数据提供了便利。
9.1.2 数据库模式
(1)物理层:最低层次的抽象。描述数据在数据库内部的表示方式。
(2)逻辑层:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。描述数据库中存储什么数据以及这些数据间存在什么关系。
(3)视图层:最高层次的抽象。 是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
9.1.3 数据模型
1.层次模型 层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。 层次数据库系统的典型代表是IBM公司的IMS数据库管理系统 。
2.网状模型 层次模型不能直接表示非树形结构,网状模型可以克服这一缺陷,网状数据库系统采用网状模型作为数据的组织方式。 网状数据模型的典型代表是DBTG系统。
3.关系模型 关系数据库系统采用模型作为数据的组织方式,关系模型中,数据组织采用二维表,表是记录的集合,记录是域的集合,数据库表的每个域都包括一个数值,表中的每个记录都包含相同的域。 目前最流行的数据库,如Oracle、SQL Server都采用这种模型。
9.2 关系数据库
9.2.1 关系数据库的设计
E-R图用图形化的形式给出了记录型、属性和关系。
构建关系模型下的数据库,其核心是设计组成数据库的关系。但其中仍有许多微妙的地方会导致设计者的错误. 原因:数据间的数据依赖存在某些不好的性质。 解决方法:关系的规范化校验。
(1)插入异常
(2)删除异常
(3)数据冗余
(4)更新异常
9.2.2 关系的操作
1.选择 选择操作是一种一元操作,它应用于一个关系,所产生的新关系的元组(行)是原关系中元组的一个子集。选择操作根据操作要求从原关系中选择部分元组,组成一个新的关系,其属性保持不变。
2、投影 投影操作是一种一元操作,它用于一个关系并产生另外一个关系。新关系中的属性(列)是原关系中属性的子集。投影操作所得到的新关系中的元组属性减少。在这个操作中元组(行)的数量保持不变。
3、连接 连接操作是一种二元操作,它基于共有的属性把两个关系组合起来。
4、插入 插入操作是一种一元操作,其操作的主要作用是在表中插入一个新的元组。
5、删除 删除操作是一元操作,它根据要求删去表中相应的元组。
6、更新 更新操作是一种一元操作,它应用于一个关系,用来更新元组中的部分属性值。
9.2.3 结构化查询语言
结构化查询语言(SQL)是美国国家标准协会(ANSI)和国际标准组织(ISO)用于关系数据库的标准化语言。
这是一种描述性的语言,使用者只需声明它,而不需要编写详细的程序,
SQL于1979年首次被Oracle公司实现。
SQL语言结构简洁,功能强大,简单易学。
Oracle、Sybase、Informix、SQL Server、PowerBuilder数据库开发系统等都支持SQL语言作为查询语言。
SQL包含数据查询语言(DQL),数据操纵语言(DML),数据定义语言(DDL),数据控制语言(DCL)4个部分。
9.3 数据库应用
9.3.1 决策支持系统
使用多种数据源的数据,以便在数据分析和数据挖掘的基础上,更好地进行决策支持。
(1)数据分析。提出了一些SQL的扩展,有一些数据分析程序包与数据库有接口,允许大量数据存储在数据库中,并有效地进行检索以便分析。
(2)数据挖掘。数据挖掘试图自动从数据中发现统计规则和模式。分类与关联规则是两类重要的数据挖掘问题。
(3)数据仓库。数据仓库是从多数据源收集来的信息的仓储,提供给用户一个统一的数据接口,为用户更快更方便查询所需要的信息,提供决策支持。
9.3.2 空间数据库
描述一维、二维和三维空间对象的数据为空间数据,其主要具有三个特点:
(1)需要处理的数据量大;
(2)需要空间和非空间两类数据;
(3)需要记录空间对象随时间而演变的历史数据。 典型应用:GIS
9.3.3 多媒体数据库
多媒体数据: 文本数据、声音数据、图形数据、图像数据、视频数据。
多媒体数据库特点:
数据量巨大且媒体之间量的差异也极大,从而影响数据库的组织和存储方法。
媒体种类的增多影响了数据处理的困难
数据库的多解查询 。
用户接口的支持。
多媒体信息的分布对多媒体数据库体系带来了巨大的影响。
传统的事务一般都是短小精悍,在多媒体数据库管理系统中也应尽可能采用短事务 。
服务质量的要求。
多媒体数据管理还有考虑版本控制的问题。
9.3.4 移动数据库
移动数据库是指支持移动计算环境的分布式数据库,通常应用在诸如掌上电脑、PDA、车载设备、移动电话等嵌入型设备中。
主要特性
微小内核结构
对标准SQL的支持
事务管理功能
完善的数据同步机制
支持多种连接协议
完备的数据库管理功能
支持多种嵌入型操作系统
9.3.5 信息检索系统
信息检索系统可进行信息资料的收集、标引、分析、组织、存储、检索和传播等工作 。
信息检索技术的热点:
智能检索或知识检索
知识挖掘
异构信息整合检索和全息检索
9.3.6 分布式信息系统
分布式系统是独立计算机的集合体,包含各种各样的应用程序、它们的基本支持软件、它们借以运行的硬件以及连接分布式硬件的通信链路。 最常见的分布式系统是联网的客户/服务器系统。
特性:
1、资源共享
2、多节点
3、并行性
4、异构性
5、多种协议
6、容错
7、安全性
8、消息传送
9、开放性
10、分散控制
算法与程序设计
5、算法
5.1 算法的概念
一、什么是算法
1.广义:用来描述完成一项任务所应当遵循的规则顺序, 该描述应该是精确的、无歧义的,算法的步骤是有限的。
2.狭义:解决一个问题采取的方法和步骤的描述。
3.数学:是一个由已知推求未知的运算过程。
4.计算机:在给定初始状态情况下,经过计算机程序 的有限次运算,能够得出正确的结果。
二、算法的定义
算法要解决的就是“做什么?”和“怎么做?”。
算法的主要特征
(1) 输入输出的数据必须是由字母组成的有限符号串;
(2) 处理过程必须可以明确地分解成有限多个不能再分解的步骤;
(3) 算法的继续进行和结束要有明确的条件加以规定;
(4) 算法的变换规则必须是非常简单而机械。
计算机算法定义:
算法是有限的、有序的、有效的计算机指令集合。 计算机按照规定的顺序来执行这些指令,可以解决某个问题。
三、算法的基本性质
1.算法名称:便于描述和交流。
2.输入:算法对输入的数据进行处理。
3.输出:算法要有输出,对输入数据加工后的结果。
4.有效性:算法每一步都应是可执行的,理论上人工通过有限次运算后也是可以完成的。
5.正确性:算法的结果必须是正确的 。
6.有限性:算法必须在执行有限条指令后结束 。
四、算法的基本结构
顺序结构:算法按先后顺序一步一步地执行。 (例如:农夫过河问题。)
分支构:算法的分支处有一个条件,如果满足条件,则执行一组指令,否则,执行另外一组指令。 (例如:商场购物问题)
循环结构:算法在一定的条件下内反复不停地执行 一组指令。 (例如:运动锻炼问题)
递归结构:算法所描述的函数或过程在内部调用 本函数或本过程 。 (例如:汉诺塔问题)
5.2 算法的表示
一、自然语言
用人们日常使用的语言来表述算法,可以是汉语、 英语或其它语言,直接将算法步骤表述出来。
特点:通俗易懂,简单明了。
二、流程图
采用一些图形框和带箭头的线条组成,用流程图来表示算法中描述的各种操作。
特点:简洁明了,更容易转变成计算机程序来实现。
几种常用的流程图所使用的符号:
(1) 开始、结束框图
(2) 处理框
(3) 输入输出框
(4) 判断框
(5) 流程线
(6) 连接点
用流程图表示的算法结构如下:
顺序结构:
分支结构:
循环结构:
伪码
一种接近于计算机编程语言的算法描述方法。 给定一些英文单词,构成伪码的符号系统。 特点:描述简洁,便于向计算机程序语言过渡。
表示算法
(1) 过程(Procedure),不需要返回数据。
(2) 函数(Function),需要返回数据。
伪码系统所需的元素
1、算法名称: 每一个算法都应有一个名称
2、指令序列: 指令序列用Begin/End或{/}括起来,是一个整体 。
3、输出/输出: 输入:Input 输出:Output或Return
4、分支选择: (1)If 条件 Then 指令序列 (2)If 条件Then 指令序列1 Else 指令序列2
5、赋值: 用:=或者←表示
6、循环: (1)计数式循环:For 变量:=初值 To 终值 指令 (2)条件式循环:While (条件) do 指令
7、算法结束: 用End<算法名称>表示算法结束。
6、程序设计语言
6.1 程序设计语言概述
一、什么是程序语言
程序设计语言:指挥计算机工作的命令。没有程序,计算机将无法进行工作。
二、程序语言的发展历史
最早的程序语言: 1945年的Plankalkul ,非存储式高级程序 。
程序设计语言的发展经历了三代的发展变化
第一代:机器语言
第二代:符号语言
第三代: 高级语言
三、程序语言的分类
按照人与机器的交互程度分类:
机器语言
汇编语言
高级语言
四、 机器语言
由“0”和“1”组成的二进制码构成。 优点:速度快,不需要翻译。 特点:依赖机器,可读性差,难以掌握。
五、符号语言
用符号和助记符来代表机器语言 ,为各操作码分配助记符。(如:Asm,Masm) 优点:速度快,可读性较好。 特点:依赖机器,较难掌握,需要翻译。
六、高级语言
用类英语描述对机器的指令。(如:Fortran,Basic,C,Pascal,C++等。) 优点:可读性好,易于掌握。 特点:不依赖机器,需要翻译。 程序设计就是寻找解决问题的方法,不需关心计算机本身的具体实现。
6.2 高级程序语言的类型
常用高级程序语言
按照程序的运行方式,程序语言分类:
1、汇编型语言
2、解释型语言
3、编译型语言
4、混合型语言
5、脚本性语言
根据程序语言解决问题的方法及功能,程序语言分类:
1、过程化语言
2、函数式语言
3、逻辑式语言
4、面向对象语言
5、专用语言
二、过程化语言
又称为命令式语言或强制性语言。 (如:Fortran语言,COBOL语言,Ada语言,C语言,Basic语言,Pascal语言等。
过程化语言程序——按顺序的机器指令。
过程化语言的命令表现在两个方面: 1、操作数据项。 2、控制下一条要执行的指令。
三、函数式语言
又称为表处理语言。(如:LISP语言,Scheme语言。
将函数看成是“黑盒”,程序就是将一系列的“黑盒”连起来。
特点: 1、定义函数。 (也可通过基本函数创建新的函数。) 2、调用函数。(可通过函数的组合解决问题。)
四、逻辑式语言
又称为声明式语言或说明性语言
程序设计主要是进行事实归纳和规则推理, 适合于特定的领域。(如:Prolog语言)
五、面向对象语言
采用面向对象的思想进行程序设计。 (如:Smalltalk语言,C++语言,Java语言等。)
面向对象语言的特点: 对象和操作被捆绑在一起。
通过对象去调用操作,有可能产生的结果:
1、改变对象自身的状态
2、改变其他对象的状态
3、改变系统的状态
六、专用语言
应用于网络和数据库的语言。 如:HTML语言,Perl语言,PHP语言,SQL语言等
特点:属于脚本语言,易于掌握。
6.3 程序设计语言的基本概念
过程化程序语言具有的共性:
1、标识符
2、变量与数据类型
3、常量和文字
4、表达式和赋值语句
5、控制语句
6、注释
过程化程序语言的语句
1、声明语句:说明程序中要使用的元素。
2、命令语句:描述算法的步骤。
3、注释语句:解释程序的功能。
一、标识符: 标识符的作用:命名。 计算机通过标识符与地址的联系来操作数据。 不同的程序语言对标识符有不同的规定。
二、变量与数据类型
1、变量:以标识符作为名字,代替存储地址。 变量的特点:保存程序的计算结果。
2、数据类型:数据类型决定了数据可执行的操作以及数据 的取值范围。
3、变量的声明:将变量指定为某种 数据类型的语句称 为变量声明语句 。
三、常量和文字
1、常量:程序执行过程中不能更改的数据 。 常量分两种:文字常量和命名常量。
文字常量:直接以数字的形式出现在程序中。 如c语言中:Area=3.14159*r*r;/*r为变量*/
命名常量:以标识符的形式出现在程序中。 如c语言中:Area=PI*r*r; /*r为变量*/
四、表达式和赋值语句
1、表达式: 一系列操作数和运算符的组合构成。
2、操作数:变量或表达式。 (表达式的结果为一个具体的值 )
3、运算符:制定运算规则 。
算术运算符
关系运算符
逻辑运算符
赋值运算符
五、控制语句
可以改变程序中语句的执行顺序,主要有分支结构和循环结构两种。
1 、分支结构
① if~else结构
② switch结构
2、循环结构
① for循环结构
② while循环结构
③ do~while循环结构
3、强制转移语句
是一种强命令型语句,无条件转移程序指令
具有统一的语句形式: goto <语句标号> goto语句的特点: ① 给程序的执行带来极大的方便; ② 会降低程序的可读性; ③ 可能导致程序发生严重的错误。
六、注释
1.注释就是对程序的语句或功能进行说明, 为阅读程序提供额外的信息,帮助理解。 2.注释的存在与否都不影响程序的执行。 3.不同的程序语言有不同的注释符号。
6.4 程序单元
程序单元:具有独立的功能。 过程或函数:具有独立的功能的程序单元。
一、过程
1、过程:一些指令的集合 。 (指令:由顺序结构、分支结构或循环结构组成 )
2、过程头部:过程名。(建议用动词作为过程名)
3、过程调用:请求过程提供服务。
二、参数
1、参数:过程中要用到的通用变量。 ●形参:过程中制定的参数。 ●实参:调用过程时传递给形参的数据。
2、参数的位置:过程头部的括号中
3、参数的传递方式: ① 传值:将实参的副本传递给形参。 ② 传引用:将实参变量的地址传递给形参。
三、函数
函数必须向调用它的地方传回一个值。 (函数必须要有一个计算结果。)
函数的头部:函数名。(建议用名词作函数名)
四、输入与输出
由程序语言的实现提供的一种底层操作,与开发 包一起提供给程序设计人员。
6.5 程序设计语言的执行
一、编译程序
源程序:由程序设计语言编写的程序。 注:源程序是不能被执行的。
将源程序变成可执行程序的过程:
目标程序
编译
源程序
可执行程序
链接
目标程序
源程序的翻译:
由编译器完成。
编译器的三个重要进程:
① 词法分析; 分析源程序中的哪些符号串代表了一个实体的进程 ,将结果保存在一个称为记号的结构单元里。
② 语法分析; 对记号进行分析,根据一系列的语法规则来识别程序的语法结构所代表的进程。
③ 目标代码生成; 将没有语法错误的程序指令转换成机器语言指令。
二、链接程序
目标代码并不是可执行代码。
要获得可执行的程序,需将目标代码链接起来。
链接器的任务就是将目标程序链接成可执行的程序(或称载入模块)。
三、集成开发环境
软件开发包:也称为集成开发环境(IDE)。将编辑器、翻译器、链接器和其他软件单元集合在一起。
软件开发包都是为特定的程序语言定制的。
同一种语言的开发包也会有一些不同的产品 和版本。
6.6 高级话题
一、面向对象程序设计
用面向对象的方法来设计程 (与过程化程序设计方法不同)
面向对象的系统需包含三个要素: 对象、类和继承。
1、对象: 所有资源都是对象。 资源:以数据和模块的形式表现。 (每一个对象把一组数据和一组过程封装在一起。 )
2、类: 类是对象的状态描述和方法的定义。 一个完整的类描述包含了外部接口、内部 算法和数据结构。 类是一种抽象的数据类型。 类所创建的对象被称为这个类的实例。 一个类的所有对象都具有相同的数据结构, 共享相同的实现操作的代码,但各自有不同 的状态。
3、继承: 继承是指一个对象除了拥有自己的属性和操 作以外,还可以从另一个对象那里继承一些 特性。 继承为软件的开发和维护提供了有力的技术 支持。
二、程序设计语言的发展趋势
程序设计语言本身主要是实现算法,解决 问题。
软件开发工具为编写程序和生成可加载模块 提供方便
程序语言和软件开发工具都在朝着智能化、 网络化、标准化的方向发展。
代理
代理
数据采集
通信传输
管理模块
应急处理
检测分析
安全知识库
(接口)
网络安全数据库
管理/配置器
入侵分析引擎器
嗅探器
嗅探器
配置系统库
攻击模式库
入侵检测器
应急措施
安全控制
数据采集
主机系统
安全策略
管理员
操作员
管理器
分析器
感应器
数据源
进行复制
Zombic
蠕虫
病毒
特洛伊木马
逻辑炸掉
陷门
独立的
需要宿主程序
恶意程序
IP
UDP
代理
被管对象
IP
UDP
TCP
网络管理应用
管理站
非数值数据表示
字符和字符串的表示
字符:ASCII码
字符串:连续存放的字符编号
汉子的表示
汉字输入码(输入汉字用)
汉字机内码(机内存储和处理汉字用
汉字字形码(输出汉字用)
图像的表示
位图图像、矢量图像
音频和视频的表示
音频信息或视频信息,在进入CPU以前都要先转换为二进制数据(模/数转换),才能交给CPU加工处理;反之,从CPU输出的声音/图像信息,也要先从二进制数据转换为音频/视频模拟信号(数/模转换),然后交给声像设备播放。