第9章-程序设计基础-新编大学计算机基础教程课件.ppt

上传人(卖家):晟晟文业 文档编号:5099261 上传时间:2023-02-10 格式:PPT 页数:85 大小:1.06MB
下载 相关 举报
第9章-程序设计基础-新编大学计算机基础教程课件.ppt_第1页
第1页 / 共85页
第9章-程序设计基础-新编大学计算机基础教程课件.ppt_第2页
第2页 / 共85页
第9章-程序设计基础-新编大学计算机基础教程课件.ppt_第3页
第3页 / 共85页
第9章-程序设计基础-新编大学计算机基础教程课件.ppt_第4页
第4页 / 共85页
第9章-程序设计基础-新编大学计算机基础教程课件.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、第第9章章 程序设计基础程序设计基础9.1 程序设计的基本过程程序设计的基本过程9.2 算法算法9.3 程序设计方法程序设计方法9.4 高级语言程序设计实例高级语言程序设计实例第第9章章 程序设计基础程序设计基础计算机能完成预定的任务是硬件和软件协同工作的结果,而计算机之计算机能完成预定的任务是硬件和软件协同工作的结果,而计算机之所以比电视机、所以比电视机、DVD 机、计算器等其他电子设备功能更灵活,是因机、计算器等其他电子设备功能更灵活,是因为计算机软件的为计算机软件的“可编程可编程”,也就是说,同样的硬件配置,加载不同,也就是说,同样的硬件配置,加载不同的软件就可以完成不同的工作。的软件就

2、可以完成不同的工作。当用户使用计算机来完成某项工作时,将会面临两种情况。一种情况当用户使用计算机来完成某项工作时,将会面临两种情况。一种情况是可借助现成的应用软件完成,如文字处理可使用是可借助现成的应用软件完成,如文字处理可使用Word,表格处理,表格处理可使用可使用Excel,科学计算可选择,科学计算可选择Matlab,绘制图形可采用,绘制图形可采用Photoshop 等;等;另一种情况是没有完全合适的软件可供使用,这时就需要使用计算机另一种情况是没有完全合适的软件可供使用,这时就需要使用计算机语言编制程序来完成特定功能,这就是程序设计。语言编制程序来完成特定功能,这就是程序设计。什么是程序

3、呢?程序就是解决实际问题的操作步骤,它是一个有限的什么是程序呢?程序就是解决实际问题的操作步骤,它是一个有限的操作序列。如求一元二次方程操作序列。如求一元二次方程ax2+bx+c=0 实根的程序是:实根的程序是:下一页返回第第9章章 程序设计基础程序设计基础(1)输入系数)输入系数a,b,c。(2)计算)计算=b24ac。(3)判断:若)判断:若=0,则计算,则计算 x 1=(b+)/(2a),x2=(b )/(2a),并输出,并输出x 1,x2,然后结束;若,然后结束;若 0则输出该方程无实根的信则输出该方程无实根的信息,结束。息,结束。显然,如果程序由人来执行的,程序只要用人工语言来描述就

4、行了,显然,如果程序由人来执行的,程序只要用人工语言来描述就行了,如果是由计算机来执行的,则必须用计算机能够接受的计算机语言来如果是由计算机来执行的,则必须用计算机能够接受的计算机语言来描述。因此,程序是计算机能够完成的实际操作指令序列。描述。因此,程序是计算机能够完成的实际操作指令序列。上一页返回9.1 程序设计的基本过程程序设计的基本过程9.1.1 程序设计语言的分类程序设计语言的分类根据程序设计语言发展的历程,可将其大致分四类。根据程序设计语言发展的历程,可将其大致分四类。1.机器语言机器语言机器语言是用二进制代码表示的计算机能直接识别和执行的机器指令机器语言是用二进制代码表示的计算机能

5、直接识别和执行的机器指令的集合,即处理器的指令系统。机器语言的优点是能够被计算机直接的集合,即处理器的指令系统。机器语言的优点是能够被计算机直接识别、执行速度快。其缺点是难记忆、难书写、难编程、易出错、可识别、执行速度快。其缺点是难记忆、难书写、难编程、易出错、可读性差、可移植性差。读性差、可移植性差。下一页返回9.1 程序设计的基本过程程序设计的基本过程2.汇编语言汇编语言为了克服机器语言的缺点,人们采用与代码指令实际含义相近的英文为了克服机器语言的缺点,人们采用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码,产生了汇编语言(也称缩写词、字母和数字等符号来取代指令代码,产

6、生了汇编语言(也称为符号语言)。汇编语言是由一条条助记符所组成的指令系统。使用为符号语言)。汇编语言是由一条条助记符所组成的指令系统。使用汇编语言编写的程序(汇编语言源程序),计算机不能直接识别,需汇编语言编写的程序(汇编语言源程序),计算机不能直接识别,需要由一种起翻译作用的程序(汇编程序),将其翻译成机器语言程序要由一种起翻译作用的程序(汇编程序),将其翻译成机器语言程序(目标程序),计算机方可执行,这一翻译过程称之为(目标程序),计算机方可执行,这一翻译过程称之为“汇编汇编”。不同指令集的处理器系统都有自己相应的汇编语言,因此汇编语言与不同指令集的处理器系统都有自己相应的汇编语言,因此汇

