内容提示:开始学习程序设计开发前,首先要了解什么是程序、算法以及如何使用流程图对算法进行描述等基础性问题。本章旨在使读者对程序设计和Java语言有一个初步的认识,为以后的学习打下基础。其内容主要包括程序设计中涉及的一些基本概念,程序设计的方法,以及面向对象程序设计的相关特征,另外对Java语言的发展、主要特点以及应用进行了介绍。
程序是指操作计算机完成特定任务的指令的集合,程序由程序设计语言来实现。算法用来描述程序的实现步骤。
人类的语言是一个渐变发展的过程,正像人与人之间的交流是从手势逐渐进化到语言一样,人们与计算机之间的交流也是从简单的机械开关开始逐渐发展到程序设计语言(Programming Language)——计算机语言。
计算机语言的发展从面向机器到面向结构过程再到今天的面向对象,根据其所提供的指令能否被计算机直接执行,又可将其分为机器语言、汇编语言和高级语言。
1.机器语言
仅由硬件组成的计算机只能接受由“0”和“1”组成的二进制信息,要操作计算机就要编写一系列的二进制代码。这些由“0”和“1”组成,能够让计算机直接执行的指令叫做机器指令,由机器指令组成的集合称为机器语言(Machine Language)。
每条机器指令都是一串二进制代码。虽然对于人类来说要记住每一条机器指令及其含义是非常困难的,但是计算机却可以直接识别并执行,因此计算机执行机器语言的效率是最高的。
例如在某计算机上要完成1+2的加法运算,要用10111000命令将加数1(二进制为00000001)保存,用00000100命令完成1+2(二进制为00000010)的运算。机器语言代码如下:
10111000
00000001
00000100
00000010
可以看到使用机器语言编写出来的程序十分难以阅读,同时机器语言与计算机硬件有关,不同系列计算机上运行的机器指令各不相同,一台计算机上编制的程序在另一台计算机上可能根本无法运行,一个问题要在多个计算机上求解,就必须重复编写多个应用程序。因此机器语言开发程序的缺点是:难以编写、调试、移植和维护。
2.汇编语言
在机器语言的基础上,利用一些英文缩写的助记符表示机器语言中的指令,通过一个汇编程序翻译成机器语言后再执行,这种语言称为汇编语言(Assembly Language)。汇编语言也是一种面向机器的程序设计语言。汇编语言使用符号来表示指令,例如要完成1+2的加法运算,需要使用MOV命令将加数1保存在累加器AL中,然后使用ADD命令完成1+2的运算。汇编语言代码如下:
MOV AL,1
ADD AL,2
一般来说汇编语言指令与机器语言指令之间是一一对应的。汇编语言通常都为特定的计算机系统而设计,虽然比机器语言容易理解,但即使实现简单的功能,其编写的代码仍然很长,同时仍然没有解决编程语言对计算机硬件的依赖关系。
3.高级语言
为了提高编程的效率,在汇编语言的基础上,人们开发了高级语言(High-level Language)。高级语言更加接近自然语言,所以它的代码简短、易学易用,用一条语句就能够完成大量的任务。高级语言使程序开发者能够编写更像英语的指令,可以包含常用的数学符号,例如用Java完成1+2的加法运算,只需:x=1+2即可。
常见的面向结构化的高级语言有:FORTRAN、ALGOL、COBOL、PASCAL、BASIC、C等。
常见的面向对象的高级语言有:C++、JAVA、VB、DELPHI等。
高级语言同样不能被计算机直接执行,而是需要通过语言翻译程序将其转换为计算机可以执行的代码。按照语言程序的翻译方式不同,可分为解释型翻译程序和编译型翻译程序。
解释型翻译程序(解释器)在工作时读入源程序一句,翻译一句,执行一句,这样反复操作直到最终完成。编译型翻译程序(编译器)则将高级语言写的源程序转变为计算机可以识别的机器语言,然后交给计算机执行。编译方式速度较快,而解释方式交互性更强。
程序是用来解决特定问题的,而算法是对解决问题步骤的描述。算法本身也可以采取不同的方式进行描述,常用的有:自然语言描述、伪代码描述和程序流程图描述。
1.自然语言描述
就是通过人类常用的语言对解决问题的过程进行描述。例如要进行两个数据的加法运算,利用自然语言描述如下:
第1步:输入两个数据,分别存储在变量x和y中。
第2步:完成x+y的运算,将结果保存在变量z中。
第3步:输出变量z的值。
2.伪代码描述
伪代码(Pseudo code)是人为的非正式语言,类似于日常的英语,方便而且容易掌握,但不是实际计算机编程语言,只是帮助程序员开发算法而用。例如下面的一段伪代码:
x←a
y←b
z←0
z←x+y;
3.程序流程图描述
程序流程图就是使用图形对算法进行描述,这些图形有固定的含义。用图形表示算法,直观形象便于理解。目前常用的是两种流程图:标准流程图和N-S流程图。
标准流程图主要涉及的图形及其含义如表1-1所示。
表1-1 标准流程图图形含义
|
图形 |
含义 |
|
|
起止框(圆弧形)——表示程序的开始或终止 |
|
|
处理框(矩形)——表示一般的处理功能 |
|
|
输入输出框(平行四边形)——数据的输入和输出 |
|
|
判断框(菱形)——表示对一个给定的条件进行判断,根据条件是否成立决定如何执行其后的操作。 |
|
|
流程线——表示程序流程的路径和方向 |
|
|
连接点(圆圈)——用于将画在不同地方的流程线连接起来可以避免流程线的交叉或过长。 |
例如用流程图描述两个数据的加法运算,如图1-1所示。
图1-1 用标准流程图描述