1 计算机发展
电子计算机经历的四个发展时代:
第一代:20世纪50年代,主要采用真空电子管制造计算机。
第二代:20世纪50年代末期,出现了以晶体管为主要元件的第二代计算机。
第三代:1964年,IBM公司推出IBM360系列计算机并垄断了60%~70%的国际市场,它的出现标志着计算机进入第三代。
第四代:随着大规模集成电路和微处理器的出现,计算机进入第四代。
世界上第一台现代意义上的计算机于1946年在美国问世,其名称是ENIAC电子数字积分计算机,它的主要原件是电子管。在ENIAC问世的同时,冯·诺伊曼提出了存储程序的概念。
2 计算机语言
2.1 机器语言
用二进制代码表示的能被计算机识别和执行的指令集合。
如:10000000 加
10010000 减
2.2 汇编语言
利用助记符代替机器语言,同时具有占用存储空间较少,执行效率高的优点。
如:ADD A,B
在汇编阶段,汇编程序对汇编语言源程序进行汇编,生成一个可重定位目标文件,生成一个可重定位目标文件。
2.3 高级语言
使用高级语言编写的程序称为"源程序",源程序无法在计算机上直接运行,必须将其翻译为二进制程序后才能执行。
世界上第一个高级语言是FORTRAN,后来陆续出现很多种高级语言,目前广泛应用的高级语言有C/C++、Java和C#等
翻译程序通常有两种工作方式,即编译方式和解释方式。编译方式是将源程序全部翻译为二进制程序后再执行,在此完成翻译工作的程序称为"编译程序",编译后的二进制程序称为"目标程序";解释方式是翻译一句执行一句,边解释边执行,在此完成翻译工作的程序称为"解释程序"。
源程序是指用高级语言编写的程序,它必须翻译目标程序才能够执行。
3 算法及其描述方法
3.1 算法
解决问题的步骤程序就是算法。
算法必须具备的五个特征:
1、可执行性
2、确定性
3、有穷性
4、有输入信息的说明
5、有输出信息的步骤
3.2 算法描述方法
3.2.1 自然语言
用自然语言描述算法通俗易懂,但文字冗长,容易出现"歧义"。自然语言就是人们日常使用的语言,可以是汉语或英语或其它语言。用自然语言表示通俗易懂,但文字冗长,容易出现"歧义性"。自然语言表示的含义往往不大严格,要根据上下文才能判断其正确含义,描述包含分支和循环的算法时也不很方便。因此,除了那些很简单的问题外,一般不用自然语言描述算法。
3.2.2 传统流程图
流程图是用一些图形表示各种操作。用图形描述算法形象直观、易于理解。
3.2.3 N-S流程图
三种基本结构:顺序结构、选择结构、循环结构。
3.2.4 伪代码
伪代码是用介于自然语言和计算机语言之间的文字和符号描述算法。
3.2.5 计算机语言
计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序才能被计算
机执行(当然还要编译为目标程序才能被计算机识别和执行)。
解决问题的步骤序列就是算法.
4 程序和程序设计方法
4.1 计算机程序
计算机程序(简称程序)是指根据算法描述,用计算机语言表示的能被计算机识别和执行的指令集合。
4.2 程序设计方法
结构化程序设计方法的优点:
1、采用自顶向下,逐步求精的方法使得整个设计方案层次分明,程序员容易编码实现,读者容易阅读理解。对于复杂的程序,可以"先易后难,先抽象后具体",使得程序设计工作整体思路清楚,目标明确,程序员能够有条不絮地推进。
2、程序由相互独立的模块构成,因此在设计某个模块时,不会受到其他模块的牵连,因而可将较为复杂的问题化简为一系列简单模块的设计。模块的独立性还为扩充已有的系统、建立新系统带来方便。
面向对象程序设计与传统的结构化程序设计相比,面向对象程序设计吸取了结构化程序设计的一切优点(自顶向下、逐步求精的设计原则),而二者之间的最大差别表现在:
1、面向对象方法采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构化程序由于数据和过程分离引起的弊病。
2、面向对象的程序是由类、对象(类的实例)和对象之间的动态联系组成的。而结构化程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的。