C++高级语言程序设计第三章.ppt

上传人:小飞机 文档编号:6154063 上传时间:2023-09-30 格式:PPT 页数:69 大小:329KB
返回 下载 相关 举报
C++高级语言程序设计第三章.ppt_第1页
第1页 / 共69页
C++高级语言程序设计第三章.ppt_第2页
第2页 / 共69页
C++高级语言程序设计第三章.ppt_第3页
第3页 / 共69页
C++高级语言程序设计第三章.ppt_第4页
第4页 / 共69页
C++高级语言程序设计第三章.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《C++高级语言程序设计第三章.ppt》由会员分享,可在线阅读,更多相关《C++高级语言程序设计第三章.ppt(69页珍藏版)》请在三一办公上搜索。

1、2023/9/30,北京邮电大学信息与通信工程学院,-1-,C+高级语言程序设计,第3章 C+控制语句 北京邮电大学 信息与通信工程工程学院,2023/9/30,北京邮电大学信息与通信工程学院,-2-,用计算机解决实际问题,首先要分析问题,设计合适的算法,然后编程实现算法。,2023/9/30,北京邮电大学信息与通信工程学院,-3-,第3章 过程化语句,3.1 算法的基本控制结构3.2 if选择语句3.3 switch选择语句3.4 循环语句3.5 循环嵌套3.6 应用举例,2023/9/30,北京邮电大学信息与通信工程学院,-4-,3.1 算法的基本控制结构,2023/9/30,北京邮电大学

2、信息与通信工程学院,-5-,3.1 算法的基本控制结构,算法 1、计算机执行的操作 2、这些操作的顺序伪码 采用类似计算机语言的分句格式,以自然语言描述算法。,2023/9/30,北京邮电大学信息与通信工程学院,-6-,3.1 算法的基本控制结构,流程图 开始/结束 执行 判断 联系,2023/9/30,北京邮电大学信息与通信工程学院,-7-,3.1 算法的基本控制结构,程序的三种基本控制结构(1)顺序结构(2)选择结构(3)循环结构,2023/9/30,北京邮电大学信息与通信工程学院,-8-,3.1 算法的基本控制结构,流程控制语句 选择语句:if.else、switch 循环语句:whil

3、e、for、do.while 转向语句:break、continue,2023/9/30,北京邮电大学信息与通信工程学院,-9-,3.1 算法的基本控制结构,算法及其表示伪代码表示 类似于计算机语言的分句格式,以少量关键词和自然语言形式描述流程图表示 以流程图符号表示程序的执行流程,2023/9/30,北京邮电大学信息与通信工程学院,-10-,欧几里得算法描述举例,辗转相除法求两个自然数m和n的最大公约数,假定mn 伪代码描述:流程图描述:,1.input m,n2.r=m%n;3.while(r!=0)3.1 m=n;3.2 n=r;3.3 r=m%n;4.output n;,2023/9/

4、30,北京邮电大学信息与通信工程学院,-11-,3.2 if选择语句,2023/9/30,北京邮电大学信息与通信工程学院,-12-,3.2 if选择语句,if_else 1、没有else分支 2、双分支 3、多分支 4、if 语句的嵌套,2023/9/30,北京邮电大学信息与通信工程学院,-13-,3.2 if选择语句,1、没有else分支 例如:比较x和y的大小,如果x大则输出x的值,if(表达式)语句;,if(xy)coutxendl;,2023/9/30,北京邮电大学信息与通信工程学院,-14-,3.2 if选择语句,2、双分支例如:比较x,y的大小,将较大的数输出,if(表达式)语句1

5、;else 语句2;,if(xy)coutxendl;else coutyendl;,2023/9/30,北京邮电大学信息与通信工程学院,-15-,例子,任意输入一个4位整数的年份,判断该年是否是润年?,是指年份能被4整除的那些年,但不包括能被100整除而不能被400整除的年,2023/9/30,北京邮电大学信息与通信工程学院,-16-,#include using namespace std;void main()int year;cinyear;if(year%4=0),2023/9/30,北京邮电大学信息与通信工程学院,-17-,3.2 if选择语句,3、多分支,if(表达式1)语句1;

