第3章 程序的控制结构教学课件PPT.ppt
《第3章 程序的控制结构教学课件PPT.ppt》由会员分享,可在线阅读,更多相关《第3章 程序的控制结构教学课件PPT.ppt(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、完整版教学课件完整版教学课件第3章 程序的控制结构第第3 3章章 程序的控制结构程序的控制结构u3.1 3.1 程序灵魂程序灵魂:算法算法u3.2 3.2 流水作业流水作业:顺序结构顺序结构u3.3 3.3 择优录取择优录取:选择结构选择结构u3.5 3.5 本章小结本章小结u3.4 3.4 周而复始周而复始:循环结构循环结构第第3 3章章 程序的控制结构程序的控制结构43.1 3.1 程序灵魂程序灵魂:算法算法 可以把可以把“算法算法”理解为完成一件事情理解为完成一件事情或解决一个问题而采取的方法和步骤。或解决一个问题而采取的方法和步骤。由此可知,算法这一概念早已融入我们由此可知,算法这一概
2、念早已融入我们的学习与生活中:如何求解一个方程、的学习与生活中:如何求解一个方程、如何安排去某地旅游的路线或行程等都如何安排去某地旅游的路线或行程等都包含着某种算法。当然我们现在只讨论包含着某种算法。当然我们现在只讨论计算机算法,即计算机可以实现的算法。计算机算法,即计算机可以实现的算法。5 按数据的处理方式,计算机中的按数据的处理方式,计算机中的算法可分算法可分为:为: (1)(1)数值运算数值运算:目的是求数值解,如求方程的:目的是求数值解,如求方程的根,求函数的定积分等。根,求函数的定积分等。 (2)(2)非数值运算非数值运算:目前使用范围广泛,如办公:目前使用范围广泛,如办公自动化处理
3、、图书情报检索等。自动化处理、图书情报检索等。 一般来说,不同的问题,有不同的解决方法一般来说,不同的问题,有不同的解决方法和步骤,而对同一问题,也可能有不同的解决和步骤,而对同一问题,也可能有不同的解决方法和步骤,也就是有不同的算法。方法和步骤,也就是有不同的算法。算法有优算法有优劣劣,一般而言,应当选择简单的、运算步骤少,一般而言,应当选择简单的、运算步骤少的,运算快、内存开销小的算法。的,运算快、内存开销小的算法。3.1 3.1 程序灵魂程序灵魂:算法算法63.1.1 3.1.1 算法的特性算法的特性1 1有穷性有穷性 算法包含的操作步骤是有限的,每一步都应在合理的时间内完成。算法包含的
4、操作步骤是有限的,每一步都应在合理的时间内完成。 2 2确定性确定性 算法中的每一步骤都应是唯一的和确定无误的,不允许有岐义性。算法中的每一步骤都应是唯一的和确定无误的,不允许有岐义性。如如“输出成绩优秀的同学名单输出成绩优秀的同学名单”就有岐义,就有岐义,“成绩优秀成绩优秀”的含义不明的含义不明确。确。 3 3有效性有效性 算法中每一步骤都应是能有效地执行,且能得到确定的结果,例如:算法中每一步骤都应是能有效地执行,且能得到确定的结果,例如:求一个负数的对数,就是一个无效的步骤。求一个负数的对数,就是一个无效的步骤。 4 4没有输入或有多个输入没有输入或有多个输入 有些算法无需从外界输入数据
5、,如计算有些算法无需从外界输入数据,如计算6 6!,而有的算法需从外界!,而有的算法需从外界输入数据,如计算输入数据,如计算n n! 。 5 5有一个或多个输出有一个或多个输出 即算法必须得到结果,没有结果的算法是毫无意义的即算法必须得到结果,没有结果的算法是毫无意义的。73.1.2 3.1.2 算法的表示算法的表示 观察上述的算法,可以考虑使用一个观察上述的算法,可以考虑使用一个变量变量(sum)(sum)既用来既用来存放每一次的求和结果,又用来表示每一次求和时的被加存放每一次的求和结果,又用来表示每一次求和时的被加数。数。这样方法这样方法1 1中的中的9999个步骤可以表示为:个步骤可以表
6、示为: s1: sum=sum+2 s1: sum=sum+2; ( (在这之前先把在这之前先把sumsum初始化为初始化为1) 1) s2: sum=sum+3; s2: sum=sum+3; s3: sum=sum+4; s3: sum=sum+4; s99: sum=sum+100; s99: sum=sum+100; 再次观察上述的算法,可以考虑再使用一个再次观察上述的算法,可以考虑再使用一个变量变量i i来表来表示加数示加数,让,让i i从从2 2开始,不断地做开始,不断地做sum=sum+i sum=sum+i 这一个相同的这一个相同的循环操作,直到循环操作,直到i i超过超过10
7、0100为止。于是可以得到改进的算法为止。于是可以得到改进的算法如下:如下:83.1.2 3.1.2 算法的表示算法的表示 方法方法2 2:用变量用变量 sum sum 和和 i i 分别表示两个加数,和也用分别表示两个加数,和也用变量变量 sum sum 表示。用自然语言描述如下:表示。用自然语言描述如下: s1: sum = 1;s1: sum = 1; s2: i = 2; s2: i = 2; s3: s3: 若若 i=100i=100,重复步骤,重复步骤s4s5s4s5,否则转去执行,否则转去执行s6;s6; s4: sum = sum + i; s4: sum = sum + i;
8、 s5: i = i + 1; s5: i = i + 1; s6: s6: 输出输出sumsum的值。的值。 上述算法是一个上述算法是一个循环算法循环算法:S3S3到到S5S5组成一个循环,在组成一个循环,在实现算法时要反复多次执行实现算法时要反复多次执行S3S3,S4S4,S5S5等步骤,直到某等步骤,直到某一时刻,执行一时刻,执行S5S5步骤时经过判断,加数步骤时经过判断,加数i i已超过规定的数已超过规定的数值而不返回值而不返回S3S3步骤为止。此时算法结束,变量步骤为止。此时算法结束,变量sumsum的值的值就是所求结果。就是所求结果。93.1.2 3.1.2 算法的表示算法的表示2
9、.2.用传统流程图表示算法用传统流程图表示算法 传统流程图采用一组规定的图形符号、流程线和文字说传统流程图采用一组规定的图形符号、流程线和文字说明来表示各种操作算法。美国国家标准化协会明来表示各种操作算法。美国国家标准化协会ANSI(American ANSI(American National Standard Institute)National Standard Institute)规定了一些常用的流程图符号,规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用,如表已为世界各国程序工作者普遍采用,如表3-13-1所示。所示。 【案例【案例3.23.2】 用传统流程图描述【案例用传
10、统流程图描述【案例3.13.1】的算法,如图】的算法,如图3-13-1所示。所示。 用传统流程图表示算法直观形象,易于理解,能够比较用传统流程图表示算法直观形象,易于理解,能够比较清晰地表达各种处理之间的逻辑关系,是表示算法的较好的清晰地表达各种处理之间的逻辑关系,是表示算法的较好的工具。但由于对流程线的使用没有严格限制,易造成流程的工具。但由于对流程线的使用没有严格限制,易造成流程的随意转移,不能保证是结构化的,从而难以阅读和修改。随意转移,不能保证是结构化的,从而难以阅读和修改。103.1.2 3.1.2 算法的表示算法的表示符号名称用途起止框起止框用于描述控制流程的开始和结束:开始框内用
11、于描述控制流程的开始和结束:开始框内标注标注“开始开始”字样,结束框内标注字样,结束框内标注“结束结束”字样字样输入输出输入输出框框用于表示数据的输入和输出:框内标明输入用于表示数据的输入和输出:框内标明输入输出的变量输出的变量处理框处理框用于描述数据加工和处理:常采用文字加符用于描述数据加工和处理:常采用文字加符号来表示计算公式和赋值操作号来表示计算公式和赋值操作判断框判断框用于描述条件判断和转移关系:框内描述条用于描述条件判断和转移关系:框内描述条件关系,两个流出边分别标注件关系,两个流出边分别标注 Yes/NoYes/No、Y/NY/N、True/FalseTrue/False或或“真真
12、/ /假假”,表示条件成立或,表示条件成立或不成立时的转移关系不成立时的转移关系调用框调用框用于描述过程调用或模块调用:框内标注函用于描述过程调用或模块调用:框内标注函数或模块名数或模块名流程线流程线用于连接两个图形框:箭头描述处理过程的用于连接两个图形框:箭头描述处理过程的转移方向转移方向连接框连接框用于描述多张流程图的连接:应附加文字标用于描述多张流程图的连接:应附加文字标识连接关系识连接关系开开 始始su m = 0i= 1i = 100NYsu m = su m + ii= i+ 1输输 出出 su m 的的 值值结结 束束图图 3-1 例例 3-2算算 法法 描描 述述表表3-1 3
13、-1 传统流程图常用的图形符号传统流程图常用的图形符号113.1.2 3.1.2 算法的表示算法的表示3.3.用用NNS S流程图表示算法流程图表示算法 针对传统流程图存在的问题,针对传统流程图存在的问题,19731973年美国学者年美国学者I.NassiI.Nassi和和B.ShneidermanB.Shneiderman提出了一种新的结构化流程图形式。在这种流程提出了一种新的结构化流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框,或者说,由一些基本在该框内还可以包含
14、其它的从属于它的框,或者说,由一些基本的框组成一个大的框。该矩形框以三种基本结构(顺序、选择、的框组成一个大的框。该矩形框以三种基本结构(顺序、选择、循环)描述符号为基础复合而成,这种流程图又称循环)描述符号为基础复合而成,这种流程图又称NNS S结构化流结构化流程图。程图。 【案例【案例3.33.3】 用用NSNS流程图描述【案例流程图描述【案例3.13.1】的算法,如图】的算法,如图3-23-2所示。所示。 用用NNS S流程图表示算法比自然语言描述直观、形象、易于理流程图表示算法比自然语言描述直观、形象、易于理解,又比传统流程图紧凑易画。用解,又比传统流程图紧凑易画。用NNS S图表示的
15、算法都是结构化图表示的算法都是结构化的算法。的算法。123.1.2 3.1.2 算法的表示算法的表示 4.4.用伪代码表示算法用伪代码表示算法 伪代码是指介于自然语言和计算机语言之间的一种代码,是帮伪代码是指介于自然语言和计算机语言之间的一种代码,是帮助程序员制定算法的智能化语言。助程序员制定算法的智能化语言。 【案例【案例3.43.4】 用伪代码描述【案例用伪代码描述【案例3.13.1】的算法。】的算法。 begin begin sum0; sum0; i1; i1; while i100 while i100 sumsum+i; sumsum+i; ii+1 ii+1 print sum
16、print sum end end133.1.2 3.1.2 算法的表示算法的表示5.5.用计算机语言表示算法用计算机语言表示算法计算机是无法识别流程图和伪代码的。只有用计算机计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序,经编译成目标程序后,才能被计算机执语言编写的程序,经编译成目标程序后,才能被计算机执行。行。【案例【案例3.53.5】 用用C C语言描述【案例语言描述【案例3.13.1】的算法。】的算法。#include #include main()main() int i=1, sum=0; int i=1, sum=0; while (i=100) while (i=
17、100) sum=sum+i; sum=sum+i; i+; i+; printf(sum=%d, sum); printf(sum=%d, sum); u3.1 3.1 程序灵魂程序灵魂:算法算法u3.2 3.2 流水作业流水作业:顺序结构顺序结构u3.3 3.3 择优录取择优录取:选择结构选择结构u3.5 3.5 本章小结本章小结u3.4 3.4 周而复始周而复始:循环结构循环结构第第3 3章章 程序的控制结构程序的控制结构153.2 3.2 流水作业流水作业:顺序结构顺序结构前面设计好的算法在计算机中主要是通过各种语言所提供前面设计好的算法在计算机中主要是通过各种语言所提供的语句来实现。
18、和其它高级语言一样,的语句来实现。和其它高级语言一样,C C语言的语言的语句语句用来向计用来向计算机系统发出操作指令。一个语句经编译后产生若干条机器指算机系统发出操作指令。一个语句经编译后产生若干条机器指令。一个为实现特定目的的程序应当包含若干条语句。令。一个为实现特定目的的程序应当包含若干条语句。 C C语言中的语句可以分为以下五类:语言中的语句可以分为以下五类: 1. 1.函数调用语句函数调用语句 由函数名、实际参数加上分号由函数名、实际参数加上分号“;”组成。其一般形式为:组成。其一般形式为: 函数名函数名( (实际参数表实际参数表) ); 执行函数语句就是调用函数体并把实际参数赋予函数
19、定义执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行被调函数体中的语句,求取函数值中的形式参数,然后执行被调函数体中的语句,求取函数值 ( (在后面函数中再详细介绍在后面函数中再详细介绍) ) 。 例如:例如:printf(Hello!);printf(Hello!); 调用库函数,输出字符串。调用库函数,输出字符串。16 2. 2.表达式语句表达式语句 表达式语句由表达式加上分号表达式语句由表达式加上分号“;”组成。其一般形式为:组成。其一般形式为:表达式;表达式; 执行表达式语句就是计算表达式的值。例如:执行表达式语句就是计算表达式的值。例如: x=y+z; x=y
20、+z; 赋值语句。赋值语句。 i+; i+; 自增自增1 1语句,语句,i i值增值增1 1。 其中赋值语句是程序中使用最多的语句之一。表达式能构成语句其中赋值语句是程序中使用最多的语句之一。表达式能构成语句是是C C语言的一个特色。语言的一个特色。 3. 3.控制语句控制语句 控制语句用于控制程序的流程,以实现程序的各种结构方式。控制语句用于控制程序的流程,以实现程序的各种结构方式。语言有九种控制语句,可以分成以下三类:语言有九种控制语句,可以分成以下三类: 条件判断语句:条件判断语句:if if语句、语句、switchswitch语句。语句。 循环执行语句:循环执行语句:whilewhil
21、e语句、语句、do whiledo while语句、语句、forfor语句。语句。 转向语句:转向语句:breakbreak语句、语句、continuecontinue语句、语句、gotogoto语句、语句、returnreturn语句。语句。3.2 3.2 流水作业流水作业:顺序结构顺序结构174.4.复合语句复合语句 把多个逻辑相关的语句用括号把多个逻辑相关的语句用括号 括起来组成一条复合语句。括起来组成一条复合语句。复合语句在逻辑上形成一个整体,在程序中应把它看成是单条复合语句在逻辑上形成一个整体,在程序中应把它看成是单条语句,而不是多条语句。语句,而不是多条语句。 例如:例如: x=y
22、+z; a=b+c; printf( x=y+z; a=b+c; printf(“ “%d%d%d%d” ”,x x,a)a); 是一条复合语句。是一条复合语句。 5. 5.空语句空语句 只有分号只有分号“;”组成的语句称为空语句。空语句是什么也组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句经常被用来作空循环体。不执行的语句。在程序中空语句经常被用来作空循环体。例如例如: : while(getchar()!=while(getchar()!= nn ) ) ; 本语句的功能是,只要从键盘输入的字符不是本语句的功能是,只要从键盘输入的字符不是执行回车操执行回车操作命令作命令则
23、重新输入。则重新输入。 3.2 3.2 流水作业流水作业:顺序结构顺序结构18 在结构化程序中最简单、最在结构化程序中最简单、最常用的结构是顺序结构。常用的结构是顺序结构。顺序结顺序结构的特点构的特点是完全按照语句出现的是完全按照语句出现的先后次序执行程序。其传统流程先后次序执行程序。其传统流程图和图和NNS S流程图如图流程图如图3-33-3所示。所示。 从程序的整体来看,程序的从程序的整体来看,程序的语句是按顺序执行的,构成了顺语句是按顺序执行的,构成了顺序结构序结构,尽管在局部(即某些程,尽管在局部(即某些程序段)并不按顺序执行语句,这序段)并不按顺序执行语句,这个过程称为个过程称为“控
24、制的转移控制的转移”,它,它涉及了另外两类程序的控制结构,涉及了另外两类程序的控制结构,即选择(分支)结构和循环结构。即选择(分支)结构和循环结构。由此可见,顺序结构也是一种最由此可见,顺序结构也是一种最基本的结构。基本的结构。AB图图 3-3 顺顺序序结结构构AB3.2 3.2 流水作业流水作业:顺序结构顺序结构19【案例【案例3.63.6】输入三角形的三边长,求三角形面积。为简单起见,输入三角形的三边长,求三角形面积。为简单起见,设输入的三条线段能构成三角形的三条边。设输入的三条线段能构成三角形的三条边。源程序如下:源程序如下:#include #include #include /#in
25、clude /* *包含使用数学库函数所对应的头文件包含使用数学库函数所对应的头文件* */ /main()main() float a, b, c, s, area; float a, b, c, s, area; printf(Please input a, b, c:); printf(Please input a, b, c:); scanf(%f, %f, %f,&a, &b, &c); scanf(%f, %f, %f,&a, &b, &c); s=1.0/2 s=1.0/2* *(a+b+c);(a+b+c); area=sqrt(s area=sqrt(s* *(s-a)(s-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 程序的控制结构教学课件PPT 程序 控制 结构 教学 课件 PPT
限制150内