7、编语言与机器语言一样可移植性较差。机器语言一样可移植性较差。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程3.高级语言高级语言计算机技术的发展促使人们寻求一种与人类语言相接近且能为计算机计算机技术的发展促使人们寻求一种与人类语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的语言称为高级语言。这种与自然语言相近并为计算机所接受和执行的语言称为高级语言。用高级语言编写程序时,程序员可以不必了解计算机的内部逻辑,而用高级语言编写程序时,程序员可以不必了

8、解计算机的内部逻辑,而主要考虑问题的解决方法。高组语言的源程序需要翻译成机器语言程主要考虑问题的解决方法。高组语言的源程序需要翻译成机器语言程序才能执行,翻译方式有两种:编译方式和解释方式。编译方式是由序才能执行,翻译方式有两种:编译方式和解释方式。编译方式是由编译程序将高级语言源程序编译程序将高级语言源程序“翻译翻译”成目标程序;解释方式是由解释成目标程序;解释方式是由解释程序对高级语言的源程序逐条程序对高级语言的源程序逐条“翻译翻译”执行,不生成目标程序。执行,不生成目标程序。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程(1)传统的高级程序设计语言)传统的高级程序设计语言

9、 1954 年,约翰年,约翰巴克斯发明了巴克斯发明了FORTRAN 语言。语言。FORTRAN 是最早是最早出现的高级程序设计语言,主要应用在科学、工程计算领域。出现的高级程序设计语言,主要应用在科学、工程计算领域。1958 年,诞生了年,诞生了ALGOL 语言,其优点是引入了局部变量和递归语言,其优点是引入了局部变量和递归过程概念,提供了较为丰富的控制结构和数据类型,对后来的高级语过程概念,提供了较为丰富的控制结构和数据类型,对后来的高级语言产生了深刻的影响。言产生了深刻的影响。1960 年出现的年出现的COBOL 是商用数据处理应用中广泛使用的标准语是商用数据处理应用中广泛使用的标准语言。

10、言。COBOL 通用性强,容易移植,并提供了与事务处理有关的大范通用性强,容易移植,并提供了与事务处理有关的大范围的过程化技术。围的过程化技术。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程 1964 年,汤姆年,汤姆库斯和约翰库斯和约翰凯孟尼创建了一种新的计算机高级语言,凯孟尼创建了一种新的计算机高级语言,这种语言语句简洁、语法简单,风格轻松活泼,又简单易学,被称为这种语言语句简洁、语法简单,风格轻松活泼,又简单易学,被称为“初学者通用符号指令代码初学者通用符号指令代码”,这就是著名的,这就是著名的BASIC 语言,该语言语言,该语言在微型机上得到了广泛应用。目前在微型机上得

11、到了广泛应用。目前BASIC 语言有多种版本,语言有多种版本,Microsoft Visual Basic 是目前使用最广泛的是目前使用最广泛的BASIC 语言开发工具,它语言开发工具,它提供了一个可视的开发环境,具有图形设计工具、面向对象的结构化提供了一个可视的开发环境,具有图形设计工具、面向对象的结构化的事件驱动编程模式、开放的环境,使用户可以既快又简便地编制出的事件驱动编程模式、开放的环境,使用户可以既快又简便地编制出Windows 的各种应用程序。的各种应用程序。(2)通用的结构化程序设计语言)通用的结构化程序设计语言结构化程序设计语言的特点是具有很强的过程功能和数据结构功能,结构化程

12、序设计语言的特点是具有很强的过程功能和数据结构功能,并提供结构化的逻辑构造。这一类语言的代表有并提供结构化的逻辑构造。这一类语言的代表有Pascal、C 和和Ada 等,等,它们都是从它们都是从ALGOL 语言派生出来的。语言派生出来的。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程 20 世纪世纪60 年代末研制的年代末研制的Pascal 语言体现了结构化程序设计的思想,语言体现了结构化程序设计的思想,特别适合用来进行程序设计原理和高级语言的数学。特别适合用来进行程序设计原理和高级语言的数学。Borland 公司的公司的Turbo Pascal 是使用比较广泛的版本。是使用比

