程序设计语言与编码ppt课件

上传人:工**** 文档编号:591476980 上传时间:2024-09-17 格式:PPT 页数:19 大小:341.50KB
返回 下载 相关 举报
程序设计语言与编码ppt课件_第1页
第1页 / 共19页
程序设计语言与编码ppt课件_第2页
第2页 / 共19页
程序设计语言与编码ppt课件_第3页
第3页 / 共19页
程序设计语言与编码ppt课件_第4页
第4页 / 共19页
程序设计语言与编码ppt课件_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《程序设计语言与编码ppt课件》由会员分享,可在线阅读,更多相关《程序设计语言与编码ppt课件(19页珍藏版)》请在金锄头文库上搜索。

1、程序设计语言和编码7第第 七七 章章软件的详细设计,完成了软件的过程性的描述,软件的详细设计,完成了软件的过程性的描述,软件的详细设计,完成了软件的过程性的描述,软件的详细设计,完成了软件的过程性的描述,接下来进入程序编码阶段。接下来进入程序编码阶段。接下来进入程序编码阶段。接下来进入程序编码阶段。编码编码编码编码CodingCoding阶段的任务阶段的任务阶段的任务阶段的任务, ,是为每个模块编是为每个模块编是为每个模块编是为每个模块编写程序。即是将详细设计的结果转换为源程序代码。写程序。即是将详细设计的结果转换为源程序代码。写程序。即是将详细设计的结果转换为源程序代码。写程序。即是将详细设

2、计的结果转换为源程序代码。本章从如何提高软件的质量和可维护性的角度,本章从如何提高软件的质量和可维护性的角度,本章从如何提高软件的质量和可维护性的角度,本章从如何提高软件的质量和可维护性的角度,讨论在编码阶段所要解决的主要问题:讨论在编码阶段所要解决的主要问题:讨论在编码阶段所要解决的主要问题:讨论在编码阶段所要解决的主要问题: 程序设计语言的特性及选择的原则程序设计语言的特性及选择的原则程序设计语言的特性及选择的原则程序设计语言的特性及选择的原则 程序设计风格程序设计风格程序设计风格程序设计风格 软件代码审查软件代码审查软件代码审查软件代码审查 按照语言级别可以分为两大类:按照语言级别可以分

3、为两大类: 低级语言低级语言 包括机器语言和汇编语言。包括机器语言和汇编语言。 低级语言表示成二进制形式的机器基本指令集低级语言表示成二进制形式的机器基本指令集,或者是操作码经过符号化的基本指令集,由于其依或者是操作码经过符号化的基本指令集,由于其依赖于特定的机器,其使用复杂、繁琐、费时、易出赖于特定的机器,其使用复杂、繁琐、费时、易出过失,因而程序编写也有一定的难度。过失,因而程序编写也有一定的难度。 高级语言高级语言 高级语言的表示方法要比低级语言更接近于待高级语言的表示方法要比低级语言更接近于待解的问题,其特点是在一定程度上与具体机器无关解的问题,其特点是在一定程度上与具体机器无关,易学

4、、易用、易维护。高级语言的实现极大的提高易学、易用、易维护。高级语言的实现极大的提高了软件的生产效率。了软件的生产效率。7.1 7.1 程序设计语言的选择程序设计语言的选择一、程序设计语言的分类一、程序设计语言的分类 1. 按应用范围分:按应用范围分: 通用语言有:通用语言有:PASCAL、C、C+、Java等等 专用语言有:专用语言有:APT等等 三、高级语言的分类三、高级语言的分类三、高级语言的分类三、高级语言的分类 2. 按用户的要求分为:按用户的要求分为: 过程式语言和非过程式语言;过程式语言和非过程式语言;3. 按使用方式分:按使用方式分: 交互式语言和非交互式语言;交互式语言和非交

