《流程控制语句》PPT课件.ppt

上传人:牧羊曲112 文档编号:5546801 上传时间:2023-07-19 格式:PPT 页数:40 大小:363KB
返回 下载 相关 举报
《流程控制语句》PPT课件.ppt_第1页
第1页 / 共40页
《流程控制语句》PPT课件.ppt_第2页
第2页 / 共40页
《流程控制语句》PPT课件.ppt_第3页
第3页 / 共40页
《流程控制语句》PPT课件.ppt_第4页
第4页 / 共40页
《流程控制语句》PPT课件.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《流程控制语句》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《流程控制语句》PPT课件.ppt(40页珍藏版)》请在三一办公上搜索。

1、第四章 流程控制语句(2),2011-3-29,王卫红/曹玉辉,流程控制语句用来控制程序的执行过程,它包括以下三种语句:,选择:用来解决实际应用中按不同情况进行不同处理的问题.包括:if语句 和 switch语句,循环:用来解决实际应用中需要重复处理的问题.包括:for语句、while语句 和 do语句,跳转:用来改变顺序向下执行的正常顺序.包括:goto、continue、break 和 return语句,表达式,语 句,真,假,一、if语句的简单分支,语句:if(表达式)语 句,表达式为任意表达式,若有多条语句,则要构成复合语句,执行:计算 表达式的值,若为真(不为0)则执行语句;否则不执

2、行语句,二、if语句的双分支,if(表达式)语句1else 语句2,表达式,语句 1,语句2,真,假,入口,出口,执行:,若表达式的值不为0,执行语句1,否则执行语句2,语句:,嵌套的两种形式:(1)嵌套 ifelse(2)嵌套 else if,三、if 语句的嵌套(处理多分支问题),(1)嵌套 ifelse,if(表达式1),if(表达式3)语句1;,if(表达式2),else 语句2;,else 语句3;,else 语句4;,外层,内层,中层,若表达式1的值为非0,即真,则执行中层ifelse结构;否则,执行语句4。执行中层时,若表达式2的值为非0,即真,则执行内层ifelse结构;否则,

3、执行语句3。执行内层时,若表达式3的值为非0,即真,则执行语句1;否则,执行语句2。,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;.else if(表达式n)语句n;else 语句n+1;/*前面n个条件均 不成立,执行语句n+1*/,(2)嵌套 else if,形式:,switch(表达式)case 常量表达式1:语句序列1;case 常量表达式2:语句序列2;.case 常量表达式n:语句序列n;default:语句序列n+1;,四、switch 语句是多分支选择语句,switch 通常与break语句联用:break用于中断或结束语句(只能

4、用在switch语句和循环语句中),分支(选择)结构小结,1、if语句的简单分支,2、if语句的双分支:if-else3、if的嵌套4、switch 语句的使用,书中例题:P80(2)P81(3)、P85(2)P86(3),4.3 4.5 循环结构,一、for 语句*,二、while语句*,三、do-while 语句*,主要学习语句的执行过程、使用方法,循环:重复执行一段语句,格式,for(表达式1;表达式2;表达式3)语句,表达式2,语句,表达式1,表达式3,表达式1:作为初始化,先执行表达式1的值;再执行表达式2,如果值为真,执行语句,再执行表达式3,重复;如果表达式2的值为假,退出循环,

5、继续执行下面的语句。,执行情况,真,假,表达式2:作为循环控制,是循环条件,表达式3:每次都要做,改变循环变量,4.3 for语句(计数式型循环),for(循环变量赋初值;循环条件;循环变量增值)语句,for(s=0,i=1;i=100;i+)s+=i;,注意:,这三个表达式都可以忽略,但分号 不能省 for(;),不能构成死循环,死循环只能用ctrl+c强行中止,所以源程序编辑后应先存盘。,for循环最常见格式:,例:求n!(n的值由键盘输入),#includevoid main()int n;double s=1.0;coutn;for(int i=1;i=n;i+)s*=i;coutn!