13、较广泛的版本。1972 年,美国贝尔实验室的年,美国贝尔实验室的Dennis Ritchie 发明了发明了C 语言。语言。C 语言语言的主要特点是:具有丰富的数据结构;基本程序结构是函数调用,支的主要特点是:具有丰富的数据结构;基本程序结构是函数调用,支持用户自定义函数以扩充语言的功能;与汇编语言接口好;具有丰富持用户自定义函数以扩充语言的功能;与汇编语言接口好;具有丰富的函数库;具有比较强的图形处理能力。的函数库;具有比较强的图形处理能力。Borland 公司的公司的TurboC是早是早期广泛使用的期广泛使用的C 语言开发工具。语言开发工具。上一页 下一页返回9.1 程序设计的基本过程程序设

14、计的基本过程 Ada 语言是由美国国防部出资开发的,作为一种用于嵌入式实时语言是由美国国防部出资开发的,作为一种用于嵌入式实时计算机设计的标准语言。计算机设计的标准语言。Ada 语言在结构和符号方面类似于语言在结构和符号方面类似于Pascal 语语言。言。(3)专用语言)专用语言专用语言是为特殊的应用而设计的语言。通常具有自己特殊的语法形专用语言是为特殊的应用而设计的语言。通常具有自己特殊的语法形式,面对特定的问题,输入结构及词汇与该问题的相应范围密切相关。式,面对特定的问题,输入结构及词汇与该问题的相应范围密切相关。有代表性的专用语言有有代表性的专用语言有APL、LISR、PROLOG、Sm

15、alltalk、C+、Java 等。等。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程4.4GL 语言语言4GL 语言的出现,将语言的抽象层次又提高到一个新的高度。与其他语言的出现,将语言的抽象层次又提高到一个新的高度。与其他人工语言一样,它也采用不同的文法表示程序结构和数据结构,但是人工语言一样,它也采用不同的文法表示程序结构和数据结构,但是在更高一级抽象的层次上表示这些结构,不再需要规定算法的细节。在更高一级抽象的层次上表示这些结构,不再需要规定算法的细节。关系数据库的标准语言关系数据库的标准语言SQL 即属于该类语言。即属于该类语言。4GL 语言兼有过程性和非过程性两重特

16、性。程序员规定条件和相应的语言兼有过程性和非过程性两重特性。程序员规定条件和相应的动作,这是过程性的部分,需要指出想要的结果,就是非过程性部分。动作,这是过程性的部分,需要指出想要的结果,就是非过程性部分。然后由然后由4GL 语言系统运用它的专门领域的知识来填充过程细节。语言系统运用它的专门领域的知识来填充过程细节。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程9.1.2 程序设计语言选择程序设计语言选择在程序设计的时候,选择程序设计语言非常重要,若选择了合适的语在程序设计的时候,选择程序设计语言非常重要,若选择了合适的语言,就能减少编码的工作量,产生易读、易测试、易维护的代码

17、。在言,就能减少编码的工作量,产生易读、易测试、易维护的代码。在选择程序设计语言时,既要考虑程序设计语言的特性,又要考虑是否选择程序设计语言时,既要考虑程序设计语言的特性,又要考虑是否能满足需求分析和设计阶段所产生的模型的需要。一般而言,衡量某能满足需求分析和设计阶段所产生的模型的需要。一般而言,衡量某种程序设计语言是否适合特定的项目,应考虑下面的一些因素:种程序设计语言是否适合特定的项目,应考虑下面的一些因素:(1)应用领域;)应用领域;(2)算法和计算复杂性;)算法和计算复杂性;(3)软件运行环境;)软件运行环境;(4)用户需求中关于性能方面的需要;)用户需求中关于性能方面的需要;上一页

18、下一页返回9.1 程序设计的基本过程程序设计的基本过程(5)数据结构的复杂性;)数据结构的复杂性;(6)软件开发人员的知识水平和心理因素等。)软件开发人员的知识水平和心理因素等。其中,应用领域常常被作为选择程序设计语言的首要标准,这主要是其中,应用领域常常被作为选择程序设计语言的首要标准,这主要是因为若干主要的应用领域长期以来已固定地选用了某些标准语言,例因为若干主要的应用领域长期以来已固定地选用了某些标准语言,例如,如,C 语言经常用于系统软件开发;语言经常用于系统软件开发;Ada、C 和和Modula-2 对实时应用对实时应用和嵌入式软件更有效;和嵌入式软件更有效;COBOL 是适用于商业

