程序设计与算法分析.ppt
《程序设计与算法分析.ppt》由会员分享,可在线阅读,更多相关《程序设计与算法分析.ppt(124页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 程序设计与程序设计与算法分析算法分析本章要点本章要点初步了解程序设计的基础知识初步了解程序设计的基础知识掌握结构化程序设计和面向对象程序设计的基本方掌握结构化程序设计和面向对象程序设计的基本方法法掌握数据结构中的基本数据类型及其实现掌握数据结构中的基本数据类型及其实现掌握程序设计算法的基本思想及几种经典的算法掌握程序设计算法的基本思想及几种经典的算法了解编译原理的基本知识了解编译原理的基本知识6.1.1 6.1.1 程序的概念程序的概念程序程序就是能够实现特定功能的一组指令序列的就是能够实现特定功能的一组指令序列的集合。集合。程序设计程序设计是程序员编写一系列可存储的指令以是程序
2、员编写一系列可存储的指令以指示计算机完成某些工作的过程。这些指令用指示计算机完成某些工作的过程。这些指令用程序设计语言写成。程序设计语言写成。程序设计语言程序设计语言是一组专门设计的用来生成一系是一组专门设计的用来生成一系列可被计算机处理和执行的指令的符号集合。列可被计算机处理和执行的指令的符号集合。程序设计人员用程序设计语言写成的指令称作程序设计人员用程序设计语言写成的指令称作代码代码。6.1 6.1 程序设计基础程序设计基础6.1.2 6.1.2 计算机程序设计语言计算机程序设计语言分类:分类:低级语言、高级语言。低级语言、高级语言。1)低级语言包括两种类型:机器语言和汇)低级语言包括两种
3、类型:机器语言和汇编语言。编语言。机器语言机器语言机器语言面向机器,可以由机器语言面向机器,可以由CPU直接识直接识别和执行。别和执行。不同的机器能够识别的机器语言是不相不同的机器能够识别的机器语言是不相同的。同的。机器语言指令都是用一串机器语言指令都是用一串0、1构成的二构成的二进制位串来表示的。进制位串来表示的。指令系统是机器提供的机器指令的集合。指令系统是机器提供的机器指令的集合。用二进制编码表示的指令,称为机器指用二进制编码表示的指令,称为机器指令,或称为机器码。令,或称为机器码。用机器指令编写的程序称为机器语言程用机器指令编写的程序称为机器语言程序,或称为目标程序,这是计算机能够序,
4、或称为目标程序,这是计算机能够直接执行的程序。直接执行的程序。机器语言难以阅读和理解,编写和修改机器语言难以阅读和理解,编写和修改都比较困难,而且通用性较差都比较困难,而且通用性较差。汇编语言汇编语言汇编语言也称符号语言。汇编语言也称符号语言。指令助记符是指令英文名称的缩写,容指令助记符是指令英文名称的缩写,容易记忆。易记忆。所谓汇编语言,就是采用字母、数字和所谓汇编语言,就是采用字母、数字和符号来代替由一个个符号来代替由一个个0和和1构成的指令操构成的指令操作码、寄存器、数据和存储地址等,并作码、寄存器、数据和存储地址等,并在程序中用它们代替二进制编码数,这在程序中用它们代替二进制编码数,这
5、样编写出来的程序就称为符号语言程序样编写出来的程序就称为符号语言程序或汇编语言程序。或汇编语言程序。大多数情况下,一条汇编指令直接对应大多数情况下,一条汇编指令直接对应一条机器指令,少数对应几条机器指令。一条机器指令,少数对应几条机器指令。汇编语言具有一个本质上与机器语言一汇编语言具有一个本质上与机器语言一一对应的指令系统。汇编语言的实质和一对应的指令系统。汇编语言的实质和机器语言是相同的。机器语言是相同的。低级语言的特点低级语言的特点 都与特定的计算机硬件系统紧密相关,来自都与特定的计算机硬件系统紧密相关,来自于特定系统的指令系统,可移植性差;于特定系统的指令系统,可移植性差;专业知识要求高
6、,要求对计算机硬件的结构专业知识要求高,要求对计算机硬件的结构和工作原理非常熟悉;和工作原理非常熟悉;每条指令的功能很单一,程序员编制源程序每条指令的功能很单一,程序员编制源程序时指令比较繁琐;时指令比较繁琐;由于直接针对特定硬件编程,所以,最终的由于直接针对特定硬件编程,所以,最终的可执行程序代码精炼,而且执行效率非常高。可执行程序代码精炼,而且执行效率非常高。两者主要的区别在于:机器语言无需翻两者主要的区别在于:机器语言无需翻译或编译,译或编译,CPU能够直接识别和执行。能够直接识别和执行。而汇编语言必须经过汇编才能得到目标而汇编语言必须经过汇编才能得到目标程序。程序。汇编汇编虽然汇编语言
7、比机器语言容易阅读理解和便于虽然汇编语言比机器语言容易阅读理解和便于检查,所以仍然需要一种特殊的程序,该程序检查,所以仍然需要一种特殊的程序,该程序能够将用汇编语言编写的程序能够将用汇编语言编写的程序“翻译翻译”成成CPU能够识别的机器语言。能够识别的机器语言。实现这种翻译功能的特殊程序称为实现这种翻译功能的特殊程序称为汇编语言翻汇编语言翻译程序、汇编程序或汇编器译程序、汇编程序或汇编器。程序员手工编写。程序员手工编写的程序统称为源程序,用汇编语言编写的源程的程序统称为源程序,用汇编语言编写的源程序称为汇编语言源程序,汇编程序将源程序翻序称为汇编语言源程序,汇编程序将源程序翻译得到的机器语言程
8、序称为目标程序,翻译的译得到的机器语言程序称为目标程序,翻译的过程称为过程称为汇编汇编。反汇编程序反汇编程序用于将目标代码程序转换成相用于将目标代码程序转换成相应的汇编语言源程序,这一过程称为反应的汇编语言源程序,这一过程称为反汇编。反汇编主要用于识别源程序代码,汇编。反汇编主要用于识别源程序代码,常用的调试工具程序常用的调试工具程序DEBUG就提供了反就提供了反汇编功能。汇编功能。高级语言的产生高级语言的产生一个问题:如何解决程序的可移植性,即:程一个问题:如何解决程序的可移植性,即:程序员编写的源程序如何可以从一台计算机很容序员编写的源程序如何可以从一台计算机很容易地转到另一台计算机上工作
9、。为了解决这些易地转到另一台计算机上工作。为了解决这些问题,人们引入了高级语言来编写程序。问题,人们引入了高级语言来编写程序。所谓高级语言是一种由表达各种意义的所谓高级语言是一种由表达各种意义的“词词”和和“公式公式”,按照一定的,按照一定的“语法规则语法规则”来编写来编写程序的语言,又称为程序设计语言或算法语言。程序的语言,又称为程序设计语言或算法语言。高级语言之所以高级语言之所以“高级高级”,就是因为它使程序,就是因为它使程序员可以完全不用与计算机的硬件打交道,可以员可以完全不用与计算机的硬件打交道,可以不必了解机器的指令系统。不必了解机器的指令系统。程序员可以把硬件上复杂的概念比如存储空
10、间程序员可以把硬件上复杂的概念比如存储空间抽象成一个所谓的变量之类的概念,因而程序抽象成一个所谓的变量之类的概念,因而程序员就可以绕开硬件问题而集中精力解决问题本员就可以绕开硬件问题而集中精力解决问题本身,编程效率大大提高。身,编程效率大大提高。由于高级语言与具体机器无关,那么在一种机由于高级语言与具体机器无关,那么在一种机器上运行的高级语言程序可以几乎不经改动地器上运行的高级语言程序可以几乎不经改动地移植到另一种机器上运行,大大提高了程序的移植到另一种机器上运行,大大提高了程序的通用性。通用性。此外,由于高级语言与自然语言此外,由于高级语言与自然语言(尤其是英语尤其是英语)很相似,因此易学、
11、易懂,也易编写。很相似,因此易学、易懂,也易编写。高级语言的常见类型高级语言的常见类型目前已经有许多高级语言在流行,并且目前已经有许多高级语言在流行,并且新的类型还在不断出现和升级。新的类型还在不断出现和升级。用户在实际应用中进行程序设计时,可用户在实际应用中进行程序设计时,可根据情况选择适合的高级语言。根据情况选择适合的高级语言。(1)BASIC语言语言(2)FORTRAN语言语言(3)COBOL语言语言(4)PASCAL语言语言(5)C语言语言(6)C+语言语言(7)其他高级语言其他高级语言基于视窗类操作系统的,如基于视窗类操作系统的,如Visual Basic、Visual C+、Del
12、phi、Power Builder、Java等等等。等。高级语言的优点是语句的功能强,源程序比较高级语言的优点是语句的功能强,源程序比较短,容易学习,使用方便,通用性较强,便于短,容易学习,使用方便,通用性较强,便于推广和交流。推广和交流。其缺点是编译程序比汇编程序复杂,而且编译其缺点是编译程序比汇编程序复杂,而且编译出来的目标程序往往效率不高,目标程序的长出来的目标程序往往效率不高,目标程序的长度比有经验的程序员所编的同样功能的汇编语度比有经验的程序员所编的同样功能的汇编语言程序要长言程序要长半以上,运行时间也要长一些。半以上,运行时间也要长一些。因此,在很多对时间要求比较高的系统,如某因此
13、,在很多对时间要求比较高的系统,如某些实时控制系统或者大型计算机控制系统中,些实时控制系统或者大型计算机控制系统中,低级语言,主要是汇编语言,仍然得到了一定低级语言,主要是汇编语言,仍然得到了一定的应用。的应用。6.1.3 6.1.3 高级语言的基本内容高级语言的基本内容高级程序设计语言依赖于各自特定的语句和语高级程序设计语言依赖于各自特定的语句和语法。一条一条的语句是构成源程序的基本单位。法。一条一条的语句是构成源程序的基本单位。高级语言的一条语句被编译或解释时往往会对高级语言的一条语句被编译或解释时往往会对应多条机器指令。应多条机器指令。每一种编程语言都包含一组语句和语法。所谓每一种编程语
14、言都包含一组语句和语法。所谓语法,是指管理语言结构和语句的一组规则。语法,是指管理语言结构和语句的一组规则。不论使用何种设计语言,都必须遵循其语法规不论使用何种设计语言,都必须遵循其语法规则。则。以下内容主要描述了大多数高级语言都共同具以下内容主要描述了大多数高级语言都共同具备的特性,但不一定是所有高级语言都有的。备的特性,但不一定是所有高级语言都有的。1 1高级语言的基本符号高级语言的基本符号高级语言都是由所谓的基本符号组成的。基本高级语言都是由所谓的基本符号组成的。基本符号可以分为单字符和多字符两种情况。单字符号可以分为单字符和多字符两种情况。单字符基本符号由单个字符组成,在高级语言中通符
15、基本符号由单个字符组成,在高级语言中通常都有下列几种单字符基本符号:常都有下列几种单字符基本符号:(1)字母字母大写英文字母大写英文字母AZ,小写英文字母小写英文字母az,共共52个符号。个符号。(2)数字数字09,共,共10个数字符号。个数字符号。(3)特殊字符特殊字符(加加),(减减),*(乘乘),/(除除),(乘乘方方),(等号等号),(左括号左括号),)(右括号右括号),(大于大于),(小于小于),(逗号逗号),(空空格格)等。等。在高级语言中的多字符基本符号由两个在高级语言中的多字符基本符号由两个或两个以上的字符组成,例如或两个以上的字符组成,例如GoTo(转移转移)、(小于或等于小
16、于或等于)、AND(与与)等等。等等。2 2高级语言的基本元素高级语言的基本元素基本元素由基本符号组成,可分为数、基本元素由基本符号组成,可分为数、逻辑值、名字、标号和字符串等五大类。逻辑值、名字、标号和字符串等五大类。(1)数数它由它由09共共10个基本数字和其他一些符个基本数字和其他一些符号号(如小数点如小数点“.”、正负号、正负号“、”及指数符号及指数符号“E”等所构成。等所构成。(2)逻辑值逻辑值由真由真(True)和假和假(False)两个值表示。两个值表示。(3)名字名字由字符组成,一般约定名字的开头是字母或者由字符组成,一般约定名字的开头是字母或者下划线,其后可为字母或数字,如下
17、划线,其后可为字母或数字,如XYZ、A123、_C等。名字可用来定义常量、变量、函数、过等。名字可用来定义常量、变量、函数、过程或子程序的,也被用来定义成某些东西,故程或子程序的,也被用来定义成某些东西,故也称为标识符。在高级语言中,一般还规定了也称为标识符。在高级语言中,一般还规定了组成名字的字符的长度,即字符个数。组成名字的字符的长度,即字符个数。(4)标号标号是在高级语言中的程序语句前所加的一个名字,是在高级语言中的程序语句前所加的一个名字,主要用来指示程序可能的转移方向。主要用来指示程序可能的转移方向。(5)字符串字符串由一串字符所组成。在不同的高级语言由一串字符所组成。在不同的高级语
18、言中,字符串中的多个字符放在一对单引中,字符串中的多个字符放在一对单引号或双引号中。号或双引号中。3 3基本的数据类型基本的数据类型任何一种高级语言都会定义一些基本的任何一种高级语言都会定义一些基本的数据类型。基本的数据类型通常包括整数据类型。基本的数据类型通常包括整数数据类型、实数数据类型和字符数据数数据类型、实数数据类型和字符数据类型等。类型等。在程序中,除了值无需改变的常数外,在程序中,除了值无需改变的常数外,大部分数据的值是可以修改的。在程序大部分数据的值是可以修改的。在程序中,中,变量变量是指代表某个具体数值,并且是指代表某个具体数值,并且所代表的数值可改变的一个符号名字。所代表的数
19、值可改变的一个符号名字。变量必须先定义,然后才能使用,这是变量必须先定义,然后才能使用,这是条基条基本原则。本原则。变量实质上代表了一个特定大小的内存单元空变量实质上代表了一个特定大小的内存单元空间。间。定义变量的实质就是让程序为该变量分配一个定义变量的实质就是让程序为该变量分配一个特定的内存空间。特定的内存空间。变量的类型实质上反映了该数据占用内存空间变量的类型实质上反映了该数据占用内存空间的大小,即分配给该变量代表的数据的所占据的大小,即分配给该变量代表的数据的所占据的内存单元的字节数目。的内存单元的字节数目。4 4结构数据类型结构数据类型是在基本数据类型的基础上构造出来的数据类是在基本数
20、据类型的基础上构造出来的数据类型。数组和结构体是大多数高级语言都支持的型。数组和结构体是大多数高级语言都支持的两种最基本的结构数据类型。两种最基本的结构数据类型。(1)数组类型数组类型数组是若干个相同类型的数据的集合。数组是若干个相同类型的数据的集合。(2)用户自定义的结构体类型用户自定义的结构体类型结构体是隶属于同一个事物的多个不同类型的结构体是隶属于同一个事物的多个不同类型的数据的集合,用来表示具有若干个属性的一个数据的集合,用来表示具有若干个属性的一个事物。事物。除了以上两种最基本的结构数据类型外,许多除了以上两种最基本的结构数据类型外,许多高级语言还有比如枚举、集合,以及更复杂的高级语
21、言还有比如枚举、集合,以及更复杂的队列、堆栈等多种数据类型。队列、堆栈等多种数据类型。结构数据类型在使用时也必须定义相应类型的结构数据类型在使用时也必须定义相应类型的“变量变量”名字。名字。5 5运算符与表达式运算符与表达式表达式是由基本符号、基本元素和各种数据通表达式是由基本符号、基本元素和各种数据通过各种运算符连接而成的。按表达式的运算结过各种运算符连接而成的。按表达式的运算结果可以分为果可以分为算术表达式、逻辑表达式和字符串算术表达式、逻辑表达式和字符串表达式表达式等几种情况。等几种情况。高级语言中的运算符大致包括以下几个方面:高级语言中的运算符大致包括以下几个方面:(1)逻辑运算:逻辑
22、运算:与、或、非、异或。与、或、非、异或。(2)算术运算:算术运算:加、减、乘、除、取模。加、减、乘、除、取模。(3)数据比较:数据比较:大于、小于、等于、不等于。大于、小于、等于、不等于。(4)数据传送;数据传送;输入、输出、赋值。输入、输出、赋值。(5)算术表达式:算术表达式:该表达式的运算结果是数,该表达式的运算结果是数,它非常近似于日常的数学公式。它非常近似于日常的数学公式。(6)关系运算表达式:关系运算表达式:该表达式的运算结果是该表达式的运算结果是逻辑值,常用的运算符包含逻辑值,常用的运算符包含(大于大于)、(小小于于)、(等于等于)、(小于等于小于等于)、(大于大于等于等于)、不
23、等于。、不等于。(7)字符串表达式:字符串表达式:该表达式的运算结果是字该表达式的运算结果是字符串。符串。6 6语句语句语句是构成高级语言源程序的基本单位,语句是构成高级语言源程序的基本单位,是由基本元素、运算符、表达式等组成。是由基本元素、运算符、表达式等组成。任何一种高级语言往往都支持赋值、条任何一种高级语言往往都支持赋值、条件判断、循环、输入输出等语句。程序件判断、循环、输入输出等语句。程序员利用这些语句的结合,能够很方便地员利用这些语句的结合,能够很方便地编制出功能强大的程序。编制出功能强大的程序。7 7库函数和用户自定义的函数库函数和用户自定义的函数为了支持用户编写出功能强大的源程序
24、,为了支持用户编写出功能强大的源程序,几乎所有的高级语言都为用户提供了丰几乎所有的高级语言都为用户提供了丰富的库函数,这些库函数能够实现某些富的库函数,这些库函数能够实现某些特定的功能,比如计算一个比较复杂的特定的功能,比如计算一个比较复杂的数学函数。数学函数。在源程序中,用户也可以自己定义自己在源程序中,用户也可以自己定义自己的函数的函数(子程序或过程子程序或过程),以便以后可以,以便以后可以反复调用这些代码集合。反复调用这些代码集合。8 8注释注释任何一种程序设计语言都强调注释的重要性。任何一种程序设计语言都强调注释的重要性。源程序所包含的代码往往比较冗长,添加必要源程序所包含的代码往往比
25、较冗长,添加必要的注释不仅有助于阅读程序,更重要的是,在的注释不仅有助于阅读程序,更重要的是,在需要对程序功能进行扩充时,注释可以极大地需要对程序功能进行扩充时,注释可以极大地帮助程序员对原始程序的理解。帮助程序员对原始程序的理解。经常会出现这样一种情况,程序员自己编写的经常会出现这样一种情况,程序员自己编写的程序,经过一段时间后,可能就是半年或者几程序,经过一段时间后,可能就是半年或者几个月以后,程序员自己也读不懂自己的程序了。个月以后,程序员自己也读不懂自己的程序了。况且,程序不仅要自己看得懂,更重要的是也况且,程序不仅要自己看得懂,更重要的是也要让别人能够看懂。要让别人能够看懂。9 9程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 算法 分析
限制150内