6、=sendl;,例:输入一个数,判断是否为素数,#includevoid main()int n,i;cinn;for(i=2;in;i+)if(n%i=0)break;if(i=n)cout“nYes”;else cout“nNo”;,例4.3.3:打印一九乘法表。,1*1=1 1*2=2 1*3=3 1*9=9,#includevoid main()int i=1,j;cout“n”;for(j=1;j=9;j+)couti“*”j“=“i*j;,int i,j;for(i=1;i=9;i+)cout“n”;for(j=1;j=9;j+)/*循环嵌套*/couti“*”j“=“i*j“t”

7、;,int i,j;for(i=1;i=9;i+)cout“n”;for(j=1;j=i;j+)/*循环嵌套*/couti“*”j“=“i*j“t”;,1*1=1 2*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=169*1=9 9*2=18 9*3=27 9*4=36.,循环嵌套,内循环外循环,嵌套不能有交叉,在循环嵌套中,break语句只能退出一层循环,双重for循环的执行过程:例:求1!+2!+3!+5!,#includevoid main()int i,j;long int s=0,m;for(i=1;i=5;i+)m=1;for(j

8、=1;j=i;j+)m*=j;s+=m;coutsendl;,m=1;,s=0;,当 i=5,当j=i,m*=j;j+;,s+=m;i+;,coutsendl;,#include 10 s=0;void main()20 for(i=1;i=3;i+)int i,j;30 m=1;long int m,s;40 for(j=1;j=i;j+)50 m*=j;60 s+=m;70 coutsendl;,10,20,30,40,50,60,m=1,s=0,i=1,j=1,m=1*1,s=0+1,i=2,j=1,m=1,m=1*1,j=2,m=1*2,s=1+2,i=3,j=1,j=2,j=4,m=

9、1,m=1*1,m=1*2,m=2*3,s=3+6,70,s=9,i=4,外走一内走遍,j=2,j=3,j=3,例:打印出100到200之间的素数,#includevoid main()int i,j;for(i=100;i=i)cout“t”i;,#includevoid main()int i,j,n,m;long s=0,t;cinnm;for(i=1;i=n;i+)t=1;for(j=1;j=m;j+)t*=i*2-1;s+=t;couts“n”;,例:1m+3 m+5 m+7 m+.,返回,格式:while(表达式)语句,执行过程:先求表达式的值,判断为真为假,若为真,则执行语句;否

10、则退出循环。,注意:,语句:一个语句,不是语句序列表达式后面不能有分号,4.4 while 语句(条件循环),例:求1+2+3+100的和,#includevoid main()int s,i;s=0;/*s为累加和*/i=1;/*i为循环控制变量*/while(i=100)/*循环条件*/s+=i;i+;couts;,#include void main()int s,i;10:s=0;20:i=1;30:while(i=4)40:s+=i;50:i+;60:couts;,s=0,循环过程如下:,10,20,40,30,50,60,i=1,s=0+1,i=2,1,s=1+2,i=3,1,1,

11、i=4,s=3+3,0,s=6+4,i=5,s=10,1,例4.4.2:编程求 的近似值,公式/4 1-1/3+1/5-1/7+1/9-,#include#include void main()int s;float n,t,pi;s=1;n=1;t=1;pi=0;while(fabs(t)1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=4*pi;cout“pi=”pi“n”;,分析:题目仍可以看成是累加求和不同的是,相加的每一项正负相间,公式是无穷的,所以我们规定当相加项的绝对值小于0.000001(即106)时停止计算,1,1,-1,3,-1/3,1,0,1,0.67,1

12、/5,5,1,返回,格式,do 语句while(表达式),执行情况:,先执行语句,再计算表达式的值,若非0,再执行语句;否则退出循环,执行下面的语句,do后若有多条语句,需使用复合语句,语句至少被执行一次,不同于while语句,注意,4.5 do-while语句(直到型循环),;,while 语句与do-while语句(求1到100的累加和),#includevoid main()int s,i;s=0;cini;while(i=100)s+=i;i+;couts;,#includevoid main()int s,i;s=0;cini;do s+=i;i+;while(i=100);cout

