第八章 算法
算法:算法是一组明确步骤的有序集合,它产生结果并在有限的时间内终止。
要点有四:
1 有序集合
2 明确步骤
3 产生结果
4 在有限的时间内终止
三种结构:顺序,选择,循环。
算法的表示:流程图,伪代码。
第九章 程序设计语言
演化:机器语言-符号语言-高级语言
构建程序:编写和编辑程序-编译程序-用所需的库模块链接程序
语言的分类:
1 过程化语言:(1)FORTRAN;(2)COBOL;(3)Pascal; (4)C;(5)Ada
2 面向对象语言:(1)C++; (2)Java
3 函数型语言: (1)LISP ;(2)Scheme
4 说明性语言: (1)prolog
5 专用语言:(1)HTML
第十章 软件工程
软件工程:利用合理的工程方法和原则来获得在真实机器上工作的可靠软件。
分析-设计-实现-测试
分析阶段:
定义用户-定义要求-定义需求-定义方法-
设计阶段:1 模块化 2 工具
实现阶段:
1 工具:流程图,伪代码
2 编码
测试阶段:
(1)黑盒:测试功能,由需求出发
(2)白盒:测试逻辑,每条指令,每个情况都要测试
模块化:
工具:UML
耦合:
(1)数据耦合:只从调用函数向被调用函数传递最少的需求数据;
(2)特征耦合:参数是数组或结构这样的复合数据;
(3)控制耦合:传递标志,指示函数的逻辑流程;
(4)全局耦合:用全局变量传递两个或两个以上的函数通讯;
(5)内容耦合:直接引用另一个函数的数据或语句。
内聚:
(1)功能内聚:只包含一个处理过程;
(2)顺序内聚:包含两个或多个紧密联系的任务;
(3)通信内聚:将使用同一数据的处理过程合并;
(4)控制内聚:由控制流程控制的不相关的处理过程;
(5)瞬时内聚:合并了总在一起发生却不相关的处理过程
第十一章 数据结构
这一章只介绍三种:数组,结构,链表。
第十二章 抽象数据类型
抽象数据类型:
1.数据的声明
2.操作的声明
3.封装数据和操作
线性列表:
1.广义表:(1)有序列表;(2)无序列表
2.限制列表:(1)队列;(2)堆栈
树
二叉树
图
第十三章 文件结构
文件是作为单元看待的相关数据的外部集合
存取方法:
1.顺序存取:顺序文件结构
2.随机存取:(1)索引文件;(2)哈希文件
更新顺序文件:
(1)旧主文件
(2)新主文件
(3)事务文件:包含要对主文件做的修改:ADR添加删除修改
(4)错误报告文件
索引文件:索引将键映射到地址
(1)数据文件;
(2)索引
哈希文件:用一个函数来完成映射,不需要索引。
哈希方法:(1)直接法(2)求模法(3)数字析取法
冲突:两个不同的记录计算得到相同地址时发生
解决办法:
(1)开放寻址:主区地址将查找开放的或空闲的记录来存放新数据
(2)链表解决法:第一条记录包含指向下一条记录的指针
(3)桶哈希法:哈希到桶。桶能容纳多个记录的节点
文本文件和二进制文件:
文本文件是按字节编码的,也就是定长编码,怎么解释已经确定。
二进制文件是按值编码的,自定义编码,根据具体应用指定某个值的意思。