19、信息处理的语言;是适用于商业信息处理的语言;FORTRAN 适用于工程及科学计算领域;人工智能领域则使用适用于工程及科学计算领域;人工智能领域则使用LISP、PROLOG。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程9.1.3 程序设计的基本过程程序设计的基本过程程序设计就是使用某种程序设计语言编写程序代码来驱动计算机完成程序设计就是使用某种程序设计语言编写程序代码来驱动计算机完成特定功能的过程。程序设计的基本过程一般由分析所求解的问题、抽特定功能的过程。程序设计的基本过程一般由分析所求解的问题、抽象数学模型、选择合适算法、编写程序、调试通过直至得到正确结果象数学模型、选择合

20、适算法、编写程序、调试通过直至得到正确结果等几个阶段所组成,如等几个阶段所组成,如图图9.1 所示。所示。其设计步骤如下:其设计步骤如下:(1)确定要解决的问题,对任务进行调查分析,明确要实现的功能。)确定要解决的问题,对任务进行调查分析,明确要实现的功能。(2)对要解决的问题进行分析,找出它们的运算和变化规律,建立)对要解决的问题进行分析,找出它们的运算和变化规律,建立数学模型。当一个问题有多个解决方案时,选择适合计算机解决问题数学模型。当一个问题有多个解决方案时,选择适合计算机解决问题的最佳方案。的最佳方案。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程(3)依据解决问题的

21、方案确定数据结构和算法,绘制流程图。)依据解决问题的方案确定数据结构和算法,绘制流程图。(4)依据流程图描述算法,选择一种用合适的计算机语言编写程序。)依据流程图描述算法,选择一种用合适的计算机语言编写程序。(5)通过反复执行所编写程序,找出程序中的错误,直到程序的执)通过反复执行所编写程序,找出程序中的错误,直到程序的执行效果达到预期的目标。行效果达到预期的目标。(6)对解决问题整个过程的有关资料进行整理,编写程序使用说明)对解决问题整个过程的有关资料进行整理,编写程序使用说明书。书。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程9.1.4 程序设计方法与风格程序设计方法与风

22、格程序设计是一门技术,需要相应理论、技术、方法和工具来支持。程程序设计是一门技术,需要相应理论、技术、方法和工具来支持。程序设计方法和技术的发展,主要经过了结构化程序设计阶段和面向对序设计方法和技术的发展,主要经过了结构化程序设计阶段和面向对象程序设计阶段。除了好的程序设计方法和技术之外,程序设计风格象程序设计阶段。除了好的程序设计方法和技术之外,程序设计风格也很重要。良好的程序设计风格,可以使程序结构清晰合理,使程序也很重要。良好的程序设计风格,可以使程序结构清晰合理,使程序代码便于测试和维护。代码便于测试和维护。要形成良好的程序设计风格,应注重考虑下列因素。要形成良好的程序设计风格,应注重

23、考虑下列因素。1.源程序文档化源程序文档化源程序文档化主要包括选择标识符的名称、程序注释和程序的视觉组源程序文档化主要包括选择标识符的名称、程序注释和程序的视觉组织。织。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程(1)符号名的命名。符号名的命名应具有一定的实际含义,以便于)符号名的命名。符号名的命名应具有一定的实际含义,以便于对程序功能的理解,对程序功能的理解,(2)程序注释。正确的注释能够帮助读者理解程序。)程序注释。正确的注释能够帮助读者理解程序。(3)视觉组织。为了使程序的结构一目了然,在程序中利用空格、)视觉组织。为了使程序的结构一目了然,在程序中利用空格、空行、缩

24、进等技巧可使程序逻辑结构清晰,层次分明。空行、缩进等技巧可使程序逻辑结构清晰,层次分明。2.数据说明数据说明在编写程序时,需要注意数据说明的风格,以便使程序中的数据说明在编写程序时,需要注意数据说明的风格,以便使程序中的数据说明更易于理解和维护。应注意如下几点:更易于理解和维护。应注意如下几点:(1)数据说明的次序规范化;)数据说明的次序规范化;(2)说明语句中变量安排有序化;)说明语句中变量安排有序化;(3)使用注释,说明复杂数据的结构。)使用注释,说明复杂数据的结构。上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程3.语句的结构语句的结构语句构造力求简单直接,不应该为提高效率

25、而使语句复杂化。一般应语句构造力求简单直接,不应该为提高效率而使语句复杂化。一般应注意:注意:(1)在一行内只写一条语句,并采用适当的缩进格式,使程序的逻)在一行内只写一条语句,并采用适当的缩进格式,使程序的逻辑和功能变得明确;辑和功能变得明确;(2)程序编写应优先考虑清晰性;)程序编写应优先考虑清晰性;(3)除非对效率有特殊要求,否则程序编写要做到清晰第一,效率)除非对效率有特殊要求,否则程序编写要做到清晰第一,效率第二;第二;(4)首先要保证程序正确,然后才要求提高速度;)首先要保证程序正确,然后才要求提高速度;(5)数据结构要有利于程序的简化;)数据结构要有利于程序的简化;(6)尽可能使

