第4章循环控制ppt课件.ppt
《第4章循环控制ppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章循环控制ppt课件.ppt(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计 cs.sjtu 2011.9程序设计-1第4章循环控制ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望程序设计 cs.sjtu 2011.9程序设计-2for循环语句循环语句v格式:格式:forfor(表达式(表达式1 1;表达式;表达式2 2;表达式;表达式3 3)语句句v执行行过程:程:1.1.执行表达式行表达式1 12.2.执行表达式行表达式2 23.3.如果表达式如果表达式2 2的的结果果为“truetrue”,则执行循行循环体体和表达
2、式和表达式3 3,然后回到,然后回到2 2,否,否则forfor语句句执行行结束束循环体循环体循环控制行循环控制行程序设计 cs.sjtu 2011.9程序设计-3for循环语句循环语句 续续续续v作作为计数循数循环,可以理解,可以理解为for(循循环变量量赋初初值;循;循环条件;循条件;循环变量增量增值)符合循符合循环条件条件时的的执行行语句句v循循环体所有体所有语句的一次完全句的一次完全执行称行称为一个循一个循环周期周期v循循环体可以是复合体可以是复合语句或空句或空语句句程序设计 cs.sjtu 2011.9程序设计-4逗号表达式逗号表达式v格式:表达式格式:表达式1,表达式,表达式2,,
3、表达式表达式n v执行行过程:先程:先执行表达式行表达式1,再,再执行表达式行表达式2,再,再执行表达式行表达式n,整个表达式的,整个表达式的计算算结果果为最后一个表达式的最后一个表达式的值v逗号运算符的逗号运算符的优先先级是所有运算符中最低的是所有运算符中最低的 如如a的初的初值为0,则表达式表达式 a+=1,a+=2,a+=3,a+=4,a+=5的的结果果为 15 程序设计 cs.sjtu 2011.9程序设计-5v有了逗号表达式,从有了逗号表达式,从1加到加到100的的问题就就可以只用一个可以只用一个语句:句:for(i=1,s=0;i=100;+i)s+=i;或将所有的初始化都放在循或
4、将所有的初始化都放在循环外,即外,即i=1;s=0;for(;i=100;+i)s+=i;v建建议还是用是用s=0;for(i=1;i=100;+i)s+=i;程序设计 cs.sjtu 2011.9程序设计-6for循环的进一步讨论循环的进一步讨论 续续v表达式表达式2也不一定是关系表达式。它可以是也不一定是关系表达式。它可以是逻辑表表达式,甚至可以是算达式,甚至可以是算术表达式。当表达式表达式。当表达式2是算是算术表达式表达式时,只要表达式的,只要表达式的值为非非0,就,就执行循行循环体,体,表达式的表达式的值为0时退出循退出循环。v如果表达式如果表达式2省略,即不判断循省略,即不判断循环条
5、件,循条件,循环将无将无终止地止地进行下去。行下去。v无无终止的循止的循环称称为“死循死循环”v最最简单的死循的死循环是是 for(;);v要要结束一个无限循束一个无限循环,必,必须从从键盘上上输入特殊的入特殊的命令以中断程序命令以中断程序执行并行并强制退出制退出 程序设计 cs.sjtu 2011.9程序设计-7For循环的进一步讨论循环的进一步讨论 续续v表达式表达式3也可以是任何表达式,一般也可以是任何表达式,一般为赋值表表达式或逗号表达式。表达式达式或逗号表达式。表达式3是在每个循是在每个循环周周期期结束后束后对循循环变量的修正。表达式量的修正。表达式3也可以也可以省略,此省略,此时做
6、完循做完循环体后直接体后直接执行表达式行表达式2。v如从如从1加到加到100,可以写,可以写为 s=0;for(i=1;i=100;)s+=i,i+;或或 s=0;for(i=1;i=100;s+=i,i+);程序设计 cs.sjtu 2011.9程序设计-8For循环实例循环实例v求函数求函数 在区在区间a,b之之间的定的定积分分v实现思想:函数与思想:函数与x轴围成的区域的面成的区域的面积。定。定积分分可以通可以通过将将这块面面积分解成一分解成一连串的小矩形,串的小矩形,计算各小矩形的面算各小矩形的面积的和而得到的和而得到 ab程序设计 cs.sjtu 2011.9程序设计-9int ma
7、in()double a,b,dlt,integral=0;cout a b;cout dlt;for(double x=a+dlt/2;x b;x+=dlt)integral+=(x*x+5*x+1)*dlt;cout 积分分值为:integral 0.000001)while(p0.000001)ex+=p;ex+=p;计算新的计算新的p p;问题:如何计算p?计算第i个p,需要两个i次的循环。第一个循环计算xi,第二个循环计算i!解决方案:从前一项计算后一项。如果p是第i项的值,则第i+1项的值为 p*x/(i+1)程序设计 cs.sjtu 2011.9程序设计-13int main()
8、int main()double ex,x,p;/exdouble ex,x,p;/ex存储存储e ex x的值,的值,p p保存当前项的值保存当前项的值 int i;int i;cout cout x;cin x;ex=0;p=1;i=0;ex=0;p=1;i=0;while(p 1e-6)while(p 1e-6)ex+=p;ex+=p;+i;+i;p=p*x/i;p=p*x/i;cout e cout e的的 x x 次方等于次方等于:ex endl;ex endl;return 0;return 0;程序设计 cs.sjtu 2011.9程序设计-14第第4章章 循环控制循环控制 重复
9、重复N次循次循环While循循环Do while循循环循循环的中途退出的中途退出枚枚举法法贪婪法婪法程序设计 cs.sjtu 2011.9程序设计-15DoWhile 循环语句循环语句v格式:格式:do do 语句句 while(while(表达式表达式)v执行行过程:先程:先执行循行循环体,然后判断循体,然后判断循环条件。如条条件。如条件成立,件成立,继续循循环,直到条件,直到条件为假假v如将若干个如将若干个输入数相加,直到入数相加,直到输入入0 0为止。止。total=0;total=0;do cout do cout value;cin value;total+=value;total+
10、=value;while(value!=0);while(value!=0);程序设计 cs.sjtu 2011.9程序设计-16编程实例编程实例v计算方程算方程f(x)在区在区间a,b之之间的根的根。注意,。注意,f(a)和和f(b)必必须异号异号v假假设方程方程为 ,区,区间为-1,1 程序设计 cs.sjtu 2011.9程序设计-17计算方法计算方法v令令x1=a,x2=bv连接连接(x1,f(x1)和和(x2,f(x2)的弦交与的弦交与x轴的坐标点可轴的坐标点可用如下公式求出用如下公式求出 v若若f(x)与与f(x1)同符号,则方程的根在同符号,则方程的根在(x,x2)之间,将之间,
11、将x作为新的作为新的x1。否则根在。否则根在(x1,x)之间,将之间,将x设为新的设为新的x2。v重复步骤重复步骤和和,直到,直到f(x)小于某个指定的精度为止。小于某个指定的精度为止。此时的此时的x为方程为方程f(x)=0的根。的根。程序设计 cs.sjtu 2011.9程序设计-18int main()double x,x1=-1,x2=1,fx1,fx2,fx;do fx1=x1*x1*x1+2*x1*x1+5*x1-1;fx2=x2*x2*x2+2*x2*x2+5*x2-1;x=(x1*fx2-x2*fx1)/(fx2-fx1);fx=x*x*x+2*x*x+5*x-1;if(fx*f
12、x1 0)x1=x;else x2=x;while(fabs(fx)1e-7);cout 方程的根方程的根为:x endl;return 0;程序设计 cs.sjtu 2011.9程序设计-19第第4章章 循环控制循环控制 重复重复N次循次循环While循循环Do while循循环循循环的中途退出的中途退出枚枚举法法贪婪法婪法程序设计 cs.sjtu 2011.9程序设计-20循环的中途退出循环的中途退出v考考虑一个一个读入数据直到入数据直到读到到标志志值的的问题。如。如用自然用自然语言描述,基于言描述,基于标志的循志的循环的的结构由以构由以下步下步骤组成:成:读入一个入一个值如果如果读入入值
13、与与标志志值相等,相等,则退出循退出循环执行在行在读入那个特定入那个特定值情况下需要情况下需要执行的行的语句句v当一个循当一个循环中有一些操作必中有一些操作必须在条件在条件测试之前之前执行行时,称,称为循循环的中途退出的中途退出问题。程序设计 cs.sjtu 2011.9程序设计-21问题问题v由于循由于循环语句是先判断条件再决定是否句是先判断条件再决定是否执行循行循环体,循体,循环的中途退出将使得循的中途退出将使得循环体中的某些体中的某些语句句必必须重复出重复出现。v基于基于标志的循志的循环结构被改构被改为:读入一个入一个值While(读入入值与与标志志值不相等)不相等)执行在行在读入那个特
14、定入那个特定值情况下需要情况下需要执行的行的语句句 读入一个入一个值 程序设计 cs.sjtu 2011.9程序设计-22解决方案解决方案vbreak语句:跳出循句:跳出循环v上述上述问题可以用下列方案解决:可以用下列方案解决:while(true)提示用提示用户并并读入数据入数据 if (value=标志志)break;根据数据作出根据数据作出处理理 vcontinue语句:跳出当前循句:跳出当前循环周期周期程序设计 cs.sjtu 2011.9程序设计-23第第4章章 循环控制循环控制 重复重复N次循次循环While循循环Do while循循环循循环的中途退出的中途退出枚枚举法法贪婪法婪法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 控制 ppt 课件
限制150内