一、算法
1、概念
算法是一种逐步解决问题或完成任务的方法。算法接收一组输入数据,同时产生一组输出数据。算法是一组明确步骤的有序集合,它产生结果并在有限的时间内终止。
2、三种结构
- 顺序结构:顺序执行;
- 判断:检测条件是否满足,结果为真,顺序执行,否则转到另一分支;
- 循环:完成相同指令序列。
3、算法的表示
- UML(统一建模语言):表现为流程图形式。
- 伪代码:顺序,判断(if…else…),循环(while…)。
4、基本算法
求和,乘积,最大和最小,选择和排序,查找。
6、递归和迭代
- 迭代:结果经历多重循环,算法定义不涉及算法本身即调用不含本身。
- 递归:算法出现在本身的定义中即自己调用自己。
二、程序设计语言
1、演化
- 机器语言:是计算机硬件唯一能识别的语言,由两种状态的电子开关构成以表示01。
- 汇编语言:用带符 或驻基辅的指令和地址代替二进制码,每条指令单独编码,汇编程序将汇编语言翻译成机器语言。
- 高级语言:不用在意底层细节,面向过程程序设计和面向对象程序设计。
2、翻译
- 高级语言程序称为源程序,被翻译成的机器语言程序称为目标程序。
- 编译:把整个源程序翻译成目标程序后执行,如C语言等
- 解释:逐行解释随即执行,如BASIC等;JAVA中编译后(JAAVA虚拟机的目标代码)解释成目标代码后执行。
- 翻译过程:词法分析器(一个符 一个符 的读源代码,创建源语言中的助记符表,如标志符,数字,保留字等)-> 语法分析器(分析一组助记符,找出指令,如赋值语句等)-> 语义分析器(检查指令,确保其无二义性)-> 代码生成器(将每条指令转化为机器语言)。
3、编程模式
- 过程式模式:程序作为主体,数据或数据项作为被动对象。为了操纵数据,程序发出动作,称为过程。
- 面向对象模式:处理活动对象,程序仅仅向对象发出请求。类(相同类型的对象),方法(对象能完成的事),继承性(一个对象能从另一个对象继承),多态性(具有相同名字的操作可以在相关类中做不同的事情)
- 函数式模式:把一组输入映射到一组输出。
- 说明式模式:依照逻辑推理的原则响应查询。
4、共同概念
- 标识符:对象的唯一名称代表数据的位置;
- 数据类型:整数类型,实数类型,字符型,布尔型,数组,记录等;
- 变量:存储单元的名字,变量的数据只值在程序执行过程中可能改变;
- 字面值:程序中使用的预定义的值;
- 常量:在程序中不会改变的值;
- 输入和输出
- 表达式:操作数和运算符;
- 语句:赋值语句,复合语句,控制语句等;
- 子程序:局部变量只属于子程序;使用传值或者传引用(地址)来为子程序传参数;返回值有一个或几个(返回调用处)。
三、软件工程
1、软件生命周期
分析,设计,实现,测试。
- 瀑布模型:前一阶段不结束,后一阶段不开始。
- 增量模型:先完成整个系统的简化版本,后逐渐完善各阶段细节。
2、分析阶段
此阶段生成规格说明文档:软件要做什么。利用多种建模工具
3、设计阶段
- 面向过程设计:结构图的使用;模块化;模块间的耦合(模块绑定)必须最小化,内聚(处理过程相关紧密程度)必须最大化。
- 面向对象设计:详细描述类的细节来完成。
4、实现阶段
- 语言的选择
- 软件可操作性:高质量软件:准确性,高效性,可靠性,安全性,及时性和适用性。
- 软件可维护性:保持系统正常运行并及时更新,可变性和可修正性。
- 软件可迁移性:把数据或系统从一个平台转移到另一个平台并重用代码的能力。
5、测试阶段
- 基本路径测试:软件中每条语句至少被执行一次;
- 控制结构测试:条件测试,数据流测试,循环测试;
- 黑盒测试:穷尽测试(输入域的所有可能),随机测试,边界值测试。
6、文档
系统文档:让除原始开发者之外的人能维护和修改软件包;
技术文档:描述软件系统的安装和服务。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34037 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!