26、用库函数;)尽可能使用库函数;上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程(7)避免使用临时变量而使程序的可读性降低;)避免使用临时变量而使程序的可读性降低;(8)避免使用无条件转移语句;)避免使用无条件转移语句;(9)避免采用复杂的条件语句;)避免采用复杂的条件语句;(10)避免过多的循环嵌套和条件嵌套;)避免过多的循环嵌套和条件嵌套;(11)要模块化,使模块功能尽量单一;)要模块化,使模块功能尽量单一;(12)利用信息隐蔽,确保每一个模块的独立性。)利用信息隐蔽,确保每一个模块的独立性。4.输入和输出输入和输出输入、输出方式和格式,往往是用户对应用程序是否满意的一个因素,

27、输入、输出方式和格式,往往是用户对应用程序是否满意的一个因素,应可能方便用户的使用。在设计和编程时都应该考虑如下原则:应可能方便用户的使用。在设计和编程时都应该考虑如下原则:(1)对所有的输入数据都要检验数据的合法性;)对所有的输入数据都要检验数据的合法性;(2)检查输入项的各种重要组合的合理性;)检查输入项的各种重要组合的合理性;上一页 下一页返回9.1 程序设计的基本过程程序设计的基本过程(3)输入格式要简单,输入的步骤和操作尽可能简洁;)输入格式要简单,输入的步骤和操作尽可能简洁;(4)输入数据时,应允许使用自由格式;)输入数据时,应允许使用自由格式;(5)应允许缺省值;)应允许缺省值;

28、(6)输入一批数据时,最好使用输入结束标志;)输入一批数据时,最好使用输入结束标志;(7)在以交互式输入)在以交互式输入/输出方式进行输入时,要在屏障上使用提示符输出方式进行输入时,要在屏障上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,在屏幕明确提示输入的请求,同时在数据输入过程中和输入结束时,在屏幕上给出状态信息;上给出状态信息;(8)当程序设计语言对输入格式有严格要求时,应保持输入格式与)当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;输入语句的一致性;(9)给所有的输出加注释,并设计输出报表格式。)给所有的输出加注释,并设计输出报表格式。上一页

29、返回9.2 算法算法9.2.1 算法的概念算法的概念算法是对解决某一特定问题的操作步骤的具体描述。在计算机科学中,算法是对解决某一特定问题的操作步骤的具体描述。在计算机科学中,算法是描述计算机解决给定问题的有明确意义操作步骤的有限集合。算法是描述计算机解决给定问题的有明确意义操作步骤的有限集合。计算机算法一般可分为数值计算算法和非数值计算算法。数值计算算计算机算法一般可分为数值计算算法和非数值计算算法。数值计算算法就是对所给的问题求数值解,如求函数的极限、求方程的根等;非法就是对所给的问题求数值解,如求函数的极限、求方程的根等;非数值计算算法主要是指对数据的处理,如对数据的排序、分类、查找数值

30、计算算法主要是指对数据的处理,如对数据的排序、分类、查找及文字处理、图形图像处理等。及文字处理、图形图像处理等。下一页返回9.2 算法算法9.2.2 算法特征算法特征算法应具有以下基本特征。算法应具有以下基本特征。(1)可行性:算法中描述的操作必须是可执行的,通过有限次基本)可行性:算法中描述的操作必须是可执行的,通过有限次基本操作可以实现。操作可以实现。(2)确定性:算法的每一步操作,必须有确切的含义,不能有二义)确定性:算法的每一步操作,必须有确切的含义,不能有二义性和多义性。性和多义性。(3)有穷性:一个算法必须保证执行有限步骤之后结束。)有穷性:一个算法必须保证执行有限步骤之后结束。(

31、4)输入:一个算法有零个或多个输入,以描述运算对象的初始情)输入:一个算法有零个或多个输入,以描述运算对象的初始情况,所谓零个输入是指算法本身定出了初始条件。况,所谓零个输入是指算法本身定出了初始条件。(5)输出:一个算法有一个或多个输出,以反映对输入数据加工后)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果,没有输出的算法是毫无意义的。的结果,没有输出的算法是毫无意义的。上一页 下一页返回9.2 算法算法9.2.3 算法的表示算法的表示算法的描述应直观、清晰、易懂,便于维护和修改。描述算法的方法算法的描述应直观、清晰、易懂,便于维护和修改。描述算法的方法有多种,常用的表示方法有

