C语言程序设计课件(北理工李凤霞)第六章 循环结构的程序设计

上传人:e****s 文档编号:243356423 上传时间:2024-09-21 格式:PPT 页数:32 大小:774.50KB
返回 下载 相关 举报
C语言程序设计课件(北理工李凤霞)第六章 循环结构的程序设计_第1页
第1页 / 共32页
C语言程序设计课件(北理工李凤霞)第六章 循环结构的程序设计_第2页
第2页 / 共32页
C语言程序设计课件(北理工李凤霞)第六章 循环结构的程序设计_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第五章 循环,科技学院应用数学系,共,32,页 第,*,页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,循环结构的程序设计,语句,Y,N,条件,节目录,1,面向过程程序设计的任务:,上章,小结,内存分配,指令分配,数据,描述,过程,描述,顺序,访问,第三章,第四、五章,解决的问题:,当过程中出现选择结构问题时,针对问题的类型,可有三种不同的条件判定方法来描述过程。,本章新问题,2,循环的基本概念,不同形式的循环控制,多重循环问题,第六章 循环结构的程序设计,本章,要点,当问题中需要多次使用同一过程时,用循环的方法来描述过程。,共,32,页 第,3,页,返回主目录,第节,第节,第节,第节,第节,循环的基本概念,当型,循环控制,直到型循环控制,循环的嵌套,循环应用,第六章 循环结构的程序设计,共,32,页 第,4,页,共,32,页 第,5,页,什么是循环?,为什么要使用循环?,?,6-1,循环的基本概念,循环是有规律的重复操作。,将复杂问题,分解,为简单的操作过程,程序只对简单过程描述,这些过程的多次,重复,就可完成对问题的求解。重复的频繁性决定了循环在程序设计中必不可少!,一、循环问题,问题1:,问题2:,求学生平均成绩,分数相加后除以课数,做99次加法,问题3:,找出数,x,中能同时被3和7整除的数,找数,问题分解,循环控制,下页,节,末页,结束,共,32,页 第,6,页,6-1,循环的基本概念,if-goto,循环,while,循环,for,循环,do while,循环,先判断后循环,(当型循环),先循环后判断,(直到型循环),特点:,难点:,循环嵌套,C,提供四种循环控制:,首页,上页,下页,节,末页,结束,共,32,页 第,7,页,6-1,循环的基本概念(续),二、循环结构,循环结构有两种形式:,当型循环结构,直到型循环结构,循环体,N,条件,Y,当型循环,直到型循环,条件,N,Y,循环体,先判断后循环,先循环后判断,入口,出口,区别?,循环体中是一,个过程,该过,程的复杂程度,取决于问题及,对问题的分解,首页,上页,下页,节,末页,结束,共,32,页 第,8,页,6-1,循环的基本概念(续),三、循环的执行过程,循环体,N,条件,Y,当型循环,条件 循环 次数,Y,循环体,?,Y,执行 1,Y,执行 3,Y,执行 2,N,结束,循环体,Y,?,循环体,Y,?,?,N,3次,在循环入口处判断,当条件为真时执行循环,首页,上页,下页,节,末页,结束,共,32,页 第,9,页,6-1,循环的基本概念(完),直到型循环,在循环出口处判断,当条件为真时继续执行循环,直到条件为假时为止。,条件,N,Y,循环体,条件 循环 次数,执行 1,Y,执行 3,Y,执行 2,N,结束,3次,Y,条件,循环体,Y,条件,循环体,Y,条件,循环体,Y,执行 4,条件,循环体,N,4,次,循环至少执行一次,首页,上页,下页,节,末页,结束,共,32,页 第,10,页,6-2,当型循环控制语句,一、结构与语句,循环体,N,条件,Y,形式,1,:,标号:,if (,条件),语句组,goto,标号,形式,2,:,while (,条件),语句组,形式,3,:,for (,初值;条件;增量),语句组,循环入口语句,循环终端语句,当型循环,首页,上页,下页,节,末页,结束,当条件为真时执行循环体,goto,标号,共,32,页 第,11,页,6-2,当型循环控制语句(续),首页,上页,下页,节,末页,结束,例,C5-1,求:,s=s+n,n+,语句,s=1+2+3+n,分析,问题被简化为做加法:,最基本的执行语句就是循环体内的语句。其次要考虑在进入循环之前和结束循环之后计算机应该完成的操作。,用流程图描述整个过程,二、三种语句的应用,共,32,页 第,12,页,6-2,当型循环控制语句(续),/*,C5-1.C*/,main(),int n=1,S=0,x;,scanf(%d,loop:,if(n=x),s=s+n;,n+;,goto,loop,;,printf(s=%dn,s);,开始,初始化,n,s,x,输入,x,n=x,s=s+n,Y,n,加,1,首页,上页,下页,节,末页,结束,N,输出,s,结束,10,s=55,100,s=5050,255,s=32640,运行,while(n=x),for(;n=x;),if-goto,While(n=x),for(;n=x;),循环结束,区别?,共,32,页 第,13,页,6-2,当型循环控制语句(续),首页,上页,下页,节,末页,结束,三、,for,语句执行过程,计算,e1,初值;,计算,e2,并判断,0则跳出循环,非0执行循环;,当,e2,非0,,执行循环到终端语句,计算,e3,增量;,自动转到第二步继续执行。,For,语句格式:,for (,初值,e1;,条件,e2;,增量,e3),语句组,共,32,页 第,14,页,6-2,当型循环控制语句(续),首页,上页,下页,节,末页,结束,1.,e1、e2、e3,均可缺省,for (;n100;n+),缺省,e1,n,应在循环之前赋初值,for (n=0;n+),缺省,e2,造成死循环,,不可使用!,for (n=0;n100;),缺省,e3,n,增量应在循环体内进行,for (; ;),缺省,e1,e2,e3,死循环!,for (;n100;),缺省,e1,e3,分号始终不能缺省!,讨论,不可用,共,32,页 第,15,页,6-2,当型循环控制语句(续),首页,上页,下页,节,末页,结束,for(,初值,;,判断,;,增量,),语句;,for(,初值,;,判断,;,增量,),复合语句;,for(,初值,;,判断,;,增量,),;,2.,e1,和,e3,可是与初值、增量无关的逗号表达式,for (,s=0,n=1;,n=100;,s=s+n, printf(“ %d” ,s,),n+;,for (s=0;n100;,s=s+n,n+),printf(“ %d” ,s);,求累加和,n,的初值在,for,之前,完成,增量在,for,之外完成,For,语句的形式:,共,32,页 第,16,页,6-2,当型循环控制语句(续),首页,上页,下页,节,末页,结束,/*,C5-2.C*/,main(),int n=1,s=0,x;,scanf(%d,for(;n=x;n+),s=s+n;,printf(s=%dn,s);,while(n=x),s=s+n;,n+;,/*,C5-2-1.C*/,main(),int n,s,x;,scanf(%d,for(n=1,s=0;n=x;n+),s=s+n;,printf(s=%dn,s);,例,C5-2,缺省,e,1,赋初值,语句,共,32,页 第,17,页,6-2,当型循环控制语句(完),首页,上页,下页,节,末页,结束,/*,C5-4.C*/,main(),int n,s;,for(n=1;n=10;n+=2),printf(n=%dn,n);,/*,C5-3.C*/,main(),int n,s;,for(n=1;n=10;n+=2);,printf(n=%dn,n);,以下,程序的输出结果,输出结果:,n=11,输出结果:,n=1,n=3,n=5,n=7,n=9,?,无循环体,循环体,;,特点:先判断后循环,共,32,页 第,18,页,6-3,直到型循环控制语句,首页,上页,下页,节,末页,结束,一、结构与语句,形式,1,:,if (,条件),goto,标号,形式,2,:,do,语句,while (,条件);,循环出口语句,直到型循环,条件,N,Y,循环体,例,C5-5,求:,流程图,直到条件为假时结束循环,共,32,页 第,19,页,n=x,s=s+n,Y,n,加,1,6-3 直到型循环控制语句(续),/*,C5-5.C*/,main(),int n=1,S=0,x;,scanf(%d,loop:,s=s+n;,n+;,if(n=x) goto,loop,;,printf(s=%dn,s);,开始,初始化,n,s,x,输入,x,首页,上页,下页,节,末页,结束,do,s=s+n;,n+;,while (n=x);,if-goto,do while,N,输出,s,结束,二、两种语句的应用,共,32,页 第,20,页,/*,C5-6-1.C*/,main(),int s=0,x;,scanf(%d,while (x=10),s=s+x;,x+;,printf(s=%dn,s);,/*,C5-6.C*/,main(),int s=0,x;,scanf(%d,do,s=s+x;,x+;,while(x=10);,printf(s=%dn,s);,6-3 直到型循环控制语句(完),首页,上页,下页,节,末页,结束,输入:12,输出:,s=12,例,C5-6,循环至少,执行一次,循环没有,被执行,输入:12,输出:,s=0,三、,whilw,与,do while,的比较,共,32,页 第,21,页,6-4,循环的嵌套,首页,上页,下页,节,末页,结束,一、循环嵌套的概念,1 2 3 4 5 6 7 8 9,-,1,2 4,3 6 9,4 8 12 16,5 10 15 20 25,6 12 18 24 30 36,7 14 21 28 35 42 49,8 16 24 32 40 48 56 64,9 18 27 36 45 54 63 72 81,在循环体中,又包含有循环结构。可以构成循环嵌套。,行循环中包含了列循环。,问题:,双重循环,共,32,页 第,22,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,二、嵌套结构规则,外循环,内循环,交叉循环,三、,break,语句与,continue,语句,外循环,入口,内循环出口,内循环出口,外循环出口,共,32,页 第,23,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,break,语句格式,break,;,break,语句的功能,switch,语句中结束,case,子句,使控制转到,switch,语句之外。,2.在循环语句的循环体中使用,结束循环过程,使控制转移到整个循环语句之外的下一条语句处。,共,32,页 第,24,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,continue,语句格式:,continue,;,continue,语句的功能:,continue,语句仅能在循环语句中使用。,它的作用不是结束循环,而是开始一次新的循环。,对于,for,语句,将控制转到执行增量和条件测试部分。,对于,while,和,do-while,语句,将控制转到条件测试部分。,共,32,页 第,25,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,例,C5-7,打印边长为,m,的正方型,要求:,从键盘输入,m,值,输出,m,行每行,m,个*,号。,例:,输入,m=4,,,输出的图形如下:,算法分析与设计:,1. 输入,m,,,2.,重复,打印,m,行,每行打印,m,个,*,;,* * * *,* * * *,* * * *,* * * *,1. 输入,m,;,2. for ( k=1; k=m; k+),打印一行中的,m,个,*,;,行控制,共,32,页 第,26,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,例,C5-7,细化:,1. 输入,m,;,2. for ( k=1; k=m; k+),打印,m,个,*,;,换新行;,细化:,1. 输入,m,;,2. for ( k=1; k=m; k+), for ( j=1; j=m; j+),printf (“,*,”);,printf(“n”) ;,行控制,列控制,共,32,页 第,27,页,6-4,循环的嵌套(续),首页,上页,下页,节,末页,结束,例,C5-7,#,include ,main ( ), int k, m, j;,scanf (,“%d”, ,for ( k=1; k=m; k+),/*,控制打印,m,行 */,for ( j=1; j=m; j+),/*,打印一行中的,m,个*号 */,printf (“,*,”);,printf(“n”) ;,整理,得到程序如下:,共,32,页 第,28,页,6-4,循环的嵌套(完),首页,上页,下页,节,末页,结束,分析方法,逐步求精法。对于复杂问题,不可能一下得到程序,可以先将简单的部分明确出来,再逐步对复杂部分进行细化,一步一步推出程序。,共,32,页 第,29,页,6-5,循环应用,例题,C5-8,求14,13,数的最后三位数。,1. 问题分析,将14累乘13次后截取最后三位数?,因为14的13次方已经超出了计算机所能表示的整数范围,乘法规律:乘积的最后三位的值只与乘数和被乘数的后三位有关,C语言中最长的整数是:,无符号长整型数:0-4294967295,10位,14,10,=289254654976,12位,首页,上页,下页,节,末页,结束,共,32,页 第,30,页,6-5 循环应用(续),2. 解题方法,设计求,x,y,末尾三位数的通用程序。设一累乘器A,使A与X相乘后取末尾三位数,即:,a=a*x%1000,,如此循环,y,次。,问题被简化为求,三位数乘法。,3. 程序流程图,首页,上页,下页,节,末页,结束,共,32,页 第,31,页,6-5 循环应用(续),开始,初始化,i,x,y,a,输入,x,y,N,输出结果,结束,main(),int i=1,x,y,a=1;,printf(Input X and Y:);,scanf(%d*%d,while (i=y),a=a*x%1000;,i+;,printf(3 digits is:);,printf(%dn,a%1000);,Input X and Y:14*13,3 digits is:144,Input X and Y:15*12,3 digits is:625,i=y,a=a,*,x%1000,Y,i,加1,首页,上页,下页,节,末页,结束,共,32,页 第,32,页,6-5 循环应用(完),首页,上页,下页,节,末页,结束,#,include ,main ( ), int i=1, j;,/* i:,行计数器,j:,列计数器 */,while (i = 9 ),/*,控制打印表头 */,printf (%4d,i+);,printf (n-n);,for (i=1;i=9;i+),/*,行循环入口 */,j=1;,/*,列计数器置1 */,while (j=i ),/*,嵌套的内循环。输出第,i,行 */,printf (,“,%4d,”, i*j);,/*,输出乘积 */,j +;,/*,列计数器+1 */,printf (n);,/*,一行输出结束后,输出,n */,例题,C5-9,打印乘法九九表,内循环终值与外循环变量有关,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!