循环结构程序设计.ppt
《循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《循环结构程序设计.ppt(39页珍藏版)》请在课桌文档上搜索。
1、2023/3/24,1,第5章 循环结构程序设计,学习目标,理解循环结构的概念。掌握如何用while语句构成循环结构。掌握如何用do-while语句构成循环结构。熟练掌握如何用for语句构成循环结构。掌握循环结构的嵌套使用。理解break和continue语句应用于循环体。,2023/3/24,2,引言循环是一种对同一程序段有规律的重复。被重复执行的部分叫循环体。循环结构的构成:用while语句 用do-while语句 用for语句 用if语句和goto语句(非结构化,不提倡)此外,在结构化循环语句的循环体中还可以包含break和continue语句,2023/3/24,3,while语句,w
2、hile语句格式:while(条件表达式)SS是循环体,往往是一个复合语句当条件满足则继续循环特点是:先判断后执行特殊情况:开始时条件不满足就不进入循环;条件永远满足则永远循环(死循环),2023/3/24,4,真(非零),循环体,假(零),while语句流程图,2023/3/24,5,算法:S1:定义初始化变量。本程序需要三个变量,一个用来输入整数的n,一个i 用来表示求阶乘过程中数据从1到n的变化,还有一个fac用来保存计算阶乘的结果S2:输入n,需要考虑输入数据的合法性S3:计算n!,就是一个循环累乘求积的过程 n!=1*2*3*.(n-1)*n,【例5-1】用while语句求n!,20
3、23/3/24,6,#include stdio.hvoid main()int n,i=1;long fac;printf(input an integer:);scanf(%d,/*此例改用后面的for循环语句更合理*/,输入:5 输出:5!=60,2023/3/24,7,#include stdio.h void main()float n;scanf(%f,/*继续输入*/,输入:1.2 7-3.5 9 0 输出:+-+,【例】输入一系列实数,判断其正负,当输入零时结束循环。,2023/3/24,8,#include stdio.h void main()char ch;int num
4、=0;ch=getchar();while(ch!=n)num+;ch=getchar();printf(num=%dn,num);,输入:abcd 输出:num=4,【例】统计从键盘输入的一行字符的个数(以回车键作为输入结束标记),2023/3/24,9,do-while语句,do-while语句格式:do S while(条件表达式)当条件满足则继续循环特点是:先执行后判断至少循环一次特殊情况:条件永远满足则死循环,2023/3/24,10,do-while语句流程图,2023/3/24,11,void main()int n,i=1;long fac;scanf(%d,/*此例改用后面的
5、for循环语句更合理*/,输入:5 输出:5!=60,【例5-2】用do-while语句求n!,2023/3/24,12,【例】输入一系列整数求和,直到输入的整数是零为止。void main()int n,s=0;/*累加器初始化*/do scanf(%d,输入:8 6 4 2 0 9 7 输出:s=20,2023/3/24,13,【例】用二分法求下面方程在0,1的近似解 x3+1.1x2+0.9x-1.4=0 令f(x)=x3+1.1x2+0.9x-1.4。因f(0)0,且f(x)0(x0,1),故f(x)为单调递增函数,故在 0,1间方程有一根。又f(x)0(x0,1),得下图 设a=0,
6、b=1,为两端点,循环做:求a与b的中点送x,判断若f(x)0,则b=x,即产生新右端点;否则a=x,即产生新左端点;经多次循环后,得到的x即为所求。,2023/3/24,14,void main()float a=0.0,b=1.0,x;do x=(a+b)/2;if(f(x)0.0)b=x;else a=x;while(fabs(f(x)1e-6);printf(x=%fn,x);,程序如下:#includemath.h#includestdio.hfloat f(float x)return(x*x*x+1.1*x*x+0.9*x-1.4);,输出:x=0.670657,2023/3/2
7、4,15,for语句,for语句格式:for(表达式1;表达式2;表达式3)S 先计算初始化表达式1 若条件表达式2为真则执行S,否则结束循环 执行S之后,计算修正表达式3 重新执行 循环结束则执行for之后的语句,初始化表达式,条件表达式,修正表达式,2023/3/24,16,for语句流程图,2023/3/24,17,【例】用for语句改写【例5-1】for(fac=1,i=1;i=n;i+)fac*=i;它相当于以下语句:fac=1;i=1;/*相当于表达式1*/while(i=n)/*相当于表达式2*/fac*=i;i+;/*相当于表达式3*/,2023/3/24,18,【例】求1!+
8、2!+3!+20!#include stdio.h void main()int i;float s=0.,t=1.;for(i=1;i=20;i+)t*=i;s+=t;printf(1!+2!+3!+20!=%-20.0fn,s);,输出:1!+2!+3!+20!=2561327455189073920,2023/3/24,19,【例】求和:1-1/2+1/3-1/4+-1/100 void main()float sum,t;int sign=1,i;/*sign为正负1*/for(i=1,sum=0;i=100;i+)t=sign*1./i;sum+=t;sign=-sign;print
9、f(sum=%fn,sum);,输出:sum=0.688172,2023/3/24,20,for语句中表达式省略的几种情况:,(1)for语句一般形式中的“表达式1”可以省略 如:fac=1;i=1;for(;i=n;i+)fac*=i;,(2)表达式2省略,即不判断循环条件,循环会无终止地进行下去,所以此时循环体中要保证循环能正常结束 如:for(fac=1,i=1;i+)if(in)break;fac*=i;,2023/3/24,21,(3)表达式3也可以省略,同样,此时循环体中要保证循环能正常结束 如:for(fac=1,i=1;i=n;)fac*=i;i+;,(4)可以省略表达式1和表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计

链接地址:https://www.desk33.com/p-248506.html