32、自然语言、传统流程图、有多种,常用的表示方法有自然语言、传统流程图、NS 图、伪代图、伪代码和计算机语言等。其中最常用的是传统流程图和码和计算机语言等。其中最常用的是传统流程图和NS 图。图。1.自然语言自然语言自然语言即人们日常使用的语言,用它描述算法流程,通俗易懂。缺自然语言即人们日常使用的语言,用它描述算法流程,通俗易懂。缺点是文字冗长,有时容易出现点是文字冗长,有时容易出现“二义性二义性”(歧义性)。(歧义性)。【例【例9.1】用自然语言描述交换两个变量值的算法。】用自然语言描述交换两个变量值的算法。交换两个变量的值不能直接交换,需借助中间变量采取间接交换的办交换两个变量的值不能直接交

33、换,需借助中间变量采取间接交换的办法。设有变量法。设有变量a、b和中间变量和中间变量c。上一页 下一页返回9.2 算法算法解决问题的算法如下:解决问题的算法如下:(1)输入两个值到变量)输入两个值到变量a 和变量和变量b 中;中;(2)将变量)将变量a 的值赋给中间变量的值赋给中间变量c;(3)将变量)将变量b 的值赋给变量的值赋给变量a;(4)将中间变量)将中间变量c 的值赋给变量的值赋给变量b。【例【例9.2】用自然语言描述求】用自然语言描述求Sum=1+2+10 的算法。的算法。设用变量设用变量sum 存放累加和,存放累加和,n 为自然数的项数。为自然数的项数。解决问题的算法如下:解决问

34、题的算法如下:(1)将)将0 赋给变量赋给变量sum;(2)将)将1 赋给变量赋给变量n;上一页 下一页返回9.2 算法算法(3)计算)计算sum+n,将结果存入变量,将结果存入变量sum 中;中;(4)取下一个自然数()取下一个自然数(n 加加1)给变量)给变量n;(5)若)若n 小于或等于小于或等于10,则重复步骤(,则重复步骤(3)和步骤()和步骤(4)否则继续下)否则继续下一步;一步;(6)输出累加和)输出累加和sum。2.传统流程图传统流程图流程图是用一些图形符号、箭头线和文字说明来表示算法的框图。优流程图是用一些图形符号、箭头线和文字说明来表示算法的框图。优点是比较直观;缺点是过于

35、精细比较难画,含有指向线也比较难读,点是比较直观;缺点是过于精细比较难画,含有指向线也比较难读,但描述简单的问题或模块间的流程还是比较有效的。但描述简单的问题或模块间的流程还是比较有效的。美国国家标准化协会(美国国家标准化协会(American National Standard Institute,ANSI)规定了如下一些常用的流程图符号。规定了如下一些常用的流程图符号。上一页 下一页返回9.2 算法算法(1)起止框)起止框 :表示流程开始或结束。:表示流程开始或结束。(2)输入)输入/输出框输出框 :表示输入或输出。:表示输入或输出。(3)处理框)处理框 :表示对基本处理功能的描述。:表示

36、对基本处理功能的描述。(4)判断框)判断框 :根据条件是否满足,在几个可以选择的路径中,:根据条件是否满足,在几个可以选择的路径中,选择某一路径。选择某一路径。(5)流向线)流向线、:表示流程的路径和方向。:表示流程的路径和方向。(6)连接点)连接点:用于将画在不同地方的流程线连接起来。:用于将画在不同地方的流程线连接起来。通常在各种图符中加上简要的文字说明,以进一步表明该步骤所要完通常在各种图符中加上简要的文字说明,以进一步表明该步骤所要完成的操作。成的操作。上一页 下一页返回9.2 算法算法【例【例9.3】用传统流程图描述】用传统流程图描述Sum=1+2+10 的算法,如的算法,如图图9.

37、2 所示。所示。3.NS 图图NS 图,直观易读易懂,便于结构化程序设计,但对于复杂问题的图,直观易读易懂,便于结构化程序设计,但对于复杂问题的算法,仍要注意先按模块画算法,仍要注意先按模块画 NS 图,然后再画出将各模块装配起来图,然后再画出将各模块装配起来的的NS 图或传统流程图。图或传统流程图。【例【例9.4】用】用NS 图描述图描述Sum=1+2+10 的算法,如的算法,如图图9.3 所示。所示。4.伪代码伪代码“伪代码伪代码”,它是用介于自然语言和计算机编程语言之间的文字和符,它是用介于自然语言和计算机编程语言之间的文字和符号来描述算法。优点是不用图形符号,书写方便,格式紧凑,也比较

38、号来描述算法。优点是不用图形符号,书写方便,格式紧凑,也比较好懂,便于向程序过渡,缺点是直观性稍差些。好懂,便于向程序过渡,缺点是直观性稍差些。上一页 下一页返回9.2 算法算法【例【例9.5】用】用“伪代码伪代码”描述打印描述打印x 的绝对值的算法。的绝对值的算法。if x 非负非负print xelseprint x5.高级语言(计算机语言)高级语言(计算机语言)可以利用某种高级语言(计算机语言)描述算法,很容易向程序过渡。可以利用某种高级语言(计算机语言)描述算法,很容易向程序过渡。【例【例9.6】用】用c 语言描述语言描述Sum=1+2+10 的算法。的算法。#includestdio

