C面向对象程序第3章.ppt
《C面向对象程序第3章.ppt》由会员分享,可在线阅读,更多相关《C面向对象程序第3章.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+面向过程程序设计授课老师:李晓平第3章 程序结构和流程控制语句v本章要点v3.1 程序的三种基本结构和语句 v3.2 分支语句 v3.3 循环语句 v3.4 控制程序执行顺序的语句 v3.5 程序设计举例 3.1程序的基本结构和语句3.1.1程序的基本结构 1.顺序结构v顺序结构程序的执行顺序就是程序的书写顺序,是三种程序结构中最简单的程序结构,也是最基本的结构其他结构完成后最终要回归至顺序结构上继续执行,直到程序结束。其程序的书写格式为:vS1;vS2;vvSn;v该程序的执行顺序是:S1,S2,Sn。图3-1(a)为顺序结构流程图,图3-1(b)为其N-S流程图。v S1S2S1S2图
2、3-1 顺序结构(a)(b)2.分支结构v在两种可能的操作中按一定条件选取一个执行的结构称为分支结构。图3-2(a)为分支结构流程图,图3-2(b)为其N-S流程图。假真BS1S2图3-2 分支结构(a)S1S2真假B(b)3.循环结构v被重复执行的语句或复合语句称为循环体。每重复执行一次,都必须做出是否继续重复或是停止的决定,这个决定所依据的条件称为循环控制条件或循环控制表达式,其中关键性的变量又称为循环控制变量。图3-3(a)为循环结构流程图,图3-3(b)为其N-S流程图。v 假真BS图3-3 循环结构(a)S当B为真(b)3.2 选择结构选择结构v思考:v编程实现从键盘上输入一个数?v
3、编程实现从键盘上输入一个数,判断其正负,是正数则输出“正数”。v结论:v在程序中如果需要根据判断条件才能确定做什么时我们要用到选择结构3.2.1选择结构中选择结构中if语句语句 3.2.1 if 语句语句vif 语句是专门用来实现选择型结构的语句。if 语句有3种形式.1.单分支语句v语句格式:if(表达式)v语句v执行过程:当表达式的值为非0(真)时,执行语句,否则不执行语句。v说明:说明:(1)表达式必须用“()”括起来;(2)语句只能是单个语句或复合语句 图3-5 单分支语句流程图【例3-1】编写一个if语句的简单程序v#include stdafx.hv#include stdio.h
4、v#include iostream.hvvoid main()vvint x;vcout请输入一个整数:x;vif(x0)vcout此数为正整数.endl;vgetchar();vv程序执行后输出结果如下:v请输入一个整数:v3 v此数为正整数。2.双分支语句v语句格式:vif()vvelsev【例3-2】编写一个判断闰年的程序。#include stdafx.h#include stdio.h#include iostream.hvoid main()int year;cout请输入一个年份:year;if(year%4=0&year%100!=0)|(year%400=0)coutyea
5、r年是闰年.endl;elsecoutyear年不是闰年.endl;getchar();程序执行后输出结果如下:请输入一个年份:2006 2006年不是闰年。3.多分支语句v多分支语句的格式为:vif()vvelse if()vvvelse if ()vvelsev4、if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下:If(条件)if(条件)语句1;else 语句2;Else if(条件)语句3;else 语句4;注意:else总是与离它最近的没有配对的if配对。也可以加括号确定配对关系。知识点总结vIf 语句中条件必须用括号括起来,而必须是一个关系表达式或逻
6、辑表达式vIf语句与else必须配对v当要执行的语句是多条时要用大括号括起形成复合语句习题巩固例题巩固分析此程序的结果是否正确?如不正确该如何改写程序1:#includeVoid main()int x,y;cinx;If(x0)y=-1;Else if(x=0)y=0;Else y=1;Coutxy;Y=-1 (x0)例题巩固分析此程序的结果是否正确?如不正确该如何改写#includeVoid main()int x,y;cinx;if(x=0)if(x0)y=1;else y=0;Else y=-1;Y=-1 (x0)例题巩固分析此程序的结果是否正确?如不正确该如何改写#includeVo
7、id main()int x,y;cinx;Y=-1;if(x!=0)if(x0)y=1;else y=0;Y=-1 (x0)例题巩固分析此程序的结果是否正确?如不正确该如何改写#includeVoid main()int x,y;cinx;y=0;if(x=0)if(x0)y=1;else y=-1;Y=-1 (x0)3.2.2 switch语句语句v1.switch语句vswitch语句是多分支选择语句。switch语句的语法形式如下:switch(表达式)case常量表达式1:语句1 break;case常量表达式2:语句2 break;case常量表达式n:语句n break;defa
8、ult:语句n+1实例程序:当情况变量i为1时,输出字符串case 1,为2时输出字符串case 2等,当情况不是1或2或3时,输出字符串default#include stdafx.h#include stdio.h#include iostream.hvoid main()int i;cout请输入一个情况数i:i;switch(i)case 1:coutcase 1endl;break;case 2:coutcase 2endl;break;case 3:coutcase 3endl;break;default:coutdefaultendl;getchar();知识点总结:知识点总结:
9、v(1)switch后面括号内的表达式只能是整型表达式或字符型表达式。与其对应,case之后的常量表达式也应为整型常量表达式或字符型常量表达式;v(2)每个case后面的常量表达式的值必须互不相同;v(3)各个case和default的出现次序不影响执行结果;v(4)一个case后可以包含多个语句,并且这多个语句不必用花括号括起来,程序会自动v顺序执行该case后面的所有语句;一个case后面也可以没有任何语句。2.break语句在switch语句中的作用v当在switchcase语句中使用break语句时,会引起程序流程由switch结构体退出。控制转向switch结构末尾的第一条语句。如果
10、没有使用break语句,控制转向下一个case语句,执行switch结构中其余的语句。switch语句的嵌套使用#include stdafx.h#include stdio.h#include iostream.hvoid main()int a,b;type whattobuy;flowercolor color;coutWhat do you want to buy?0 fish,1 flower:a;switch(a)case 0:coutbuy fish!endl;break;case 1:coutbuy flower!endl;coutWhich color do you want
11、 to buy?0 red,1 blue,2 white,3 black,4 green:b;switch(b)case 0:coutred flowerendl;break;case 1:coutblue flowerendl;break;case 2:coutwhite flowerendl;break;case 3:coutblack flowerendl;4:coutgreen flowerendl;break;default:coutSorry,which color?endl;break;default:coutSorry,what do you want?=300 公里时:v货重
12、w2吨时,按98%收费;v2=w4吨时,按96%收费;v4=w=6时,按92%收费;v(2)当运输距离s300 公里时:v货重w2吨时,按100%收费;v2=w4吨时,按98%收费;v4=w=6时,按94%收费;v写程序前,设p为每吨每公里的运费,s,w,p为输入数据(均为整数)cost(输出)为向用户收取的费用。v2、输入两个正整数a,b。b最大不超过三位数,a不大于31。使a在左,b在右,拼接成一个新的数c。例如:a2,b16,则c216;若a18,b476,则c18476。v3、任意输入三个数代表三角形的三边长,看这三边能否组成三角形。3.3循环语句循环语句v思考:v如何实现在屏幕上输出
13、1个星型符号?v如何实现在屏幕上输出5个星型符号?v如何实现在屏幕上输出100个星型符号?v结论:v当重复执行相同语句时,要进行循环。3.3.1 while循环语句循环语句vwhile()循环语句又称为前判循环语句或while()循环语句。vwhile()语句的一般格式:vwhile(条件表达式)v循环体语句;vwhile循环由4个部分组成:v(1)循环变量初始化v(2)继续条件v(3)循环体v(4)改变循环变量的值例:求1+2+3+100 i=1;循环变量初始化while(i=10)继续条件循环体sum=sum+i;i+;改变循环变量的值用while语句求累加和:S=1+2+2+4+n v程
14、序流程图 程序代码#include stdafx.h#include stdio.h#include iostream.hvoid main()int i,n,sum;coutplease input an integer:n;sum=0;i=1;while(i=n)sum=sum+i;i+;coutsum=sumendl;getchar();程序执行后提示:Please input an integer:100sum=5050知识点总结:知识点总结:v(1)while语句是先判断表达式in是否成立,若条件成立,则将sum加i后赋给sum及i增加1;若条件不成立,则不执行相应语句,退出循环。v
15、(2)当表达式的值一开始不成立,语句一次也不执行。如当输入n为0时,in不成立,语句sum=sum+i;和i+;一次也不执行。v(3)在循环体中应有能不断修改循环条件的语句,最终能使循环结束,否则会形成“死循环”。如i+;语句,使i不断加1,直到大于n为止。例题巩固编写检验一个正整数n是否为素数的程序 v分析:v素数就是除了1和其本身之外,不能被其他数整除的数。v要检验一个正整数n是否是素数,可以用2到n-1对n进行模除取余运算,如果余数为零则表明该数被某个数整除了,不是素数;否则表明该数是素数。v如果一个正整数n不是素数,除了输出“这个数不是个素数!”的提示字符串外,还应用break语句从循
16、环体内退出。v在循环语句的后继语句还要判定循环控制变量i是否与n相等,如果相等,表示n是个素数,输出“这个数是个素数!”的字符串;否则不是素数,而是中途从循环体内退出来的。程序代码#include stdafx.h#include stdio.h#include iostream.hvoid main()int n,i=1;cout请输入一个正整数:n;while(+in)if(n%i=0)cout这个数不是个素数!endl;break;if(i=n)cout这个数是个素数!endl;getchar();3.3.2 do-while语句语句1.do-while循环语句其一般格式:do循环体语句
17、;while(表达式);2.do-while循环语句的执行过程vdo-while循环语句的执行过程:v(1)先执行循环体。在循环体内应有对循环控制变量进行修改的操作。v(2)检测循环控制表达式的值。若其值为非零(真),则再一次执行循环体,否则退出循环,控制流程转向do-while语句的后继语句继续执行。例题巩固:1、输入一个非负数,将各位数字反转后输出#include stdafx.h#include stdio.h#include iostream.hvoid main()int n,x;cout请输入一个整数:n;cout此数反转后为:endl;dox=n%10;coutx;n/=10;w
18、hile(n!=0);coutendl;getchar();2、求一个由键盘输人的整数的阶乘程序 v分析:2!=1*2;3!=1*2*3;n!=1*2*3*(n-1)*n。求一个由键盘给定数的阶乘就是以给定n作为循环控制变量,达到计算阶乘的目的。程序代码#include stdafx.h#include stdio.h#include iostream.hvoid main()int i=1,f=1,n;cout请输入一个正整数:n;do f=f*i;i=i+1;while(i=n);coutn!=fendl;getchar();3.3.3 for语句语句v1.for循环语句vfor语句的一般
19、格式:for(表达式1;表达式2;表达式3)循环体语句;v其中:for是for循环语句的关键字;表达式1通常是赋值语句,可以实现对多个变量(用逗号运算符分隔成逗号运算表达式)进行赋初值;表达式2通常是关系表达式或逻辑表达式,它在每次循环之前,用于对循环控制条件的检测,表达式2为非零时执行循环体,否则退出循环,执行该循环语句的后继语句;表达式3是一般表达式用于循环控制条件变量的修改。循环体语句是for循环语句的循环体,可以是单个语句,也可以是复合语句。2.for语句的执行过程vfor语句的执行过程:v(1)先对表达式1进行计算。一般是赋值。v(2)检测表达式2。如果循环控制条件表达式值为真,则执
20、行循环体,否则退出循环。v(3)表达式3一般不在循环体内,而在for后的括号内,每次执行完循环体就转入对表达式3的修改操作;接着对表达式2进行检测以决定是否继续进行循环。例:使用for循环求1100之间的质数#include stdafx.h#include stdio.h#include iostream.hvoid main()int i,j,k,flag;for(i=2;i=100;i+)flag=1;k=i/2;for(j=2;j=k;j+)if(i%j=0)flag=0;break;if(flag)couti ;coutendl;getchar();3.3.4 三种循环语句的比较三种
21、循环语句的比较v(1)while语句和for语句都是先判断循环条件表达式的值,后执行循环体语句:而do-while语句是先执行循环体语句,后判断循环条件表达式的值。v(2)while语句、do-while语句和for语句都是循环条件表达式为真时重复执行循环体语句,循环条件表达式为假时结束循环。v(3)当第一次执行while语句或for语句时,循环条件表达式就是假,则一次也不执行循环体语句:而当第一次执行do-while语句时,循环条件表达式就是假,也要执行一次循环体语句。也就是说,do-while语句至少执行一次循环体,而while语句和for语句有可能一次也不执行循环体。v(4)while语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序
限制150内