13、s;,输入:101,输出:0,输出:101,输入:101,三种循环语句的比较:,for和 while语句是先判断循环条件再执行循环体,而do循环是先执行循环体,然后再判断,依次反复进行下去,直到循环条件的值为假时止,所以,for和 while的循环体可能一次也不执行;而do语句的循环体至少执行一次。,一般情况下,它们之间可以相互转换,编程时可 以任选使用,通常使用for循环较简单。,在任一种循环的循环体内都可以使用break语 句使之终止循环的执行,使用continue语句结束一次循环体的执行。,循环结构小结,一、for 语句*,二、while语句*,四、循环的嵌套,三、do-while 语句

14、*,书中例题:P92(4)、P95(3)、P97(2)P99(1)、P103(1),返回,用来改变顺序向下执行的正常顺序.包括:goto、break、continue和 return语句,4.6 跳转语句,一、goto 语句格式:goto 语句标号;(注:语句标号后加:号)功能:无条件转向语句。如:goto loop;,二、break 语句,只用于switch语句和循环中,用在循环中,用来中止循环,提前跳出循环体,#includevoid main()int i=1,s=0;while(i=2000)break;s+=i;i+;cout“s=“s“i=”i;,例4.6.1:,结果:s=2016

15、 i=64,三、continue 语句,只能用在循环中,continue通常与if语句结合,一同用于循环结构,注意:与break语句的区别,continue:结束本次循环,继续下次循环break:中止循环的进行,1.break语句:中止循环或switch结构2.continue语句:结束本次循环,然后再根据是否满足 条件来决定是否执行下次循环,例:把100到200之间的不能被3整除的数输出出来,#includevoid main()int n;for(n=100;n=200;n+)if(n%3=0)continue;coutn;,作业:,实验三:三种基本结构的实现,一、实验目的:1能够正确使用

16、cin/cout或printf()/scanf()进行各种数据正确格式的输入输出。2能够熟练使用if语句和switch语句编写分支选择结构程序。3熟练掌握用while语句、dowhile语句和for语句结构及编写循环结构程序。4掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。5进一步学习调试程序。,二、实训步骤、方法与要求,1编程计算正整数1-n中的奇数与偶数的和,输出相应信息。2编程求解分段函数的值,写出分段函数的数学表达式。3利用switch语句对一个百分制的成绩给出相应等级。4利用循环语句的三种结构编程求1+2+3+100的和存入变量sum中并输出。5编程打印500

17、以内的“水仙花数”。“水仙花数”是个3位数,其各位数立方和等于该数本身。6、任给一个的正整数,要求:求出它是几位数。按逆序打印出各位数字。例如原数为321,应输出123。除此之外,程序还应当对不合法的输入作必要的处理。例如:输入负数。提示:利用%、/运算符,循环迭代。7利用双重循环语句输出99乘法表。8验证教材中的例题与习题。(求素数,一元二次方程等)。,累加累乘判素数牛顿迭代法数值积分*,算法小结:,返回,附:牛顿迭代法求根:几何意义:求f(x)在X0附近的根2.计算公式:Xn+1=Xn-f(Xn)/f(Xn)精度:=|Xn+1-Xn|1.0e-3所求的根:满足精度的Xn,f(x)=a0 x

18、n+a1xn-1+.+an-1x+an=0,三要素:迭代初值,元方程,导数方程X0=a:X1=X0(X1=a)初始化迭代初值DoX0=X1为下一次迭代做准备F(x)=F(x)=X1=X0-F(x)/F(x)计算下一次的迭代值While Abs(X1-X0)Precision直到结果非常相近X1 即为结果 其中 Precision为要求的精度.,算法实现:p76 例21.设两个变量来实现xn和 xn+1:例:x和x1 迭代初值:x1=-0.52.设两个变量来实现f(xn)和f(xn):例:y1和 y23.迭代的规律:x=x1 y1=f(x1)y2=f(x1)x1=x-y1/y2 判|x-x1|=10-3?是,x为所求的根;否则x x1,再迭代,直到满足条件。程序见 P76,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号