5、互式语言;4.按语言的内在特点分:按语言的内在特点分: 系统实现语言系统实现语言 静态高级语言静态高级语言 高级语言高级语言 块结构高级语言;块结构高级语言;7.1 7.1 程序设计语言的选择程序设计语言的选择选择程序设计语言的一般准则:选择程序设计语言的一般准则:1. 1. 项目的应用领域。应尽量选取适合某个应用领域的语言。项目的应用领域。应尽量选取适合某个应用领域的语言。2. 2. 算法和计算复杂性。算法和计算复杂性。 3. 3. 软件的执行环境。要选取机器上能运行且具有相应支持软件软件的执行环境。要选取机器上能运行且具有相应支持软件的语言。的语言。4. 4. 性能因素。应结合工程具体性能

6、来考虑。性能因素。应结合工程具体性能来考虑。 5. 5. 数据结构的复杂性。要根据不同语言构造数据结构类型的能数据结构的复杂性。要根据不同语言构造数据结构类型的能力选取力选取 。6. 6. 软件开发人员的知识水平以及心理因素。要特别注意选择语软件开发人员的知识水平以及心理因素。要特别注意选择语言时,尽量避免受外界的影响,盲目追求高、新的语言。言时,尽量避免受外界的影响,盲目追求高、新的语言。 四、程序设计语言选择准则 五、高级语言的内在特性五、高级语言的内在特性1. 传统的高级语言传统的高级语言 具有代表性有:具有代表性有:BASI、FORTRAN、ALOGOL 2.通用的结构化程序设计语言通

7、用的结构化程序设计语言 具有代表性的有:具有代表性的有: PASCAL、PL/1、C、Ada 等等它们都是从它们都是从 ALOGOL 语言派生出来的。语言派生出来的。 PL/1是第一个真正广泛适用于多种不同的应用领是第一个真正广泛适用于多种不同的应用领域的语言,故又称大型公共汽车语言。支持多任域的语言,故又称大型公共汽车语言。支持多任务处理和复杂的务处理和复杂的I/O功能,表处理等。功能,表处理等。 Ada语言一种用于嵌入式实时计算机设计的标准语言一种用于嵌入式实时计算机设计的标准语言。提供了一组丰富的实时特性,包括多任务语言。提供了一组丰富的实时特性,包括多任务处理处理,中断处理任务间的同步

8、通信等。提供了中断处理任务间的同步通信等。提供了Ada程序包及辅助软件开发的环境。程序包及辅助软件开发的环境。 3. 3. 面向对象的程序设计语言面向对象的程序设计语言Object-OrientedObject-Oriented) 其中具有代表性的有:其中具有代表性的有: Smalltalk Smalltalk语言,最先实现真正的面向对象的程语言,最先实现真正的面向对象的程序设计语言,支持程序部件的序设计语言,支持程序部件的“ “可复用性可复用性” ”。 C+ C+程序设计语言,既融合了面向对象的能力,程序设计语言,既融合了面向对象的能力,又与又与C C兼容,保留了兼容,保留了C C的许多重要

9、特性。维护了大的许多重要特性。维护了大量已开发的量已开发的C C库、工具及库、工具及C C源程序的完整性。具有源程序的完整性。具有代表性的编程环境有:代表性的编程环境有: Borland C+ Borland C+;Microsoft Visual C+Microsoft Visual C+等。等。 Java Java语言,是一种简单的面向对象的分布式的语言,是一种简单的面向对象的分布式的语言。功能强大、高效安全,与结构无关,易于语言。功能强大、高效安全,与结构无关,易于移植,是多线程的动态语言。增加了移植,是多线程的动态语言。增加了Objective CObjective C的扩充,提供更多

10、的动态解决办法的扩充,提供更多的动态解决办法 。具有网络支。具有网络支持、简单、平安。持、简单、平安。 C# C#言语。具有言语。具有JavaJava的几乎所有特征,同时又增加了泛型的几乎所有特征,同时又增加了泛型(generics)(generics)、委托、委托(delegation)(delegation)代码、代码、 表达式等现代高级语表达式等现代高级语言的特性,使其表达能力非常强。言的特性,使其表达能力非常强。 面向对象的可视化语言,即所见即所得,提供了一个可视面向对象的可视化语言,即所见即所得,提供了一个可视化的开发环境,具有图形设计工具,结构化的事件驱动编程模化的开发环境,具有图

