《流程控制讲》PPT课件.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)
《《流程控制讲》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《流程控制讲》PPT课件.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 4 章章 C+的流程控制的流程控制4.1 4.1 算法概述算法概述4.2 C+4.2 C+语言程序的结构和语句语言程序的结构和语句4.3 4.3 选择结构语句的使用选择结构语句的使用4.4 4.4 循环结构语句的使用句循环结构语句的使用句4.5 4.5 控制语句的应用举例控制语句的应用举例4.1 算法概述算法概述程序程序=数据数据+算法算法算法算法:为解决一个问题而采取的:为解决一个问题而采取的有限步骤有限步骤。程序的算法程序的算法:使用程序解决问题的计算步骤:使用程序解决问题的计算步骤 体现为语句体现为语句不同的算法效率不同:不同的算法效率不同:采用优秀的解题方法,合理安排计算步骤,以
2、最少采用优秀的解题方法,合理安排计算步骤,以最少的计算步骤完成计算任务的方法我们称为高效率算法。的计算步骤完成计算任务的方法我们称为高效率算法。使用了比较笨拙的解题方法,通过较多的运算步骤使用了比较笨拙的解题方法,通过较多的运算步骤来实现同样的计算任务的计算方法我们称为低效率算法。来实现同样的计算任务的计算方法我们称为低效率算法。为了有效地进行解题,不仅需要保证算法正确,还为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。要考虑算法的质量,选择合适的算法。4.1.2 算法的设计原则算法的设计原则 1符合数学计算规则符合数学计算规则 只有符合数学规则的计算步骤才可以被
3、计算机正确只有符合数学规则的计算步骤才可以被计算机正确执行。执行。2保证结果确定保证结果确定 如果一个算法对同一组数据进行多次计算,竟然获如果一个算法对同一组数据进行多次计算,竟然获得多个不同的结果,这种算法是不确定的,是无效的。得多个不同的结果,这种算法是不确定的,是无效的。保证算法的确定性,最重要的方面是排除程序中随保证算法的确定性,最重要的方面是排除程序中随机数的产生机数的产生(变量初始化变量初始化)。3程序能够正常结束程序能够正常结束 一个合理的算法应包含有限的操作步骤,而不能是一个合理的算法应包含有限的操作步骤,而不能是无限的。无限的。4.1.2 算法的设计原则算法的设计原则 4合理
4、的输入合理的输入 一个实际有效的程序中应该含有零个或者多个输入一个实际有效的程序中应该含有零个或者多个输入(一般会在程序的算法中加入一个或者多个输入一般会在程序的算法中加入一个或者多个输入)。5合理的输出合理的输出 一个有效的程序在设计算法时必须保证程序至少要一个有效的程序在设计算法时必须保证程序至少要有一个输出。有一个输出。4.1.3 算法的表示工具算法的表示工具 怎样来描述一个算法呢?怎样来描述一个算法呢?自然语言自然语言 流程图流程图 N-S 图图 伪代码伪代码(类似于数学语言类似于数学语言)流程图流程图是目前全球软件开发领域使用最广是目前全球软件开发领域使用最广泛的算法表示工具,它通过
5、一些严格定义图形泛的算法表示工具,它通过一些严格定义图形的组合来表示算法的步骤以及数据变化的走向。的组合来表示算法的步骤以及数据变化的走向。用图形表示算法,直观形象,易于理解。用图形表示算法,直观形象,易于理解。自然语言就是人们日常自然语言就是人们日常生活中使用的语言。生活中使用的语言。容容易造成误解易造成误解 1973年美国学者年美国学者 I.Nassi 和和 B.Shneideman提出的一种无流线提出的一种无流线的流程图的流程图起止框起止框流程图表示算法流程图表示算法输入输出框输入输出框判断框判断框流程线流程线处理框处理框连接点连接点注释框注释框流程图符号流程图符号:例:求例:求 的值。
6、的值。求多项式的累乘积问题。求多项式的累乘积问题。定义变量:定义变量:M 累乘积累乘积 N 代表一项的分母代表一项的分母算法描述:算法描述:自然语言自然语言+伪代码伪代码算法算法:M1,N1 MM NN+1 如果如果 N100,转,转 否则,转否则,转 输出输出 M 的值的值 结束结束1N循环循环开始开始结束结束M1N1MM NN+11N输出输出 M 的值的值N100YesNo处理框处理框流程线流程线判断框判断框 M1 N1 MM NN+1 N100 输出输出 M 的值的值1N用用N-S 图描述图描述用流程图描述用流程图描述结构化程序设计结构化程序设计的基本结构的基本结构:三种。三种。1.顺序
7、结构顺序结构:先执行先执行A操作操作,再再 执行执行B操作操作.AB(a)流程图流程图 (b)N-S图图ABA、B可以是可以是一个简单语句一个简单语句或一个基本结构或一个基本结构4.1.4 结构化程序设计中基本结构的表示结构化程序设计中基本结构的表示 2.选择结构选择结构:C(Condition)代表一个条件)代表一个条件 C Yes No A B(a)流程图流程图 (b)N-S图图 Yes NoCAB3.循环结构循环结构:当(当(while)型循环)型循环(1)当条件)当条件 C 成立时,反复执行成立时,反复执行 A 操作,操作,直到直到 C 为假时,才停止循环。为假时,才停止循环。CANo
8、Yes 当当 C为真为真 A(a)流程图流程图 (b)N-S图图有可能循环体一次都不执行有可能循环体一次都不执行 3.循环结构循环结构:直到(直到(until)型循环型循环(2)先执行)先执行 A 操作,再判条件操作,再判条件 C,若为若为“假假”重复执行重复执行A,直到,直到 C 为为“真真”停止停止ACNoYes A 直到直到 C为真为真(a)流程图流程图 (b)N-S图图循环体至少要被执行一次循环体至少要被执行一次 AB三种结构特点:三种结构特点:单入口、单出口。单入口、单出口。每一部分都可能被执行到。每一部分都可能被执行到。没有死循环。没有死循环。A、B可能是一个更基本的结构。可能是一
9、个更基本的结构。CANoYesACNoYes Yes NoCAB4.2 C+语言程序的结构和语句语言程序的结构和语句 计算机程序运行的时候是将一条条的计算机程序运行的时候是将一条条的语句语句翻译成翻译成机器指令机器指令,控制计算机产生计算的结果的。所以,控制计算机产生计算的结果的。所以语句语句是计算机程序的基本组成单位是计算机程序的基本组成单位。注意注意:在:在C+C+程序中,任何执行语句都必须写在函程序中,任何执行语句都必须写在函数中,不允许出现不属于函数的独立执行语句。数中,不允许出现不属于函数的独立执行语句。1.定义语句定义语句 int a,b;语句分类语句分类:(6类类)C+程序是由若
10、干函数构成,而一个函数由若干语程序是由若干函数构成,而一个函数由若干语句构成。这些语句组合成上述三种结构以实现算法。句构成。这些语句组合成上述三种结构以实现算法。2.控制语句控制语句:(9种,种,控制语句的执行流程控制语句的执行流程)(1)if()else 条件语句条件语句(2)for()循环语句循环语句(3)while()循环语句循环语句(4)do while()循环语句循环语句(5)continue 结束本次结束本次 循环语句循环语句(6)break 中止执行中止执行switch或循环语句或循环语句(7)switch 多分支选择语句多分支选择语句(8)go to 转向语句转向语句(9)re
11、turn 从函数返回语句从函数返回语句5.空语句空语句:;只有一个分号,什么都不做。只有一个分号,什么都不做。主要用于作被转向点,或空循环体。主要用于作被转向点,或空循环体。3.函数调用语句函数调用语句:例例:cos(x);调用标准库函数调用标准库函数 a=maxx(x1,x2);调用自定义函数调用自定义函数4.表达式语句表达式语句:由:由“表达式表达式+分号分号”构成。构成。例:例:a+b;a=3+x;i+;6.复合语句复合语句:用用 把多条语句括起来构成复合语句,把多条语句括起来构成复合语句,从语法上看成一条简单语句。从语法上看成一条简单语句。例例:a=1;b=2;c=3;三个简单语句三个
12、简单语句一个一个复合语句复合语句或写成:或写成:a=1;b=2;c=3;顺序结构程序举例顺序结构程序举例例例 输入三角形的三边长,求三角形面积输入三角形的三边长,求三角形面积计算方法:设计算方法:设a a、b b、c c为三个边长。为三个边长。程序:程序:#include#include void main()float a,b,c,s,area;cin a b c;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);cout area=area n;运行时:运行时:输入输入:3 4 5 输出输出:area=6 数学函数库数学函数库例例 从键盘输入一个大写字母从
13、键盘输入一个大写字母,要求输出要求输出对应小写字母。如输入对应小写字母。如输入 B,则输出,则输出 b。#include void main()char c1,c2;cin c1;c2=c1+32;cout c2 n;运行时运行时:输入输入:A 输出输出:a例例 求求 ax2+bx+c=0 方程的根方程的根,a,b,c由键盘输入由键盘输入,设设 b*b-4ac0#include#include void main()float a,b,c,disc,x1,x2,p,q;cin a b c;disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x
14、2=p-q;cout x1=x1nx2=x2n;输入输入:1 3 2 输出输出:x1=-1 x2=-24.3 选择结构语句的使用选择结构语句的使用4.3.1 if 语句语句1.if()语句语句2.if()语句语句1 else 语句语句2语句语句 表达式表达式假假真真语句语句1 表达式表达式假假真真语句语句2 if 语句语句-根据给定条件选择所执行的操作。根据给定条件选择所执行的操作。不平衡不平衡 if 语句语句单选单选平衡平衡 if 语句语句二中选一二中选一#include void main()float a,b,c,t;cout a b c;t=a;if(t b)t=b;if(t c)t=
15、c;cout 最大值最大值:t endl;例例4.1 输入三个数,求出并输出其中最大数输入三个数,求出并输出其中最大数两个独立的两个独立的不平衡不平衡 if 语句语句动态看程序的执行动态看程序的执行,有些部分可能执行到,有些部分可能执行到,也可能执行不到。也可能执行不到。t=b t b假假真真 t=c t a b c;t=a;cout 最大值最大值:t endl;流程图流程图如:如:输入数据输入数据 1 2 3 和和 1 3 2,程序每次执行的语句不同。程序每次执行的语句不同。#include void main()float a,b,c,t;cout a b c;if(a b)t=b;els
16、e t=a;if(t c)cout 最大值最大值:c endl;else cout 最大值最大值:t endl;例例4.2 输入三个数,求出并输出其中最大数输入三个数,求出并输出其中最大数两个独立的两个独立的平衡平衡 if 语句语句3.if()语句语句1 else if 语句语句 else if()语句语句2 组合组合 if 语句语句 else if()语句语句3 else 语句语句n 语句语句1 表达式表达式1假假真真语句语句2表达式表达式2表达式表达式3语句语句3 语句语句4 假假假假真真真真对程序的一次执行,对程序的一次执行,只可能执行语句只可能执行语句1、语句语句2、语句语句n中的一个
17、语句中的一个语句例例4.3 输入三个数,求出并输出其中最大数输入三个数,求出并输出其中最大数组合组合 if 语句的使用,语句的使用,一条语句一条语句#include void main()float a,b,c;cout a b c;if(a=b&a=c)cout 最大值最大值:a=a&b=c)cout 最大值最大值:b endl;else cout 最大值最大值:c endl;例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级若若 x 为为:90100分分 则输出则输出A8089分分 则输出则输出B7079分分 则输出则输出C6069分分 则输
18、出则输出D60分以下分以下 则输出则输出E#include void main()int x;cin x;if(x=90)cout A=80)cout B=70)cout C=60)cout D n;else cout E n;例如输入:例如输入:75执行顺序执行顺序输出结果输出结果注意注意:条件的写法:条件的写法例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级#include void main()int x;cin x;if(x=90)cout A n;else if(80=x 90)cout B n;else if(70=x 80)cou
19、t C n;else if(60=x 70)cout D n;else cout E n;注意注意:条件的写法:条件的写法此写法错误:此写法错误:若若 x=-1则表达式结果为真!则表达式结果为真!正确的写法为:正确的写法为:80=x&x=80(以下类推)(以下类推)例:输入学生的分数例:输入学生的分数 x,根据成绩的高低,根据成绩的高低,输出不同等级输出不同等级#include void main()int x,d;cin x;d=x/10;if(d=9)cout A n;else if(d=8)cout B n;else if(d=7)cout C n;else if(d=6)cout D
20、n;else cout E n;注意注意:条件的写法:条件的写法正确的写法为:正确的写法为:d=8(以下类推)(以下类推)此写法错误:此写法错误:若若 x 90,则不论,则不论 x 为何值为何值总是输出总是输出 B。例:任意输入一个小于等于例:任意输入一个小于等于 5 位数的正整数,位数的正整数,输出其位数。输出其位数。例:例:输入输入 23 输出输出2输入输入 13579 输出输出5#include void main()int x,ws;cin x;if(x=10000)ws=5;else if(x=1000)ws=4;else if(x=100)ws=3;else if(x=10)ws=
21、2;else ws=1;cout ws c;if(c 32)cout 控制字符控制字符n;else if(0=c&c=9)cout 数字字符数字字符n;else if(A=c&c=Z)cout 大写字母大写字母n;else if(a=c&c=z)cout 小写字母小写字母n;else cout 其他字符其他字符n;例例 判断输入字符的种类。把字符分为五类:判断输入字符的种类。把字符分为五类:数字字符数字字符 大写字母大写字母 小写字母、小写字母、控制字符控制字符(ASCII码码 32)其他字符其他字符4.3.2 if 语句的嵌套形式语句的嵌套形式if()if()语句语句1 else 语句语句2
22、else if()语句语句3 else 语句语句4内嵌内嵌 if内嵌内嵌 if内嵌的内嵌的 if-else 语句为一条语句语句为一条语句#include void main()float x,y;cout x;if(x 10)y=-10;else if(x=10)y=5;else y=20;cout y=y endl;例例4.5用嵌套的用嵌套的if语句解决数学问题语句解决数学问题 y=-10(x10)嵌套嵌套 if 语句语句,流程图见流程图见 P55if(a+bc&b+ca&c+ab)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);cout area e
23、ndl;else cout b)max=a;else max=b;max=(ab)?a:b;运算原则:运算原则:当当表达式表达式1为为真真时,整个表达式的值为时,整个表达式的值为表达式表达式2 当当表达式表达式1为为假假时,整个表达式的值为时,整个表达式的值为表达式表达式3运算优先级:运算优先级:比赋值运算符高比赋值运算符高 比算术、关系、逻辑运算符低比算术、关系、逻辑运算符低结合性:结合性:自右向左自右向左C+语言中唯一的语言中唯一的三目运算符三目运算符一般形式:一般形式:表达式表达式1?表达式表达式2 :表达式表达式3void main()char ch;cin ch;ch=(ch=A&c
24、h=Z)?(ch+32):ch;cout ch grade;switch(grade)case A:cout “优优“endl;case B:cout “良良“endl;case C:cout “中中“endl;case D:cout “及格及格“endl;default:cout “不及格不及格“grade;switch(grade)case A:case B:case C:cout 60n;break;case D:case E:cout 60n;grade的值为的值为A、B或或C 时执行同一组语句时执行同一组语句grade的值为的值为D或或E 时时执行另外一组语句执行另外一组语句注意:注
25、意:1在在switch语句中,语句中,default分支可以放在任何位置。但分支可以放在任何位置。但是为了配合常量表达式匹配查询的执行流程,使得程序是为了配合常量表达式匹配查询的执行流程,使得程序书写和阅读方便,一般将书写和阅读方便,一般将default分支写在分支写在switch语句的语句的最后一行。最后一行。2每个常量表达式的值都必须互不相同,否则当表达式每个常量表达式的值都必须互不相同,否则当表达式的值与多个常量表达式的值都匹配时,计算机将无法决的值与多个常量表达式的值都匹配时,计算机将无法决定到底执行哪一个常量表达式后面的语句序列。定到底执行哪一个常量表达式后面的语句序列。3常量表达式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程控制讲 流程 控制 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内