6、else if(表达式2)语句2;else if(表达式3)语句3;else 语句n;,2023/9/30,北京邮电大学信息与通信工程学院,-18-,2023/9/30,北京邮电大学信息与通信工程学院,-19-,例子:输出学生的成绩,#include using namespace std;void main()int x;cinx;if(x=90)cout=80)cout=60)cout“合格”endl;else cout“不及格”endl;,2023/9/30,北京邮电大学信息与通信工程学院,-20-,3.2 if选择语句,4、if 语句的嵌套,if(表达式1)if(表达式2)语句1 el

7、se 语句2else if(表达式3)语句3 else 语句4,2023/9/30,北京邮电大学信息与通信工程学院,-21-,2023/9/30,北京邮电大学信息与通信工程学院,-22-,例子:输出a,b,c中较大的数,#include using namespace std;void main()int a,b,c;cinabc;if(ab)if(ac)coutc)coutbendl;else coutcendl;,coutb?(ac?a:c):(bc?b:c);,2023/9/30,北京邮电大学信息与通信工程学院,-23-,3.2 if选择语句,注意:二义性int x=-1;if(x0)i

8、f(x50)cout“x is 50”endl;else cout“x is=0”endl;,if和else的对应关系,else总是与离它最近的if匹配。,2023/9/30,北京邮电大学信息与通信工程学院,-24-,3.3 switch选择语句,2023/9/30,北京邮电大学信息与通信工程学院,-25-,3.3 switch选择语句,switch(表达式)case 常量表达式1:语句1 break;case 常量表达式2:语句2 break;case 常量表达式n:语句n break;default:语句n+1,2023/9/30,北京邮电大学信息与通信工程学院,-26-,2023/9/3

9、0,北京邮电大学信息与通信工程学院,-27-,例子:输出学生的成绩,int x;cinx;switch(x/10)case 10:case 9:cout“优秀”endl;break;case 8:cout“良好”endl;break;case 7:case 6:cout“合格”endl;break;default:cout“不及格”endl;,2023/9/30,北京邮电大学信息与通信工程学院,-28-,switch语句注意事项,case 的常量表达式可以是字符型、整型或枚举型,通常,也只是一个常量。不能放置条件不等式或变量.各个case的先后顺序不影响执行结果,由编程者合理安排。switch

10、语句每当找到匹配的常量表达式,则从此标号开始执行下去,不再进行判断,即将此后的其它case下的语句也都执行。直到碰到break语句或switch语句结束。一般来说,在每个case的执行语句结束处,应该加上break语句。,2023/9/30,北京邮电大学信息与通信工程学院,-29-,3.4 循环语句,2023/9/30,北京邮电大学信息与通信工程学院,-30-,3.4 循环语句,三种基本语法1、while 语句2、dowhile 语句3、for 语句,2023/9/30,北京邮电大学信息与通信工程学院,-31-,#include#include using namespace std;void

11、 main()coutsetfill(*)setw(2)n setw(3)n setw(4)n setw(5)n setw(6)n setw(7)n setw(8)n;,*,2023/9/30,北京邮电大学信息与通信工程学院,-32-,#include#include using namespace std;void main()int i=2;coutsetfill(*);while(i=8)coutsetw(i)n;i+;,*,循环变量,循环体,循环控制条件,2023/9/30,北京邮电大学信息与通信工程学院,-33-,3.4 循环语句,主要包括3个部分:1、循环控制条件:判断循环操作是否

12、进行的条件;2、循环体:重复进行的操作;3、循环控制变量:记录循环体执行的次数,或控制循环的结束条件。,2023/9/30,北京邮电大学信息与通信工程学院,-34-,3.4 循环语句,while循环语句,while(表达式)循环体语句;,2023/9/30,北京邮电大学信息与通信工程学院,-35-,例1:编程循环输出1-9这9个数字?,#include using namespace std;void main()int i=1;while(i9)coutiendl;i+;cout“循环结束”endl;,运行结果:123456789循环结束,2023/9/30,北京邮电大学信息与通信工程学院,