11、形设计工具,结构化的事件驱动编程模式。具有代表性的有:式。具有代表性的有:Microsoft Visual BasicMicrosoft Visual Basic、Borland DelphiBorland Delphi等。等。 4. 4.第四代语言第四代语言4GL4GL) 称为称为4GL (The Forth Generation Language)4GL (The Forth Generation Language)。其特点是:不。其特点是:不需要规定算法细节,在更高层次上用不同文法来表示程序结构需要规定算法细节,在更高层次上用不同文法来表示程序结构和数据结构。常见的有:查询语言、程序生成

12、器和其它和数据结构。常见的有:查询语言、程序生成器和其它4GL4GL语语言,如:判断支持语言、原型语言、形式化规格说明语言等。言,如:判断支持语言、原型语言、形式化规格说明语言等。 结构程序设计的概念最早是由结构程序设计的概念最早是由E.W.Dijkstra提出来的,提出来的, 结构化程序设计方法结构化程序设计方法 (Structured Program),即),即SP法法是结构化开发方法的重要组成部分。是结构化开发方法的重要组成部分。 其基本思想是自顶向下、逐步求精。它的基本原则是功能其基本思想是自顶向下、逐步求精。它的基本原则是功能的分解与抽象。的分解与抽象。7.2 结构化程序设计 一、结

13、构化程序设计特点一、结构化程序设计特点 1.自顶而下、逐步求精自顶而下、逐步求精 这种逐步求精的思想符合人类解决复杂问题的这种逐步求精的思想符合人类解决复杂问题的普遍规律,从而可以显著提高软件开发的效率。普遍规律,从而可以显著提高软件开发的效率。 体现了先全局,后局部、先抽象后具体的方法体现了先全局,后局部、先抽象后具体的方法,使开发的程序层次结构清晰,易读、易理解还易验使开发的程序层次结构清晰,易读、易理解还易验证,因而提高了程序的质量。证,因而提高了程序的质量。 2.单入口和单出口的控制结构单入口和单出口的控制结构 结构化的程序是由且仅由顺序、选择、循环三结构化的程序是由且仅由顺序、选择、

14、循环三种基本控制结构组成,既保证了程序结构清晰,又种基本控制结构组成,既保证了程序结构清晰,又提高了程序代码的可重用性。提高了程序代码的可重用性。 二、结构化程序设计的步骤二、结构化程序设计的步骤 提出和分提出和分析问题析问题确定数确定数学模型学模型设计算法设计算法模块化模块化编程编程程序整个编程序整个编译、运转译、运转结构化程序设计步骤 三、优化设计三、优化设计三、优化设计三、优化设计 优化设计有多方面的内容,例如结构的优化,功优化设计有多方面的内容,例如结构的优化,功优化设计有多方面的内容,例如结构的优化,功优化设计有多方面的内容,例如结构的优化,功能的优化,算法的优化和时间、效率的优化等

15、等能的优化,算法的优化和时间、效率的优化等等能的优化,算法的优化和时间、效率的优化等等能的优化,算法的优化和时间、效率的优化等等. .介绍对时间起决定性作用的软件的优化方法介绍对时间起决定性作用的软件的优化方法介绍对时间起决定性作用的软件的优化方法介绍对时间起决定性作用的软件的优化方法: : 不不不不考考考考虑虑虑虑时时时时间间间间因因因因素素素素的的的的前前前前提提提提下下下下开开开开发发发发并并并并精精精精简简简简软软软软件件件件结结结结构。构。构。构。寻寻寻寻求求求求软软软软件件件件设设设设计计计计结结结结构构构构中中中中的的的的 “ “关关关关键键键键路路路路径径径径” ” 和和和和

