循环c程序设计

上传人:F****n 文档编号:88211869 上传时间:2019-04-20 格式:PPT 页数:48 大小:606.50KB
返回 下载 相关 举报
循环c程序设计_第1页
第1页 / 共48页
循环c程序设计_第2页
第2页 / 共48页
循环c程序设计_第3页
第3页 / 共48页
循环c程序设计_第4页
第4页 / 共48页
循环c程序设计_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《循环c程序设计》由会员分享,可在线阅读,更多相关《循环c程序设计(48页珍藏版)》请在金锄头文库上搜索。

1、第三章 程序设计初步,舒玉,C+程序设计,学习目标,掌握C+中各种控制和循环语句的使用; 掌握C+中关于流程控制的相关方法。,2,主要内容,C+的输入与输出 选择结构 用if语句实现选择结构 switch语句 循环语句 while语句 do while语句 for语句,3,循环与选择结构的嵌套 break & continue语句 goto语句,3.11 循环结构 和循环语句,循环的概念,什么是循环? 为什么要使用循环?,问题1:,问题2:求学生平均成绩 分数相加后除以课程数,在许多问题中需要用到循环控制。循环结构是结构化程序设计的基本结构之一,它和顺序结构、选择结构共同作为各种复杂程序的基本

2、构造单元。 循环分为两种:无休止循环和有终止循环 构成有效循环的条件:循环体和循环结束条件,【例】求123 100 对于上述或类似问题,若干个数相加,我们回想一下前面介绍的结构化程序设计的三大结构:顺序、选择、循环。针对该问题应该怎样 怎样进行程序设计?,1、问题与讨论:,?,2、解决办法,引入新的程序结构,循环控制。 为了和循环结构相配合,同时还要引入break和continue语句。 有三种形式可以进行循环结构程序设计 A、while循环 B、dowhile循环 C、for循环 下面我们分别用三种形式的循环语句来实现123100,此题的算法比较简单,从1开始,依次将1到100加在一起,每加

3、一次,就要判断是否到了100,如果超过100,程序结束。 (1)设置变量i1,sum0为累加结果 (2)sumsumi (3)变量i增加1,重复步骤(2) (4)变量i增到100时结束程序,1、算法分析:,例:编程计算 123100,2、程序伪代码,方法1:while 循环 例3.10,void main() int i, sum; i1; sum0; while ( i=100) sum=sum+i; i=i1; coutsumendl; ,程序要点分析,求123100 P74,语句形式:while (表达式) 循环体 ,思考: 1、循环体内 i=i+1的作用,没有会出现什么情况? 2、wh

4、ile后面的条件表达式还可以怎样写? 3、i和sum的初值如果不赋会出现什么情况? 4、循环体语句什么时候用大括号,什么时候可以不用?,返回,?,方法2:dowhile 循环 例3.11,语句形式:do 循环体语句序列 while (表达式),void main( ) int i, sum; i1; sum0;,do sum=sum+i; i=i1; while (i=100 ); coutsumendl; ,cini;,对比下面两种写法在输入10和101的结果分别是多少?,while (i=100) sum=sum+i; i=i1; ,求123100 P75,对比while 循环和do wh

5、ile循环,1、当while后面的表示式的第一次值为“真”时,两种循环结果 相同,否则,不同。 2、while循环在条件为假时,不执行循环体 3、do while 循环不管条件真假,至少执行一次循环体,记录,方法3:for 循环,语句形式:for(表达式1;表达式2;表达式3) 循环体语句序列 ,void main( ) int i,sum=0; for( i=1; i=100; i+ ) sum=sum+i; ,1、分析以上例子中表达式1、表达式2、表达式3分别是什么 2、在for循环中,3个表达式都可以省,分析省略后的各种情况,求123100 P76,for语句的一般形式和执行过程,循环初