13、-36-,例2:编程计算1+2+3+.+10的值,#include using namespace std;void main()int sum=0,i=0;whil(i=10)sum+=i;i+;coutsumendl;,55,2023/9/30,北京邮电大学信息与通信工程学院,-37-,例3:打印可视字符,#includeusing namespace std;void main()unsigned char ch=32;while(ch128)cout(int)chtcht;ch+;,2023/9/30,北京邮电大学信息与通信工程学院,-38-,例4:编程计算 的值,#include u

14、sing namespace std;void main()int k=1,sum=0,n;cout0):;cinn;while(k0)coutsum/nendl;else coutn不能=0endl;,2023/9/30,北京邮电大学信息与通信工程学院,-39-,3.4 循环语句,do.while循环语句,do 循环体语句;while(表达式);,2023/9/30,北京邮电大学信息与通信工程学院,-40-,#include#include using namespace std;void main()int i=2;coutsetfill(*);while(i=8)coutsetw(i)n

15、;i+;,*,do coutsetw(i)n;i+;while(i=8);,2023/9/30,北京邮电大学信息与通信工程学院,-41-,例子:编程计算 的值,#include using namespace std;void main()int k=1,sum=0,n;cout0):;cinn;while(k0)coutsum/nendl;else coutn不能=0endl;,do sum=sum+k*k;k+;while(k=n);,2023/9/30,北京邮电大学信息与通信工程学院,-42-,3.4 循环语句,for循环语句 循环结构 1、表达式1 循环变量初始化;2、表达式2 循环控

16、制条件;3、表达式3 循环变量的变化;,for(表达式1;表达式2;表达式3)循环体;,2023/9/30,北京邮电大学信息与通信工程学院,-43-,例1:编程循环输出1-9这9个数字?,#include using namespace std;void main()for(int i=1;i10;i+)coutiendl;cout“循环结束”endl;,运行结果:123456789循环结束,2023/9/30,北京邮电大学信息与通信工程学院,-44-,例2:编程计算1+2+3+.+10的值,#include using namespce std;void main()int sum=0;fo

17、r(int i=1;i=10;i+)sum+=i;coutsumendl;,运行结果:55,2023/9/30,北京邮电大学信息与通信工程学院,-45-,#include#include using namespace std;void main()coutsetfill(*);,*,例3,for(int i=2;i=8;i+)coutsetw(i)n;,2023/9/30,北京邮电大学信息与通信工程学院,-46-,3.4 循环语句for语句,1、可以省略 for(int i=1;i=9;i+)循环体;int i=1;for(;i=9;i+)循环体;,2023/9/30,北京邮电大学信息与通信

18、工程学院,-47-,3.4 循环语句for语句,2、可以省略 for(int i=1;i=9;i+)循环体;for(int i=1;i+)if(i=9)循环体;else break;/跳转语句,用来跳出循环,2023/9/30,北京邮电大学信息与通信工程学院,-48-,3.4 循环语句for语句,3、可以省略 for(int i=1;i=9;i+)循环体;for(int i=1;i=9;)循环体;i+;,2023/9/30,北京邮电大学信息与通信工程学院,-49-,3.4 循环语句for语句,3、同时省略 for(int i=1;i=9;i+)循环体;int i=1;for(;i=9;)循环体

19、;i+;,2023/9/30,北京邮电大学信息与通信工程学院,-50-,3.4 循环语句for语句,5、极端情况,可实现无限循环 for(;)循环体;,2023/9/30,北京邮电大学信息与通信工程学院,-51-,例4:判断输出结果?,#include using namespace std;void main()for(int i=0,j=10,k=0;ij;i+,j-)k+=i*j;coutkendl;,分析:i j k0 10 01 9 92 8 253 7 464 6 705 5 跳出,2023/9/30,北京邮电大学信息与通信工程学院,-52-,3.4 循环语句,1、for:最适合循

