第3章顺序结构程序设计优秀课件.ppt
《第3章顺序结构程序设计优秀课件.ppt》由会员分享,可在线阅读,更多相关《第3章顺序结构程序设计优秀课件.ppt(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第3 3章顺序结构程序章顺序结构程序章顺序结构程序章顺序结构程序设计设计设计设计第1页,本讲稿共110页3.1 算法简介算法简介3.1.1 算法的概念算法的概念3.1.2 算法的特性算法的特性3.1.3 算法的表示算法的表示第2页,本讲稿共110页3.1.1 算法的概念算法的概念做任何事情都有一定的方法步骤。做任何事情都有一定的方法步骤。菜谱是做菜的算法;空调说明书是空调菜谱是做菜的算法;空调说明书是空调使用的算法;太极拳动作图解是一个太使用的算法;太极拳动作图解是一个太极拳的算法。极拳的算法。一个工作计划、生产流程、乐谱、珠算一个工作计划、生产流程、乐谱、珠算口诀等都可称为是口诀等都可
2、称为是“算法算法”。第3页,本讲稿共110页3.1.1 算法的概念算法的概念例例:古希腊数学家欧几里德曾在他的著作中古希腊数学家欧几里德曾在他的著作中描述过求两个数最大公因子的过程,他所描述过求两个数最大公因子的过程,他所描述的这个过程,被称为欧几里德算法描述的这个过程,被称为欧几里德算法(辗转相除法)。(辗转相除法)。第4页,本讲稿共110页3.1.1 算法的概念算法的概念下面是欧几里德算法的一种描述。下面是欧几里德算法的一种描述。输入:正整数输入:正整数m,n输出:输出:m,n的最大公因子的最大公因子之前应该比较一下两个数的大小,大数在之前应该比较一下两个数的大小,大数在m中,小数在中,小
3、数在n中中,使,使m n,则本题的算法为:,则本题的算法为:求求m/n的余数的余数r;若若r=0,则,则n为最大公约数,若为最大公约数,若r 0,执,执行第行第步;步;将将n m,将,将r n中;中;返回重新执行第返回重新执行第步,直到余数步,直到余数r=0,则,则n为为最大公约数。最大公约数。第5页,本讲稿共110页用用C语言来描述求最大公因子的求解过程。语言来描述求最大公因子的求解过程。输入:正整数输入:正整数m,n输出:输出:m,n的最大公因子的最大公因子 int euclid(int m,int n)/*第第1行行*/*第第2行行*/int r;/*第第3行行*/r=m%n;/*第第4
4、行行*/while(r)/*第第5行行*/m=n;/*第第6行行*/n=r;/*第第7行行*/r=m%n;/*第第8行行*/*第第9行行*/return n;/*第第10行行*/*第第11行行*/3.1.1 算法的概念算法的概念第4行,把m除以n的余数赋予r 第5行判断r是否为0,若为0,就转到第10行处理,返回n,算法结束。若r非0,第6行把n的值赋予m,第7行把r的值赋予n,第8行把m除以n的余数赋予r,第9行,判断r是否为0,若非0,继续转到第6行进行处理若为0,就转到第10行处理,返回n值,算法结束第6页,本讲稿共110页3.1.1 算法的概念算法的概念根据上面这个例子,可以知道算法是
5、指在根据上面这个例子,可以知道算法是指在有限步骤内求解某一问题所使用的一组定有限步骤内求解某一问题所使用的一组定义明确的规则。简单的说,就是为解决一义明确的规则。简单的说,就是为解决一个问题而采取的方法和步骤。个问题而采取的方法和步骤。无论是解题思路还是编写程序都是在实施无论是解题思路还是编写程序都是在实施某种算法,不过前者是推理实现,后者是某种算法,不过前者是推理实现,后者是操作实现。操作实现。第7页,本讲稿共110页3.1.1 算法的概念算法的概念求解一个给定的可计算或可解的问题,不同求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个的人可以编写出不同的程序,来解
6、决同一个问题。问题。算法算法+数据结构数据结构=程序,算法和程序之间存在程序,算法和程序之间存在密切的关系,算法是解决密切的关系,算法是解决“做什么做什么”和和“怎怎么做么做”的问题,在程序设计中起着重要的作的问题,在程序设计中起着重要的作用。用。在计算机科学中,算法要用计算机算法语言在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机求解一类问题的精描述,算法代表用计算机求解一类问题的精确、有效的方法。确、有效的方法。第8页,本讲稿共110页3.1.2 算法的特性算法的特性算法是一组有穷的规则,它们规定了解决算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解某一
7、特定类型问题的一系列运算,是对解题方案的准确与完整的描述。算法具有以题方案的准确与完整的描述。算法具有以下的特性:下的特性:(1)有穷性有穷性。一个算法应包含有限的操作步骤,。一个算法应包含有限的操作步骤,而不能是无限的。而不能是无限的。(2)确定性确定性。算法中的每一个步骤都应当是确。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。定的,而不应当是含糊的、模棱两可的。第9页,本讲稿共110页3.1.2 算法的特性算法的特性一个算法具有以下一个算法具有以下特点特点:(3)可行性可行性。算法中的每一个步骤都应当能有效地执行,并得到确定。算法中的每一个步骤都应当能有效地执行,并得到
8、确定的结果。的结果。(4)有零个或多个输入有零个或多个输入。所谓输入是指在执行算法时需要从外界。所谓输入是指在执行算法时需要从外界取得必要的信息。算法的过程可以无数据输入,也可以有多取得必要的信息。算法的过程可以无数据输入,也可以有多种类型的多个数据输入,需根据具体的问题加以分析。种类型的多个数据输入,需根据具体的问题加以分析。(5)有一个或多个输出有一个或多个输出。算法的目的是为解决一个具体问题,。算法的目的是为解决一个具体问题,而结果的输出正是验证这一目的的最好方式,没有输出的而结果的输出正是验证这一目的的最好方式,没有输出的算法是没有意义的。算法是没有意义的。第10页,本讲稿共110页3
9、.1.3 算法的表示算法的表示对于同一算法,允许在算法的描述和实对于同一算法,允许在算法的描述和实现方法上有所不同。常用的算法描述方现方法上有所不同。常用的算法描述方法可以归纳为以下几种:法可以归纳为以下几种:u自然语言自然语言u传统流程图传统流程图u结构化流程图结构化流程图u伪代码伪代码u第11页,本讲稿共110页1.用自然语言表示算法用自然语言表示算法用自然语言表示通俗易懂,易于掌握,一用自然语言表示通俗易懂,易于掌握,一般人都会用,但文字冗长繁琐,容易出现般人都会用,但文字冗长繁琐,容易出现歧义性。歧义性。特别是对有些复杂的算法表示起来很不方特别是对有些复杂的算法表示起来很不方便。除了有
10、些很简单的问题,一般不用自便。除了有些很简单的问题,一般不用自然语言描述算法。然语言描述算法。第12页,本讲稿共110页2.用流程图表示算法用流程图表示算法流程图是使用一些图框表示各种类型的操流程图是使用一些图框表示各种类型的操作,用线表示操作的执行顺序。使用起来作,用线表示操作的执行顺序。使用起来更简洁直观,易于理解。更简洁直观,易于理解。流程图中常用的符号有规范的画法。流程图中常用的符号有规范的画法。第13页,本讲稿共110页2.用流程图表示算法用流程图表示算法起止框起止框输入输出框输入输出框处理框处理框判断框判断框流程线流程线连接点连接点注释框注释框x 0YN一个入口两个出口第14页,本
11、讲稿共110页2.4.2用流程图表示算法用流程图表示算法流程图流程图是用一些图框来表示各种操作是用一些图框来表示各种操作用图形表示算法,直观形象,易于理解用图形表示算法,直观形象,易于理解起止框输入输出框处理框判断框流程线连接点连接点注释框位置不够防止交叉连接点是用于将画在不同地方的流程线连接起来,避免流程线的交叉或过长,使流程图清晰。第15页,本讲稿共110页 例:将欧几里德算例:将欧几里德算法用流程图的形法用流程图的形式表示。式表示。输入输入m,nr=0开始开始m%nirnnm结束结束NY输出输出n第16页,本讲稿共110页通过上面的例子可以看出流程图是表示算通过上面的例子可以看出流程图是
12、表示算法的较好的工具法的较好的工具一个流程图包括以下几部分:一个流程图包括以下几部分:(1)表示相应操作的框表示相应操作的框(2)带箭头的流程线带箭头的流程线(3)框内外必要的文字说明框内外必要的文字说明流程线不要忘记画箭头,否则难以判定各流程线不要忘记画箭头,否则难以判定各框的执行次序框的执行次序第17页,本讲稿共110页3.用用N-S流程图表示算法流程图表示算法N-S流程图省掉了流程图中的流程线,使流程图省掉了流程图中的流程线,使得图形更紧凑。得图形更紧凑。能直观地用图形表示算法,但是修改不方能直观地用图形表示算法,但是修改不方便。便。第18页,本讲稿共110页3.用用N-S流程图表示算法
13、流程图表示算法N-S流程图用以下的流程图符号:流程图用以下的流程图符号:ABABYNpA当p1成立A直到p2成立顺序结构顺序结构选择结构选择结构循环结构循环结构(当型)(当型)循环结构循环结构(直到型)(直到型)第19页,本讲稿共110页例例:将欧几里德算法用将欧几里德算法用N-S流程图的形式表示流程图的形式表示输入输入m,n直到r=0m%nrnmrnr=0?是是否否输出输出n第20页,本讲稿共110页4.用伪代码表示算法用伪代码表示算法伪代码是用介于自然语言和计算机语言之间伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。的文字和符号来描述算法。用伪代码写算法并无固定的、严格的语
14、法规用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用。则,可以用英文,也可以中英文混用。通常是借助某种高级语言的控制结构,中间通常是借助某种高级语言的控制结构,中间的操作可以用自然语言,也可以用程序设计的操作可以用自然语言,也可以用程序设计语言描述。比较容易最终转换成程序。语言描述。比较容易最终转换成程序。第21页,本讲稿共110页例:欧几里德算法用循环结构伪代码表示:例:欧几里德算法用循环结构伪代码表示:begin read m,n m%n r while r0 n m r n m%n r print nend第22页,本讲稿共110页5.用计算机语言表示算法用计算机语
15、言表示算法计算机是无法识别流程图和伪代码的,只计算机是无法识别流程图和伪代码的,只有用计算机语言编写的程序才能被计算机有用计算机语言编写的程序才能被计算机执行。执行。设计算法的目的是为了实现算法。设计算法的目的是为了实现算法。在用流程图或伪代码描述出一个算法后,在用流程图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。还要将它转换成计算机语言程序。第23页,本讲稿共110页例:用计算机语言(例:用计算机语言(C语言)表示欧几里德算法:语言)表示欧几里德算法:#include void main()int m,n,r,t;scanf(%d%d,&m,&n);if(mn)t=m;m=n;n
16、=t;/*若若m中的数小于中的数小于n中的数,交换中的数,交换m和和n中的数中的数*/r=m%n;while(r)m=n;n=r;r=m%n;printf(%dn,n);第24页,本讲稿共110页3.2 基本语句基本语句3.2.1 程序的结构程序的结构3.2.2 C语言的基本语句语言的基本语句3.2.3 赋值语句赋值语句第25页,本讲稿共110页3.2.1 程序的结构程序的结构结构化程序设计强调程序设计风格和程序结构的结构化程序设计强调程序设计风格和程序结构的规范化,规定了几种具有良好特性的基本结构,规范化,规定了几种具有良好特性的基本结构,用它们作为构成程序的基本单元,每一种基本结用它们作为
17、构成程序的基本单元,每一种基本结构可以包含一个或多个语句。构可以包含一个或多个语句。结构化程序设计方法的结构化程序设计方法的基本思路基本思路是:把一个复杂问是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。在人们容易理解和处理的范围内。第26页,本讲稿共110页3.2.1 程序的结构程序的结构这些基本结构具有以下特点:这些基本结构具有以下特点:(1)只有一个入口。)只有一个入口。(2)只有一个出口。)只有一个出口。(3)结构内的每一部分都有机会被执行)结构内的每一部分都有机会被执行到。到。(4)结构内不
18、存在)结构内不存在“死循环死循环”。第27页,本讲稿共110页一个结构化的算法是由一些基本结构顺序组一个结构化的算法是由一些基本结构顺序组成的。成的。在基本结构之间不存在向前或向后的跳转,在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内流程的转移只存在于一个基本结构范围之内如果一个算法不能分解为若干个基本结构,如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法。则它必然不是一个结构化的算法。第28页,本讲稿共110页3.2.1 程序的结构程序的结构(1)顺序结构顺序结构AB在执行完在执行完A框所指定的操作后,接着执行框所指定的操作后,接着执行B框所指
19、定的操作。框所指定的操作。第29页,本讲稿共110页3.2.1 程序的结构程序的结构(2)选择结构选择结构ABYpNAYpN 结构中必包含一个判断框,根据给定的条件结构中必包含一个判断框,根据给定的条件结构中必包含一个判断框,根据给定的条件结构中必包含一个判断框,根据给定的条件p p是否成立而选择执是否成立而选择执是否成立而选择执是否成立而选择执行行行行A A框或框或框或框或B B框,框,框,框,无论条件无论条件无论条件无论条件p p是否成立,只能执行是否成立,只能执行是否成立,只能执行是否成立,只能执行A A框或框或框或框或B B框里的操作之一框里的操作之一框里的操作之一框里的操作之一第30
20、页,本讲稿共110页3.2.1 程序的结构程序的结构(3)循环结构循环结构 当型循环结构当型循环结构AYpN当给定的条件当给定的条件当给定的条件当给定的条件p p成立时,反复成立时,反复成立时,反复成立时,反复执行执行执行执行A A框的操作,直到框的操作,直到框的操作,直到框的操作,直到p p条件条件条件条件不成立为止,此时不再执行不成立为止,此时不再执行不成立为止,此时不再执行不成立为止,此时不再执行A A框的操作,而跳出循环结构。框的操作,而跳出循环结构。框的操作,而跳出循环结构。框的操作,而跳出循环结构。第31页,本讲稿共110页3.2.1 程序的结构程序的结构(3)循环结构循环结构 直
21、到型循环结构直到型循环结构ANpY先执行先执行先执行先执行A A框的操作,再判断框的操作,再判断框的操作,再判断框的操作,再判断给定的条件给定的条件给定的条件给定的条件p p是否成立,若成是否成立,若成是否成立,若成是否成立,若成立,重复执行立,重复执行立,重复执行立,重复执行A A框的操作,直框的操作,直框的操作,直框的操作,直到到到到p p条件不成立为止,结束条件不成立为止,结束条件不成立为止,结束条件不成立为止,结束循环结构。循环结构。循环结构。循环结构。第32页,本讲稿共110页3.2.2 C语言的基本语句语言的基本语句 一个实际的程序应当包含若干语句,一个语句一个实际的程序应当包含若
22、干语句,一个语句经过编译后会产生若干条机器指令。经过编译后会产生若干条机器指令。C语言的语句用来向计算机系统发出操作指令,语言的语句用来向计算机系统发出操作指令,通常通常C语言的语句可以分为以下语言的语句可以分为以下5类。类。第33页,本讲稿共110页3.2.2 C语言的基本语句语言的基本语句语句分为以下语句分为以下5类:类:(1)控制语句:控制语句:C语言有语言有9种控制语句:种控制语句:if、switch、for、while、dowhile、continue、break、return、goto等等(2)函数调用语句:在函数调用时使用的语句函数调用语句:在函数调用时使用的语句例:例:y=7-
23、sqrt(12);printf(y=%dn,y);第34页,本讲稿共110页3.2.2 C语言的基本语句语言的基本语句语句分为以下语句分为以下5类:类:(3)表达式语句:表达式语句是由一个表达式加一个分号组成,表达式语句:表达式语句是由一个表达式加一个分号组成,最常用的是赋值表达式语句。如:最常用的是赋值表达式语句。如:area=3.14159*r*r;j=j-1;(4)空语句:单独由空语句:单独由;构成的语句,该语句不执行任何操作,构成的语句,该语句不执行任何操作,可以用来作为循环语句中的循环体,表示循环体什么都不可以用来作为循环语句中的循环体,表示循环体什么都不做。做。(5)复合语句:将若
24、干语句用复合语句:将若干语句用 括起,使其在语法上相当于一个语括起,使其在语法上相当于一个语句。句。第35页,本讲稿共110页3.2.3 赋值语句赋值语句赋值语句是由赋值表达式加上一个分号组成,它赋值语句是由赋值表达式加上一个分号组成,它是是C语言中使用最频繁的语句。语言中使用最频繁的语句。C语言中,通常使用赋值语句来完成主要的语言中,通常使用赋值语句来完成主要的计算功能以及对变量赋初值。计算功能以及对变量赋初值。例如:例如:float r=2.25;area=3.1415*r*r;第36页,本讲稿共110页3.2.3 赋值语句赋值语句在程序中用赋值语句,定义变量的同时对变量进行初始化,不同变
25、量在程序中用赋值语句,定义变量的同时对变量进行初始化,不同变量具有相同的值时要分别赋值,注意下面的写法。具有相同的值时要分别赋值,注意下面的写法。int a=2,b=2,c=3;int a=b=2,c=3;对变量的初始化是在程序运行时执行的,语句对变量的初始化是在程序运行时执行的,语句float r=2.25,相当于下面的两个语句:相当于下面的两个语句:float r;r=2.25;错误错误正确正确第37页,本讲稿共110页3.3 预处理命令预处理命令3.3.1 不带参数的宏定义不带参数的宏定义3.3.2 带参数的宏定义带参数的宏定义3.3.3 文件包含文件包含3.3.4 条件编译条件编译第3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 结构 程序设计 优秀 课件
限制150内