16、“ “关关关关键事件键事件键事件键事件” ”。仔细的设计该模块的实现算法。仔细的设计该模块的实现算法。仔细的设计该模块的实现算法。仔细的设计该模块的实现算法。选选选选择择择择合合合合适适适适的的的的高高高高级级级级编编编编程程程程语语语语言言言言,提提提提高高高高程程程程序序序序的的的的编编编编译译译译效率。效率。效率。效率。在在在在效效效效率率率率和和和和实实实实现现现现功功功功能能能能之之之之间间间间寻寻寻寻求求求求平平平平衡衡衡衡点点点点。所所所所谓谓谓谓的的的的平平平平衡衡衡衡点点点点指指指指的的的的是是是是,不不不不要要要要求求求求为为为为了了了了一一一一些些些些不不不不必必必必要要

17、要要的的的的功功功功能能能能而而而而耗耗耗耗费大量的时间,从而降低效率,以致得不偿失。费大量的时间,从而降低效率,以致得不偿失。费大量的时间,从而降低效率,以致得不偿失。费大量的时间,从而降低效率,以致得不偿失。7.3 程序设计风格1. 1. 代码文件代码文件代码文件代码文件 符号名的命名。尽量用与实际意义相同或接近的标符号名的命名。尽量用与实际意义相同或接近的标符号名的命名。尽量用与实际意义相同或接近的标符号名的命名。尽量用与实际意义相同或接近的标识符命名。识符命名。识符命名。识符命名。 源程序中的注释源程序中的注释源程序中的注释源程序中的注释 注释可分为序言性注释和解释性注释。错误的注注释

18、可分为序言性注释和解释性注释。错误的注注释可分为序言性注释和解释性注释。错误的注注释可分为序言性注释和解释性注释。错误的注释宁可不要。释宁可不要。释宁可不要。释宁可不要。 注意源程序的书写格式注意源程序的书写格式注意源程序的书写格式注意源程序的书写格式 讨论程序设计风格讨论程序设计风格讨论程序设计风格讨论程序设计风格, ,是力图从编码原则的角度来探是力图从编码原则的角度来探是力图从编码原则的角度来探是力图从编码原则的角度来探讨提高程序的可读性、改善程序质量的方法和途径。讨提高程序的可读性、改善程序质量的方法和途径。讨提高程序的可读性、改善程序质量的方法和途径。讨提高程序的可读性、改善程序质量的

19、方法和途径。 2. 2.语句构造方法语句构造方法 语句构造,尤其是流程控制语句的构造技术,直语句构造,尤其是流程控制语句的构造技术,直接影响到程序的可读性及效率。应采用直接、清晰的接影响到程序的可读性及效率。应采用直接、清晰的构造方式,而不要为了提高效率或者显示技巧而降低构造方式,而不要为了提高效率或者显示技巧而降低程序的清晰性和可读性。程序的清晰性和可读性。 例例例例1 1 若有以下若有以下若有以下若有以下C C程序段,其功能是要建立一个程序段,其功能是要建立一个程序段,其功能是要建立一个程序段,其功能是要建立一个NNNN的单的单的单的单位矩阵位矩阵位矩阵位矩阵V V:for (i = 0;

20、 i N; i+)for (i = 0; i N; i+) for (j = 0; j N; j+) for (j = 0; j N; j+) Vij = (i / j) * (j / i); Vij = (i / j) * (j / i); 程序构思巧妙程序构思巧妙程序构思巧妙程序构思巧妙, ,但易读性差但易读性差但易读性差但易读性差. . 采用直截了当的描述方式:采用直截了当的描述方式:采用直截了当的描述方式:采用直截了当的描述方式: for (i = 0; i N; i+) for (i = 0; i N; i+) for (j = 0; j N; j+) for (j = 0; j N

21、; j+) Vij = (i = j) ? 1 : 0; Vij = (i = j) ? 1 : 0; 3. 3. 数据说明方法数据说明方法 为使程序中的数据说明更易于理解和维护,数据为使程序中的数据说明更易于理解和维护,数据为使程序中的数据说明更易于理解和维护,数据为使程序中的数据说明更易于理解和维护,数据说明的次序应当规范化:说明的次序应当规范化:说明的次序应当规范化:说明的次序应当规范化: 可按说明类型可按说明类型可按说明类型可按说明类型( (常量常量常量常量, ,简单变量类型简单变量类型简单变量类型简单变量类型, ,复杂类型复杂类型复杂类型复杂类型 ) ) 一个语句说明多个变量时,按字