39、.hvoid main()()上一页 下一页返回9.2 算法算法 int n,sum;sum=0;n=1;while(n=10)sum=sum+n;n=n+1;printf(sum=5dn,sum););上一页 下一页返回9.2 算法算法算法和程序是有区别的。算法是对解题步骤(过程)的描述,可以与算法和程序是有区别的。算法是对解题步骤(过程)的描述,可以与计算机无关;而程序是利用某种计算机语言对算法的具体实现。可以计算机无关;而程序是利用某种计算机语言对算法的具体实现。可以用不同的计算机语言编写程序实现同一个算法,算法只有转换成计算用不同的计算机语言编写程序实现同一个算法,算法只有转换成计算机

40、程序才能在计算机上运行。机程序才能在计算机上运行。上一页返回9.3 程序设计方法程序设计方法目前,广泛采用的程序设计方法是目前,广泛采用的程序设计方法是“结构化程序设计结构化程序设计”和和“面向对象面向对象程序设计方法程序设计方法”,这两种方法也是我们今后进行程序设计时必须掌握,这两种方法也是我们今后进行程序设计时必须掌握的基本方法。本节就这两种方法基本思路的要点作一介绍。的基本方法。本节就这两种方法基本思路的要点作一介绍。9.3.1 结构化程序设计方法结构化程序设计方法由于软件危机的出现,人们开始研究程序设计方法,其中最受关注的由于软件危机的出现,人们开始研究程序设计方法,其中最受关注的是结

41、构化程序设计方法。是结构化程序设计方法。20 世纪世纪70 年代提出了年代提出了“结构化程序设计结构化程序设计”(Structured Programming)的思想和方法,该方法引入了工程思想)的思想和方法,该方法引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。它的和结构化思想,使大型软件的开发和编程都得到了极大的改善。它的设计思想主要有三个方面。设计思想主要有三个方面。下一页返回9.3 程序设计方法程序设计方法1.“自项向下,逐步细化,模块化自项向下,逐步细化,模块化”的设计过程的设计过程具体包括以下两个方面:具体包括以下两个方面:(1)将一个大问题,分解为若干子问题

42、(模块)组成的层次结构;)将一个大问题,分解为若干子问题(模块)组成的层次结构;(2)将模块细化成更小更简单的模块直至能容易给出一系列处理步)将模块细化成更小更简单的模块直至能容易给出一系列处理步骤,并能由程序设计语言的语句来实现。骤,并能由程序设计语言的语句来实现。2.关于程序结构限制为三种基本结构问题关于程序结构限制为三种基本结构问题只有将程序的结构限制为顺序、选择和循环三种基本结构才可以提高只有将程序的结构限制为顺序、选择和循环三种基本结构才可以提高程序的易读、易改性。如果程序的结构是由三种基本结构组成的,这程序的易读、易改性。如果程序的结构是由三种基本结构组成的,这样的程序就是结构化程

43、序。如果算法结构是由这三种基本结构组成的,样的程序就是结构化程序。如果算法结构是由这三种基本结构组成的,那么该算法就是结构化的算法。结构化程序源于结构化算法。程序实那么该算法就是结构化的算法。结构化程序源于结构化算法。程序实质就是用计算机语言描述的算法。质就是用计算机语言描述的算法。上一页 下一页返回9.3 程序设计方法程序设计方法结构化程序的主要优点是:结构化程序的主要优点是:(1)结构清晰,易读、易懂,易修改、易维护、易移植;)结构清晰,易读、易懂,易修改、易维护、易移植;(2)便于多人协作,编制大型软件。)便于多人协作,编制大型软件。任何算法都包含三种控制结构:顺序结构、选择结构和循环结

44、构。任何算法都包含三种控制结构:顺序结构、选择结构和循环结构。(1)顺序结构。如)顺序结构。如图图9.4 所示,所谓顺序结构是指执行完所示,所谓顺序结构是指执行完A 才执行才执行B。顺序结构是最简单的控制结构。顺序结构是最简单的控制结构。(2)选择结构,又称)选择结构,又称“分支结构分支结构”。如。如图图9.5 所示,选择结构必须包所示,选择结构必须包含一个条件判断框。当条件含一个条件判断框。当条件P 成立时,执行成立时,执行A,否则执行,否则执行B。(3)循环结构。如)循环结构。如图图9.6(a)、()、(b)所示。图()所示。图(a)为先判断条件)为先判断条件P,为真执行语句,如此反复,否