6、始条件,循环控制条件,循环体,循环变量控制,for语句等价于下列语句: 表达式1; while (表达式2) 语句; 表达式3; ,3.11.4 几种循环的比较,(1) 3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。,3.11.4 几种循环的比较,(2) while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i+,或i=i+1等)。 for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。,3.11.4 几种循环

7、的比较,(3) 用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。,循环程序举例,例3.12 用/41-1/3+1/5-1/7+ p80 公式求的近似值, 直到某一项的绝对值 小于为止。 e.g. 10-6 N-S图表示算法,3.14 编写循环结构的程序,根据给定的算法很容易编写程序如下: #include #include #include using namespace std; int main( ) int s=1; double n=1,t=1,pi=0;,while(fabs(t

8、)1e-7) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; coutpi= piendl; return 0; ,运行结果为 pi=3.141592 注意: 不要把n定义为整型变量,否则在执行“t=s/n;”时,得到t的值为0(原因是两个整数相除)。,例 求Fibonacci数列前40个数。这个数列有如下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即: F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n3) 算法如图所示:,循环程序举例,Fibonacci数列: 1 1 2 3 5 8 13 2

9、1 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155,#include #include using namespace std; int main( ) long f1,f2; int i; f1=f2=1; for(i=1;i=20;i+) co

10、utsetw(12)f1setw(12)f2; if(i%2=0) coutendl; f1=f1+f2; f2=f2+f1; return 0; ,3.12 循环的嵌套,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。 3种循环(while循环、dowhile循环和for循环)可以互相嵌套。,3.12 循环的嵌套,下面几种都是合法的形式: (1) while( ) (2)do (3) for(;) while( ) do for(;) while( ); while( );,3.12 循环的嵌套,(4) while( ) (5) for(;

11、) (6) do do while( ) for(;) while( ) while( ),3.13用break语句和continue语句改变循环状态,用break语句提前退出循环 。 语句格式: break; 其作用为使流程从循环体内跳出循环体,即提前结束循环,接着执行循环体下面的语句。 注意: break语句只能用于循环语句和switch语句内,不能单独使用或用于其他语句中。,用break语句提前退出循环,例: float pi=3.14159; for(r=1;r100) break; cout“r = “r“, area = “areaendl; ,程序的作用是计算r=1到r=10时的

12、圆面积,直到面积area大于100为止。从上面的for循环可以看到:当area100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。,用continue语句提前结束本次循环,continue语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定. 一般形式: continue;,用continue语句提前结束本次循环,continue语句和break语句的区别: continue语句只结束本次循环, 而不是终止整个循环的执行。 while(表达式1 ) if(表达式2) continue; ,continue语句和break语句的区别,b

13、reak语句则是结束整个循环过程,不再判断执行循环的条件是否成立。 while(表达式1) if(表达式2)break ,例: 把100200之间的不能被3整除的数输出。 #include void main() int n; for (n=100;n=200;n+) if (n%3=0) continue; coutn“ “; ,说明:当n能被3整除时,执行continue语句,结束本次循环(即跳过cout函数语句),只有n不能被3整除时才执行cout函数。,几种循环的比较,(1)三种循环都可以用来处理同一问题,一般情况下它们可以互相代替。 (2)在while循环和do-while循环中,只

14、在while后面的括号内指定循环条件,因此为了使循环能正常结束,应在循环体中包含使循环趋于结束的语句(如i+,或i=i+1等)。,几种循环的比较,for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。 (3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。,几种循环的比较,(4) while循环、dowhile循环和for循环,都可以用break语句跳出循环,用continue语句结束本次循环 。,例3.14 找出100200间的全部素数。,j=101 to 200 j=j+2,例3.14 找出100200间的全部素数。 编写程序如下: #include #include #include using namespace std; int main( ) int m,k,i,n=0; bool prime; for(m=101;m=200;m=m+2) prime=true; k=int(sqrt(m); for(i=2;i=k;i+),if(m%i=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号