22、母顺序排列。一个语句说明多个变量时,按字母顺序排列。一个语句说明多个变量时,按字母顺序排列。一个语句说明多个变量时,按字母顺序排列。 复杂的数据结构,要加注释。复杂的数据结构,要加注释。复杂的数据结构,要加注释。复杂的数据结构,要加注释。4. 4. 输入输出技术输入输出技术输入输出技术输入输出技术 输入和输出格式应尽可能统一。输入和输出格式应尽可能统一。输入和输出格式应尽可能统一。输入和输出格式应尽可能统一。 输出信息中应该反映输入的数据。输出信息中应该反映输入的数据。输出信息中应该反映输入的数据。输出信息中应该反映输入的数据。 输入和输出应尽可能集中安排。输入和输出应尽可能集中安排。输入和输

23、出应尽可能集中安排。输入和输出应尽可能集中安排。 7.4 7.4 算法与程序效率算法与程序效率 设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效率的关键。率的关键。率的关键。率的关键。 例如:在例如:在例如:在例如:在P139P140 P139P140 中,用中,用中,用中,用C C代码编写了两种绘代码编写了两种绘代码编写了两种绘代码编写了两种绘制直线的算法。制直线的算法。制直线的算法。制直线的算法。 在在在在DDADDA算法中,一共要进行算法中,一共要进行算法中,一共要进行

24、算法中,一共要进行4*dx4*dx次浮点加法和次浮点加法和次浮点加法和次浮点加法和2*dx2*dx次整型到浮点型的类型转换运算;次整型到浮点型的类型转换运算;次整型到浮点型的类型转换运算;次整型到浮点型的类型转换运算; 在在在在BresenhamBresenham算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行dxdx次整数比较运算和最多次整数比较运算和最多次整数比较运算和最多次整数比较运算和最多3*dx3*dx次整数加法运算。次整数加法运算。次整数加法运算。次整数加法运算。 显然,显然,显然,显然,BresenhamBr

25、esenham算法在各方面都比算法在各方面都比算法在各方面都比算法在各方面都比DDADDA算法优算法优算法优算法优越。越。越。越。 1. 算法对效率的影响算法对效率的影响如顺序表的查找算法,假设顺序表的长度为如顺序表的查找算法,假设顺序表的长度为N,很明显,顺序查找法的时间复杂度为很明显,顺序查找法的时间复杂度为O(N),而二分法,而二分法的时间复杂度却只是的时间复杂度却只是O(log2N)。后者的效率明显高于前者后者的效率明显高于前者. 2. 存储效率存储效率操作系统的存储管理方式,直接影响到程序的存操作系统的存储管理方式,直接影响到程序的存储效率。储效率。3. 输入输出效率输入输出效率提高输入提高输入/输出速度,减少出错率。输出速度,减少出错率。一、影响程序效率的因素一、影响程序效率的因素7.5 7.5 软件代码审查软件代码审查 为保证代码开发的质量,在编码完成后,进行代码审查为保证代码开发的质量,在编码完成后,进行代码审查或称或称ReviewReview。 审查内容:审查内容: 1. 1.程序的版式程序的版式 2. 2.文件结构文件结构 3. 3.命名规则命名规则 4. 4.表达式与基本语句表达式与基本语句 详见详见P142P142,表,表7-1 7-1 软件代码审查软件代码审查

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号