45、则退出循环。图(为真执行语句,如此反复,否则退出循环。图(b)先无条件地执行)先无条件地执行一次语句,再判断条件一次语句,再判断条件P,为真继续执行语句,如此反复,否则退出,为真继续执行语句,如此反复,否则退出循环。循环。上一页 下一页返回9.3 程序设计方法程序设计方法以上三种控制结构的共同特点:以上三种控制结构的共同特点:(1)只有一个入口;)只有一个入口;(2)控制结构内的每一部分都有机会被执行。)控制结构内的每一部分都有机会被执行。3.限制使用限制使用goto 语句语句因为使用因为使用goto 语句会破坏程序的结构化,降低程序的可读性,因而不语句会破坏程序的结构化,降低程序的可读性,因

46、而不提倡使用提倡使用goto 语句。语句。综上可知,结构化程序设计方法是一种较好的程序设计方法,使用该综上可知,结构化程序设计方法是一种较好的程序设计方法,使用该方法设计出来的程序不仅质量高,而且使程序设计工作化难为易,使方法设计出来的程序不仅质量高,而且使程序设计工作化难为易,使过去过去“无章可循无章可循”的程序设计变得思路清晰,做法规范,从而极大地的程序设计变得思路清晰,做法规范,从而极大地提高了编程效率。它也是下面要介绍的提高了编程效率。它也是下面要介绍的“面向对象面向对象”程序设计方法的程序设计方法的基础。应该很好地掌握这一基本的程序设计方法。基础。应该很好地掌握这一基本的程序设计方法

47、。上一页 下一页返回9.3 程序设计方法程序设计方法9.3.2 面向对象程序设计方法面向对象程序设计方法面向对象程序设计,是当前程序设计的主流方向,是程序设计方式在面向对象程序设计,是当前程序设计的主流方向,是程序设计方式在思维上和方法上的一次飞跃。面向对象程序设计方式是一种模仿人们思维上和方法上的一次飞跃。面向对象程序设计方式是一种模仿人们建立现实世界模型的程序设计方式,是对程序设计的一种全新的认识。建立现实世界模型的程序设计方式,是对程序设计的一种全新的认识。1.面向对象程序设计的基本概念面向对象程序设计的基本概念(1)对象()对象(object)。客观世界中任何一个事物都可以看成一个对象

48、。)。客观世界中任何一个事物都可以看成一个对象。或者说,客观世界是由千千万万对象组成的。对象可以是自然物体或者说,客观世界是由千千万万对象组成的。对象可以是自然物体(如汽车、房屋),也可以是社会生活中的一种逻辑结构(如班级、(如汽车、房屋),也可以是社会生活中的一种逻辑结构(如班级、连队),一篇文章、一个图形等都可视作对象,对象是构成系统的基连队),一篇文章、一个图形等都可视作对象,对象是构成系统的基本单位。本单位。上一页 下一页返回9.3 程序设计方法程序设计方法任何一个对象都应该具有这两个因素,即属性和行为。它能够根据外任何一个对象都应该具有这两个因素,即属性和行为。它能够根据外界给出的信

49、息进行相应的操作,操作表示对象的动态行为。一个对象界给出的信息进行相应的操作,操作表示对象的动态行为。一个对象往往是由一组属性和一组行为构成的。一台录像机是一个对象,它的往往是由一组属性和一组行为构成的。一台录像机是一个对象,它的属性是生产厂家、品牌、重量、体积、颜色、价格等,它的行为就是属性是生产厂家、品牌、重量、体积、颜色、价格等,它的行为就是它的功能,例如可以根据外界给它的信息进行录像、放像、快进、倒它的功能,例如可以根据外界给它的信息进行录像、放像、快进、倒退、停止等操作。一般来说,凡是具备属性和行为这两种要素的,都退、停止等操作。一般来说,凡是具备属性和行为这两种要素的,都可以作为对

50、象。一个数,也是一个对象,因为它有值,对它能进行各可以作为对象。一个数,也是一个对象,因为它有值,对它能进行各种算术运算;一个单词也可以作为对象,它有长度、字符种类等属性,种算术运算;一个单词也可以作为对象,它有长度、字符种类等属性,可以对它进行插入、删除、输出等操作。可以对它进行插入、删除、输出等操作。上一页 下一页返回9.3 程序设计方法程序设计方法操作描述了对象执行的功能,如果通过消息传递,则还可以为其他对操作描述了对象执行的功能,如果通过消息传递,则还可以为其他对象使用。操作的过程对外是封闭的,即用户只能看到这一操作实施后象使用。操作的过程对外是封闭的,即用户只能看到这一操作实施后的结

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第9章-程序设计基础-新编大学计算机基础教程课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|