20、环次数固定,循环规律非常明显程序。2、while:使用最多最频繁的循环结构,具有普适性。3、do_while:最适合至少循环一次的循环结构。,2023/9/30,北京邮电大学信息与通信工程学院,-53-,3.4.4 转向语句,1、break语句2、continue语句,2023/9/30,北京邮电大学信息与通信工程学院,-54-,3.4.4 转向语句break,用途:常用在while、do-while、for和switch语句中,用来跳出循环或switch语句。,2023/9/30,北京邮电大学信息与通信工程学院,-55-,例1:判断输出结果?,#include using namespace

21、 std;void main()int sum=0;for(int i=1;i10;i+)if(i%3=0)break;sum+=i;coutsumendl;,分析i sum1 12 33 跳出,2023/9/30,北京邮电大学信息与通信工程学院,-56-,3.4.4 转向语句continue,用途 用于循环语句中,结束本次循环,进行下一次循环;即跳过循环体中尚未执行的部分。,2023/9/30,北京邮电大学信息与通信工程学院,-57-,例1:判断输出结果?,#include using namespace std;void main()int sum=0;for(int i=1;i10;i+

22、)if(i%3=0)continue;sum+=i;coutsumendl;,分析i sum1 12 33 3 7 12 12 19 27 27 跳出,2023/9/30,北京邮电大学信息与通信工程学院,-58-,3.5 循环嵌套,2023/9/30,北京邮电大学信息与通信工程学院,-59-,3.5 循环嵌套,编程输出国际象棋棋盘#include using namespace std;void main()for(int i=0;i8;i+)for(int j=0;j8;j+)if(i+j)%2=0)cout;else cout;coutn;,2023/9/30,北京邮电大学信息与通信工程学

23、院,-60-,思考:写出每个程序各输出结果,A:for(i=0,k=1;i10;i+)if(i%5)k=i*10;else cout”k:”k;,B:for(i=0,k=1;i10;i+)if(i%5)k=i*10;cout”k:”k;,D:for(i=0,k=1;i10;i+)if(i%5)k=i*10;cout”k:”k;,C:for(i=0,k=1;i10;i+)if(i%5!=0)k=i*10;cout”k:”k;,2023/9/30,北京邮电大学信息与通信工程学院,-61-,思考,题目:使用For循环输出如下图形:*,2023/9/30,北京邮电大学信息与通信工程学院,-62-,#i

24、nclude using namespace std;void main()for(int i=1;ii;j-)cout;for(j=1;j=i;j+)cout*;coutendl;,2023/9/30,北京邮电大学信息与通信工程学院,-63-,3.6 应用举例,2023/9/30,北京邮电大学信息与通信工程学院,-64-,3.6 应用举例1,题目 计算方程ax2+bx+c=0的解。分析:根据方程的系数取值,存在下面几种情况:(1)a=0,不是二次方程;(2)b2-4ac=0,有两个相等的实根;(3)b2-4ac0,有两个不等的实根;(4)b2-4ac0,有两个共轭复根.所以,程序中将使用选择

25、结构分别实现各种情况。,2023/9/30,北京邮电大学信息与通信工程学院,-65-,注意:由于a,b,c数据类型为浮点数,当b2-4ac很小时,可近似为0。因此判断时若=10-6,可认为是0具体代码请看见课本P66.,2023/9/30,北京邮电大学信息与通信工程学院,-66-,3.6 应用举例2,任意输入一个整数,判断是否是素数?问题:什么是素数?,2023/9/30,北京邮电大学信息与通信工程学院,-67-,#include using namespace std;void main()int n,i;cinn;for(i=2;in;i+)if(n%i=0)break;if(in)coutn不是素数!n;elsecoutn是素数n;,2023/9/30,北京邮电大学信息与通信工程学院,-68-,改进:输出2-100之间的素数,#include#include using namespace std;void main()for(int k=2;kn)coutkt;,2023/9/30,北京邮电大学信息与通信工程学院,-69-,总结,三种基本结构:顺序、选择和循环流程图和伪码,帮助我们设计算法、完善算法,增强算法的可读性,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号