《大学计算机基础》第5章-程序设计基础.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《大学计算机基础》第5章-程序设计基础.ppt》由会员分享,可在线阅读,更多相关《《大学计算机基础》第5章-程序设计基础.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、大学计算机基础大学计算机基础北京航空航天大学北京航空航天大学教学课件教学课件1第第5 5章章 程序设计基础程序设计基础2本章重点本章重点n程序的概念程序的概念n程序设计语言的结构程序设计语言的结构n算法的概念与描述方法算法的概念与描述方法n程序设计步骤程序设计步骤n程序设计方法程序设计方法35.1 程序和程序设计语言程序和程序设计语言u5.1.1 程序的一般概念程序的一般概念 u5.1.2 程序设计语言的概述程序设计语言的概述 u5.1.3 程序设计语言的结构程序设计语言的结构 4程序的一般概念程序的一般概念 n生活中程序的概念生活中程序的概念例例1:年终总结会的程序:年终总结会的程序:会议主
2、持宣布会议开始会议主持宣布会议开始领导讲话领导讲话个人或团队代表发言个人或团队代表发言领导总结领导总结会议主持宣布会议结束会议主持宣布会议结束5程序的一般概念(续程序的一般概念(续1)n生活中程序的概念生活中程序的概念甲地甲地乙地乙地丙地丙地A线线8公里公里B线线5公里公里C线线4公里公里步行步行骑车骑车开车开车时间时间红绿灯红绿灯铁道铁道解决该计算问题的方法、步骤就包含了程序的概念。解决该计算问题的方法、步骤就包含了程序的概念。例例2:某人从甲地到丙地去。:某人从甲地到丙地去。6程序的一般概念(续程序的一般概念(续2)n计算机程序的概念:计算机程序的概念:为实现某一算法而编写的指令序列。为实
3、现某一算法而编写的指令序列。宏观地描述该指令序列,可用计算机的宏观地描述该指令序列,可用计算机的l机器语言机器语言l汇编语言汇编语言l高级语言高级语言用经典的公式可表示为:用经典的公式可表示为:程序程序=算法算法+数据结构数据结构7程序设计语言的概述程序设计语言的概述 n程序设计程序设计编写程序的全过程。编写程序的全过程。有学者认为:有学者认为:程序设计程序设计=算法算法+数据结构数据结构+程序设计语言程序设计语言 n程序设计语言程序设计语言人和计算机之间对话和交流的一种工人和计算机之间对话和交流的一种工具,用于描述计算机所执行的操作。具,用于描述计算机所执行的操作。n计算机程序设计语言有几百
4、种,但是最常用的不过计算机程序设计语言有几百种,但是最常用的不过10多种,了解一些程序设计语言的不同特性,有助于为多种,了解一些程序设计语言的不同特性,有助于为特定任务而选择适当的程序设计语言。特定任务而选择适当的程序设计语言。81.机器语言(机器语言(Machine Language)n指令指令指挥计算机完成某个基本操作的命令。指挥计算机完成某个基本操作的命令。机器语言程序机器语言程序注解注解10110000 0000100000101100 0000101011110100把把8存放到累加器存放到累加器A中。中。将将10与累加器与累加器A中的中的8相加,结果存在相加,结果存在A中。中。程序
5、结束。程序结束。n指令系统指令系统所有的指令集合。所有的指令集合。(第一代程序设计语言第一代程序设计语言)n机器语言机器语言用二进制代码表示指令系统的语言。用二进制代码表示指令系统的语言。n机器语言程序机器语言程序由二进制代码按一定规则组成的、能被由二进制代码按一定规则组成的、能被机器理解和运行的指令序列。(也称可执行程序机器理解和运行的指令序列。(也称可执行程序)例如:计算累加器例如:计算累加器A=8+10的机器语言程序如下:的机器语言程序如下:92.汇编语言汇编语言(Assembly Language)n汇编语言汇编语言实质就是以容易记忆的代码或英文单词来实质就是以容易记忆的代码或英文单词
6、来代替约定的机器指令。(代替约定的机器指令。(第二代程序设计语言第二代程序设计语言)汇编语言源程序汇编语言源程序注解注解MOV A,8MOV A,8ADD A,10ADD A,10HLTHLT把把8 8存放到累加器存放到累加器A A中。中。将将1010与累加器与累加器A A中的中的8 8相加,结果存在相加,结果存在A A中。中。程序结束。程序结束。例如:用例如:用ADD表示加、表示加、SUB表示减、表示减、JMP表示跳转、表示跳转、MOV表示数据的传送指令等表示数据的传送指令等。n汇编源程序汇编源程序使用汇编语言编写的程序。使用汇编语言编写的程序。例如:上述计算累加器例如:上述计算累加器A=8
7、+10的汇编语言程序如下:的汇编语言程序如下:103.高级语言高级语言(High Level Language)n高级语言高级语言类似数学语言或人的自然语言,同时又不依赖于类似数学语言或人的自然语言,同时又不依赖于某种计算机硬件,使得设计编制的程序能够在所有机器上通某种计算机硬件,使得设计编制的程序能够在所有机器上通用。用。(第三代程序设计语言第三代程序设计语言)n程序设计语言在不同的系统平台使用比较普遍的有:程序设计语言在不同的系统平台使用比较普遍的有:FORTRAN、ALGOL、COBOL、LISP、PL/I、BASIC、SIMULA 67、Pascal、C、Smalltalk 80、Ad
8、a、C+、VC、VB、Delphi、Java、JavaScript、C#、Visual BASIC.NET。n可视化语言可视化语言构成了命令式语言中的另一个子类。最流行的构成了命令式语言中的另一个子类。最流行的可视化语言可视化语言Visual BASIC(1999年),已被年),已被Visual BASIC.NET(2002年)取代。提供拖拉式生成代码段的功年)取代。提供拖拉式生成代码段的功能。一度被认作第四代语言,此说法已不再使用了。能。一度被认作第四代语言,此说法已不再使用了。11程序设计语言的特点程序设计语言的特点 n机器语言的特点:机器语言的特点:编程难编程难效率高效率高 需要指令系统
9、需要指令系统难读难读难维护难维护n高级语言的特点:高级语言的特点:编程容易编程容易效率低效率低 需要编译系统需要编译系统易读易读易维护易维护n汇编语言的特点:汇编语言的特点:编程不容易编程不容易效率较高效率较高 需要汇编程序需要汇编程序不易读不易读不易维护不易维护12程序设计语言的结构程序设计语言的结构 n程序结构的多样性:程序结构的多样性:结构化程序结构化程序 模块化程序模块化程序 面向对象的程序结构面向对象的程序结构n一个良好结构的程序具有以下等特点:一个良好结构的程序具有以下等特点:结构清晰结构清晰容易阅读容易阅读容易理解容易理解容易验证容易验证容易维护容易维护n1996年,计算机科学家
10、年,计算机科学家Boehm和和Jacopini提出并从数学上证明提出并从数学上证明 任何一个算法,都能以三种基本控制结构表示,即任何一个算法,都能以三种基本控制结构表示,即顺序结构顺序结构、选择结构选择结构和和循环结构循环结构。13结构化程序设计中结构化程序设计中顺序结构顺序结构 n按照程序语句行的自然顺序,一条语句一条语句按照程序语句行的自然顺序,一条语句一条语句地执行程序。地执行程序。语句语句A入口入口语句语句B出口出口14结构化程序设计中结构化程序设计中选择结构选择结构 n根据条件的判断确定应该执行哪一条分支的语句根据条件的判断确定应该执行哪一条分支的语句序列。(又称为序列。(又称为分支
11、结构分支结构)入口入口出口出口语句序列语句序列A语句序列语句序列B条件条件真真假假15入口入口假假真真语句序列语句序列出口出口直到型循环结构直到型循环结构 条件条件结构化程序设计中结构化程序设计中循环循环结构结构 n主要用于重复执行相同的语句序列(被称为主要用于重复执行相同的语句序列(被称为循环体循环体),),直到判定条件为假(或为真)时才可终止执行循环体。直到判定条件为假(或为真)时才可终止执行循环体。出口出口入口入口语句序列语句序列假假条件条件真真当型循环结构当型循环结构 16结构化程序设计的特点结构化程序设计的特点 n每种结构,只有一个入口和一个出口,这是结构化设计每种结构,只有一个入口
12、和一个出口,这是结构化设计的一个原则。的一个原则。n遵循结构化程序设计的原则,按照结构化程序设计方法遵循结构化程序设计的原则,按照结构化程序设计方法设计出的程序具有明显的优点:设计出的程序具有明显的优点:其一,程序易读、理解和维护。程序员用结构化编程其一,程序易读、理解和维护。程序员用结构化编程方法,将复杂程序分解成若干子结构,便于控制、降方法,将复杂程序分解成若干子结构,便于控制、降低程序的复杂性,因此容易编写程序,同时便于验证低程序的复杂性,因此容易编写程序,同时便于验证程序。程序。其二,提高编程工作效率,降低软件开发成本。由于其二,提高编程工作效率,降低软件开发成本。由于结构化编程方法能
13、够把错误控制到最低限度,因此能结构化编程方法能够把错误控制到最低限度,因此能够减少调试和查错的时间。够减少调试和查错的时间。175.2 算法算法u5.2.1 算法的概念与特征算法的概念与特征 u5.2.2 算法的描述方法算法的描述方法 u5.2.3 程序设计典型算法程序设计典型算法 18算法的概念与特征算法的概念与特征 1976年年Niklaus Wirth(也是(也是Pascal语言发明者,语言发明者,1984年获得图灵奖)的专著:年获得图灵奖)的专著:Algorithms Data Structures Programs (算法算法 十十 数据结构数据结构=程序)程序)在计算机软件开发行业
14、中产生了极为深远的影响,从在计算机软件开发行业中产生了极为深远的影响,从而推动了软件开发技术和方法步入正轨,使人们开始深入而推动了软件开发技术和方法步入正轨,使人们开始深入研究数据结构和算法设计与分析的技术和方法。研究数据结构和算法设计与分析的技术和方法。191.算法的概念算法的概念 n算法算法解决某个具体问题而采取的方法与步骤的完整和解决某个具体问题而采取的方法与步骤的完整和准确的描述。准确的描述。是指令的有限序列,其中每一条指令表示一个或多个操是指令的有限序列,其中每一条指令表示一个或多个操作。作。是问题的程序化解决方案,这些解决方案本身并不是答是问题的程序化解决方案,这些解决方案本身并不
15、是答案,而是获得答案的精确指令。案,而是获得答案的精确指令。n算法的分类算法的分类顺序算法:是由冯顺序算法:是由冯诺依曼型计算机体系结构所决定的,诺依曼型计算机体系结构所决定的,其主要思想是指令逐条运行,每次执行一步操作。其主要思想是指令逐条运行,每次执行一步操作。并行算法:要求在一些更新式的计算机中可以在同一时并行算法:要求在一些更新式的计算机中可以在同一时间执行多条指令。间执行多条指令。202.算法的特征算法的特征 n一个算法必须具备五项基本特征:有穷性、确定性、一个算法必须具备五项基本特征:有穷性、确定性、数据输入、数据输出和可行性。数据输入、数据输出和可行性。(1)有穷性)有穷性算法是
16、有序指令的集合,并在执行有穷步骤后能够算法是有序指令的集合,并在执行有穷步骤后能够终止。终止。(2)确定性)确定性每条指令必须有确切的含义,且无二义性。在任何每条指令必须有确切的含义,且无二义性。在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入数条件下,算法只有唯一的一条执行路径,即对于相同的输入数据只能得到相同的输出数据。据只能得到相同的输出数据。(3)输入数据)输入数据可有零个或多个输入数据。这些输入数据取自于可有零个或多个输入数据。这些输入数据取自于某个特定对象的集合。某个特定对象的集合。(4)输出数据)输出数据必须有一个或多个输出数据。必须有一个或多个输出数据。(5)可行性)
17、可行性描述的操作都可以通过已经实现的基本运算执行有描述的操作都可以通过已经实现的基本运算执行有限次来实现,也可以证明整个算法实施后可以得到预期的解。限次来实现,也可以证明整个算法实施后可以得到预期的解。21例例5.1 一个非算法的计数过程一个非算法的计数过程 令令n为为0;置置n为为n+1;返回返回。结论:不能称为算法。结论:不能称为算法。原因:违背了算法特征中(原因:违背了算法特征中(1)、()、(4)、()、(5)。)。22例例5.2 计数器算法计数器算法 用自然语言编写一个不超过用自然语言编写一个不超过1万次的计数器算法:万次的计数器算法:令令n为为0;置置n为为n+1 若若n小于小于1
18、0000,则返回,则返回;否则,输出;否则,输出n之值,之值,且算法到此结束。且算法到此结束。结论:是算法。结论:是算法。原因:符合算法特征。原因:符合算法特征。在算法设计过程中,其实还有有关正确性、可读性、在算法设计过程中,其实还有有关正确性、可读性、健壮性、效率与低存储量需求,以及算法效率的度量等健壮性、效率与低存储量需求,以及算法效率的度量等问题。问题。23算法的描述方法算法的描述方法 流程图(流程图(FlowChart)PAD图(图(Problem Analysis Diafram,问题分析图),问题分析图)N-S图图自然语言自然语言伪代码伪代码 UML图图(Unified Model
19、ing Language,统一建模语言),统一建模语言)241.流程图流程图 n流程图(框图)用不同形状的几何图形表示不同性质的操流程图(框图)用不同形状的几何图形表示不同性质的操作,用流程线指明算法的执行方向。作,用流程线指明算法的执行方向。ANSI(美国国家标准美国国家标准化协会化协会)、ISO(国际标准化组织)和我国国家标准中均(国际标准化组织)和我国国家标准中均有类似的规定。常见的流程图符号如下:有类似的规定。常见的流程图符号如下:n向下或向右的流程线可以不画出箭头。当流程线有交叉时,向下或向右的流程线可以不画出箭头。当流程线有交叉时,则画一半圆通过交叉点。则画一半圆通过交叉点。25用
20、流程图描述的计数器算法用流程图描述的计数器算法 263.N-S图图 n1973年美国两位学者提出无流程线的年美国两位学者提出无流程线的N-S图(盒图)。图(盒图)。n结构化程序设计由三种基本结构而组成,则算法也应采用结构化程序设计由三种基本结构而组成,则算法也应采用结构化描述方法,结构化描述方法,N-S图的基本单元是矩形框,框内可以图的基本单元是矩形框,框内可以有三种基本结构,形如堆积木,也只有一个入口和一个出有三种基本结构,形如堆积木,也只有一个入口和一个出口。三种基本结构的口。三种基本结构的N-S图如下:图如下:28用用N-S图描述的计数器算法图描述的计数器算法 294.自然语言自然语言
21、n自然语言是人们日常生活、工作和学习中使用的通用语言,自然语言是人们日常生活、工作和学习中使用的通用语言,使用自然语言的文字描述算法通俗易懂,但也有它的缺陷:使用自然语言的文字描述算法通俗易懂,但也有它的缺陷:(1)容易产生歧义性,因为自然语言经常要根据上下文才)容易产生歧义性,因为自然语言经常要根据上下文才能判别其含义,不太严格。能判别其含义,不太严格。(2)自然语言很难清楚地表达算法的逻辑流程,对于算法)自然语言很难清楚地表达算法的逻辑流程,对于算法中的条件判断、循环,尤其是在这些处理中还有多层嵌中的条件判断、循环,尤其是在这些处理中还有多层嵌套,就很难用清晰而直观的语言来表达算法的流程。
22、因套,就很难用清晰而直观的语言来表达算法的流程。因此仅适于描述简单问题。此仅适于描述简单问题。305.伪代码伪代码 n伪代码是介于自然语言和计算机语言之间的文字和符号,伪代码是介于自然语言和计算机语言之间的文字和符号,它不能被计算机所理解,但使用伪代码描述的算法很容易它不能被计算机所理解,但使用伪代码描述的算法很容易转变成某种编程语言。转变成某种编程语言。/用用伪代码描述的计数器算法如下:伪代码描述的计数器算法如下:n 0n 0 do do n n+1 n n+1 while n 10000 while n 10000 输出输出n n,且算法到此结束。,且算法到此结束。n常用的伪代码是用自然语
23、言与类常用的伪代码是用自然语言与类Pascal或类或类C语言相结合语言相结合的方法来描述算法。的方法来描述算法。31流程图形的绘制工具流程图形的绘制工具n当使用图形描述算法时,流程图形的绘制工具有很多当使用图形描述算法时,流程图形的绘制工具有很多。n一般比较简单的图形可用一般比较简单的图形可用Word或或PowerPoint中的绘图工具栏来制中的绘图工具栏来制作完成,若安装了功能强大的作完成,若安装了功能强大的Microsoft Office Visio 2003,则可,则可以更快地绘制具有专业水平的高质量图形。以更快地绘制具有专业水平的高质量图形。n在在Visio 2003中:中:含有丰富的
24、基本流程图形状。含有丰富的基本流程图形状。能够快速、简便地建立流程图、组织图、日历时间表和其它多种能够快速、简便地建立流程图、组织图、日历时间表和其它多种图表。图表。支持缩放矢量图形(支持缩放矢量图形(SVG),这是一种新的图形格式标准。),这是一种新的图形格式标准。集合集合Internet的运用,可使用不同的语言创建绘图、创建包含多的运用,可使用不同的语言创建绘图、创建包含多种语言的绘图以及跨多种语言共享绘图和展开协作。种语言的绘图以及跨多种语言共享绘图和展开协作。通过支持新的汉字编码标准通过支持新的汉字编码标准GB18030,可从这个新的字符编码,可从这个新的字符编码集中创建包含汉字的绘图
25、。集中创建包含汉字的绘图。32程序设计典型算法程序设计典型算法n算法算法数值算法数值算法或或非数值算法非数值算法:数值算法数值算法主要用于数值求解或分析,如:主要用于数值求解或分析,如:求和、求平方根、解方程、用组合梯形法则求和、求平方根、解方程、用组合梯形法则求定积分等。求定积分等。非数值算法非数值算法主要用于各领域管理类的信息主要用于各领域管理类的信息处理,如:各种排序、查找等。处理,如:各种排序、查找等。n本节介绍一些简单的常用算法,并假设各数据均本节介绍一些简单的常用算法,并假设各数据均能满足值域要求。能满足值域要求。331.求求3个整数的最大值算法个整数的最大值算法 n为了编写求为了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学计算机基础 大学计算机 基础 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内