1、什么是软件?什么是程序?什么是计算机语言?算法
软件:是完成某些特定功能,一到多个程序文件的组合。数据结构
程序:完成指定功能的指令。数据结构和算法
计算机语言:人与人之间沟通使用的是天然语言。人与计算机进行沟通就使用的是计算机语言。换句话说,计算机语言就是用来和计算机进行交流的。搜索引擎
沃斯:程序 = 数据结构 + 算法翻译
程序和软件之间的关系,就相似于生活中博客和书的关系。设计
2、计算机语言的发展史调试
计算机语言是从二十世纪40年代开始,大体分为3个阶段:对象
第一代计算机语言:机器语言:机器语言所有都是有0和1组成。能够被计算机直接执行。可是,这样的语言不便于理解和记忆。索引
第二代计算机语言:汇编语言:汇编语言并不比机器语言高级多少。由于汇编语言其实就是机器语言的一种助记符。虽然说汇编语言只是一种助记符,可是确实相比机器语言,它的易读性更高事务
第三代计算机语言:高级语言:高级语言的话更加接近咱们平时所使用的天然语言。
高级语言以1980年代为一个分界点:80年代以前的语言都是结构化语言,80年代以后都是面向对象语言。
3、解释器和编译器
使用高级语言写出来的代码,计算机是不能直接执行的,中间须要一个翻译的过程。
翻译器有两种:
编译器:一次性将咱们写出来的程序转换为二进制。相似于生活中将整本外语书翻译成中文。
常见的编译性语言:C# Java
解释器:逐行进行解释。相似于同声传译。
常见的解释性语言:PHP JavaScript Ruby
相比解释性语言,编译性语言的速度更快。可是解释性语言比编译性语言更加灵活。
4、程序设计的步骤
编写程序相似于咱们的盖楼房,须要先有必定的步骤
(1)分析问题
咱们在进行程序开发以前,首先须要进行的就是分析问题。咱们必须明确问题是什么?用户需求是什么?
(2)肯定数据结构和算法
数据结构:怎样将数据存入到计算机里面。
算法:解决问题的方法和步骤
(3) 编制程序
开始敲代码实现具体的功能
(4)调试问题
咱们写出来的代码,99%都是会出现错误的。接下来咱们就须要对这些错误进行调试,直至达到预期结果。
必定程度来说,咱们的代码不是写出来的,而是调试出来的。
5、常见的错误类型
(1)语法错误
这种错误类型是没法经过编译的。这种错误是最容易发现和修改的。
(2)逻辑错误
这种错误是都符合语法规范,代码可以经过编译,可是逻辑思惟有问题,致使不能获得预期的结果。这种错误每每比较难发现
(3)开发错误
每每是指开发的时候偏离了用户需求
(4)运行错误
语法,逻辑,开发方向都是正确的,这种错误每每出现于整个程序的算法有问题。这种算法致使内存泄露,存储空间不足等。因此这个时候须要换一个算法
6、算法:所谓算法,就是指解决问题的方法和步骤。
算法能够分为两大类:数值型运算算法和非数字型运算算法
数值型运算算法:求解数值,获得一个数值的答案
非数值型运算算法:每每应用事务的管理领域,好比搜索引擎,增删改查
算法的特性:
通常来说,算法有5个特色:
(1)有穷性
一个算法应该包含有限的操做步骤而不能是无限的。
(2)肯定性
算法中的每个步骤都应该是有意义的,而不该该是含糊的,模棱两可。
(3) 有零个或者多个输入
根据算法的不一样,有些算法在实现的过程汇总,须要输入一些原始的数据
(4)有一个或者多个输出
设计算法的最终目的就是为了解决问题,因此每一个算法至少应该有一个或者多个输出。
(5)有效性
每个步骤都是可以有效执行的。
7、算法的表示
算法的表示方法很是的多,例如:天然语言表示法,伪代码表示法,流程图表示法,N-S表示法。
(1) 天然语言表示法
就是利用咱们平时所使用的语言,例如中文,英文来表示算法。
例如:交换墨水瓶
第一步:须要一个空瓶
第二步:将黑墨水瓶里面的黑墨水倒入空瓶
第三步:将蓝墨水瓶里面的蓝墨水倒入空的黑墨水瓶
第四步:空瓶中的黑墨水倒入空的蓝墨水瓶
第五步:交换完成
(2) 伪代码表示法
介于天然语言和计算机语言之间的一种方式。使用一些文字和符号来对算法进行表示。
例如:交换墨水瓶
第1步:A:黑墨水瓶 B:蓝墨水瓶 C:空瓶
第2步:A → C (黑墨水倒入空瓶)
第3步:B → A (蓝墨水倒入黑墨水瓶)
第4步:C → B (空瓶中的黑墨水倒入蓝墨水瓶)
第5步:交换结束
(3) 流程图表示法
流程图又称之为框图,它用规定的一系列的图形和流程线来表示算法。