ImageVerifierCode 换一换
格式:PPTX , 页数:60 ,大小:419.47KB ,
资源ID:5767953      下载积分:14 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5767953.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(流程控制.pptx)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

流程控制.pptx

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,The C Programming Language,:,Chapter 4,4-1,结构化程序设计,4-2 C,语句概述,4-3,选择语句,4-4,循环语句,4-5,辅助控制语句,4-6,习题,第四章 流程控制,结构化程序设计思想,算法,传统流程图表示的三种结构,N/S,方框图表示的三种结构,小结,4-1,结构化程序设计,4.1.1,结构化程序设计,思想,任何程序都可以用三种基本结构表示,即用顺序,(Composition),、选择,(Alternation),和循环,(Iteration),结构来表示。,

2、这三种结构反复组合、嵌套构成的程序称为结构化程序。,顺序结构的程序流程是按照语句的顺序依次执行;选择结构是根据给定的条件进行判断,由判断结构决定执行两支或多支程序段中的一支;循环结构是在给定条件成立的情况下,反复执行某个程序段。,优点,结构化程序层次分明、结构清晰、有效地改善了程序的可靠性,从而大大地提高了程序设计的质量和效率,。,4-1,概述,员工工资管理系统,税率计算,员工福利,员工出勤记录,保险费,退休金,4-1,结构化程序设计,自顶向下,逐步求精,4.1.2,算法,“,算法,”,是为解决一个具体问题而采取的确定的有限的操作步骤。,(数据结构)(算法)程序,N,Wirth,算法的表示方法

3、传统的流程图,N/S,方框图,自然语言,伪码,问题求解图(,PAD,),明确问题,利用某种语言,描述算法,设计算法,4-1,结构化程序设计,4.1.3,传统流程图表示的三种结构,开始,/,结束框,一般处理框,判断框,输入,/,输出框,流程线,连接符,4-1,结构化程序设计,4.1.3,传统流程图表示的三种结构,顺序结构,(Composition),A,B,4-1,结构化程序设计,4.1.3,传统流程图表示的三种结构,选择结构,(Alternation),A,B,条件,P,成立,不成立,4-1,结构化程序设计,4.1.3,传统流程图表示的三种结构,循环结构,(Iteration),不成立,条

4、件,P,A,成立,成立,A,条件,P,不成立,(,1,)当型,(,2,)直到型,4-1,结构化程序设计,实例,1,:计算,1+2+3+,+100,的值,i=i+1,s=s+i,开始,N,Y,循环变量,i,置,1,累加器,s,置,0,i=100,?,结束,输出,s,4-1,结构化程序设计,这是一款意大利生产的多功能厨具,|,请猜价格!,600,答案是:,720,低了!,800,750,700,高了!,高了!,正确!,这是一款瑞士生产的多功能刀具,|,请猜价格!,600,高了!,500,高了!,时间到!,1,个商标,720,低了!,答案是:,428,4-1,结构化程序设计,实例,2,:幸运,52,

5、幸运,52,”,的传统流程图,否,是,是,是,否,否,否,是,时间到?,输出产品特点,新产品?,开始,计时,商标数清,0,猜对了?,猜高了?,输入猜想价格,输出“高了!”,输出“正确!”,输出“低了!”,累计商标数,结束,输出商标数,输出“时间到!”,传统流程图的优缺点,优点:形象直观,各种操作一目了然,不会产生,“,歧义性,”,,便于理解,算法出错时容易发现,并可直接转化为程序。,缺点:所占篇幅较大,由于使用流程线,过于灵活,不受约束,使用者可使流程线任意转移,从而造成程序阅读和修改的困难,不利于结构化程序的设计。,4-1,结构化程序设计,4.1.4,N/S,方框图,N/S,方框图是由美

6、国学者,I,Nassi,和,B,Schneiderman,于,1973,年提出的。,N/S,方框图的重要特点就是完全取消了流程线,这样,算法被迫只能顺序执行,从而避免了流程的任意转向,保证了程序的质量。尤其适合结构化程序的设计。,N/S,方框图的另一个优点是既形象直观,又节省篇幅。,4-1,结构化程序设计,4-1,结构化程序设计,4.1.4,N/S,方框图,顺序结构,(Composition),A,B,4-1,结构化程序设计,4.1.4,N/S,方框图,选择结构,(Alternation),A,B,条件,P,成立,不成立,4-1,结构化程序设计,4.1.4,N/S,方框图,循环结构,(Iter

7、ation),A,当,P,成立,A,直到,P,成立,(,1,)当型,(,2,)直到型,实例,1,的,N/S,方框图,累加器,s,置,0,循环变量,i,置,1,i=i+1,s=s+i,i=100,?,输出,s,4-1,结构化程序设计,表达式语句,表达式;赋值语句,i=10;,函数调用语句,printf(Hello!n);,流程控制语句,选择,ifelse,elseif,switchcase,循环,for,while,dowhile,辅助控制,break,continue,goto,return,空语句,;什么也不干,for(i=1;i5000;i+);,延时,for(i=0;ib)t=a;a=b

8、b=t;,if(ac)t=a;a=c;c=t;,if(bc)t=b;b=c;c=t;,printf(%5.2f=%5.2f0),if(ab)z=a;,else z=b;,4-3,选择语句,要想在,n0),if(ab)z=a;,else z=b;,什么时候执行,z=b;,?,太简单了!,else,总是与其上最近的且未与其他,else,配对的,if,配对,因此,n0,并且,amagic),printf(,“,Too high!n,”,);,else,printf(Too low!n,”,);,4-3,选择语句,main(),int magic=200,guess;,printf(,“,Pleas

9、e guess a magic number:,”,);,scanf(%d,if(guess=magic),printf(,“,Right!n,”,);,else if(guessmagic),printf(,“,Wrong!Too big!n,”,);,else,printf(Wrong!Too small!n,”,);,猜数数游戏:由计算机,“,想,”,一个数请人猜,若猜对了则给出提示,“,Right,”,,否则提示,“,Wrong,”,,并告诉人是大还是小了?,4-3,选择语句,输入学号及成绩,并根据成绩定等级,main(),int score,snum;char grade;,scan

10、f(%d%d,if(snum0&snum=0&score=90)grade=A;,else if(score=80)grade=B;,else if(score=70)grade=C;,else if(score=60)grade=D;,else grade=E;,printf(number:%d is grade%cn,snum,grade);,else,printf(The No.is invalid!n);,4-3,选择语句,4.3.5,开关分支,switchcase,格式:,switch(,表达式,),case,值,1:,语句组,1,;,break;,case,值,2:,语句组,2,;

11、break;,.,case,值,n:,语句组,n;break;,default:,语句组,n+1;break;,功能:根据表达式的值与各个,case,判断值的比较情况决定执行哪个语句组。,4-3,选择语句,4.3.5,开关分支,switchcase,注意:,表达式的值可为任意类型,但一般为整型或字符型数据,判断值的类型与其要一致,case,判断值必须为常量或常量表达式,且判断值必须互不相同,default,缺省时,当所有,case,判断不符时,则直接自动退出,switch,当,break,语句不缺省时,,case,和,default,的顺序可以任意,break,语句缺省时,系统将继续执行下一

12、条,case,语句组,可以使用,case,重叠 共用一个语句组,4-3,选择语句,运输公司计算运费的原则是距离越远,每公里收费越低,s250,无折扣;,250=s500 2%,折扣;,500=s1000 5%,;,1000=s2000 8%,;,2000=s=3000 15%,p-,单价,w-,重量,d-,折扣,f,运费,p*W*S*(1-d),main(),int s;float p,w,d,f;scanf(%f%f%d,switch(s/250),case 0:d=0;break;,case 1:d=0.02;break;,case 2:case 3:d=0.05;break;,case

13、4:case 5:case 6:case 7:d=0.08;break;,case 8:case 9:case 10:case 11:d=0.1;break;,default:d=0.15;break;,f=p*w*s*(1-d);,printf(freight=%.2fn,f);,4-3,选择语句,统计输入的一行字符中的英文各元音字母的个数(不区分大小写),#include,main(),int na,ne,ni,no,nu;char c;,na=ne=ni=no=nu=,0,;,while(c=getchar()!=n),switch(c),case A:,case a:na+;,brea

14、k;,case E:case e:ne+;,break;,case I:case i:ni+;,break;,case O:case o:no+;,break;,case U:case u:nu+;,break;,printf(na=%d,ne=%d,ni=%d,no=%d,nu=%dn,na,ne,ni,no,nu);,4-3,选择语句,输入学号及成绩,并根据成绩定等级,main(),int score,snum;char grade;,scanf(%d%d,if(snum0&snum=0&score=100),switch(score/10),case 10:case 9:grade=A;

15、break;,case 8:grade=B;break;,case 7:grade=C;break;,case 6:grade=D;break;,default:grade=E;break;,printf(number:%d is grade%cn,snum,grade);,else,printf(The No.or Score is invalid!n);,4-4,循环语句,循环就是反复执行一段程序,被反复执行的程序段称为循环体。,循环必须能结束,通常需要循环变量来控制循环。,4.4.1,while,语句,当型,格式:,while(,表达式,),循环体语句;,说明:,进入循环前要作初始化工作

16、循环体中应有使条件向假方向变化的语句,表达式为常数(非,O,)是无限循环,需配合其他语句加以控制,循环体可以是空语句,4-4,循环语句,0,非,0,表达式?,循环体,4-4,循环语句,计算,1+2+3+,+100,的值,main(),int sum=0,i=1;,while(i=100),sum+=i+;/*sum+=i;i+;*/,printf(,“,sum of 1-100 is:%dn,”,sum);,求个位数为,6,且能被,3,整除的,5,位数共有多少个?,main(),int i=0;long m=10006;,while(m=99996l),if(m%3=0)/*if(m/3)*

17、3=m)*/,i+;,m+=10;,printf(,“,It is%d n,”,i);,4-4,循环语句,求出,200,800,之间所有既能被,7,又能被,11,整除的整数,main(),int i=0,,,m=200;,while(m=800),if(m%7=0&m%11=0),printf(,“,%5d,”,m);i+;,if(i%10=0)printf(,“,n,”,);,m+;,4.4.2,do while,语句,格式:,do,循环体,while,(表达式);,说明:,先执行一次循环体,再判表达式,在不知道循环次数,且又必须执行一次循环体时,4-4,循环语句,0,非,0,表达式?,循环

18、体,4-4,循环语句,计算,1+2+3+,+100,的值,main(),int sum=0,i=1;,do sum+=i;,i+;,while(i=100);,printf(,“,sum of 1-100 is:%dn,”,sum);,某数用,3,除余,2,,用,5,余,3,,用,7,余,2,),main(),int i=0;,do i+;,while(!(i%3=2,/*while(i%3!=2|i%5!=3|i%7!=2);*/,printf(,“,%dn,”,i);,4.4.3,for,语句,格式:,for(,表达式,1,;表达式,2,;表达式,3,),循环体;,执行顺序:,(,1,)执

19、行表达式,1,(,2,)判断表达式,2,,如果表达式,2,成立,则执行循环体,,如果表达式,2,不成立,则执行(,4,),(,3,)再执行表达式,3,,然后回到(,2,),(,4,),说明:,表达式均可省略,分号不能省略,for(;),表达式,1,和,3,可为逗号表达式,for(i=0,j=100;ij;i+,j-);,表达式,2,多为关系或逻辑表达式,for(;low=high),4-4,循环语句,0,非,0,表达式,1,表达式,2,?,循环体,表达式,3,4-4,循环语句,计算,1+2+3+,+100,的值,eg.main(),int sum=0,,,i;,for(i=1;i=100;i+

20、),sum+=i;,printf(,“,sum of 1-100 is:%dn,”,sum);,4-4,循环语句,4.4.4,循环的嵌套 多重循环,在,C,语言中,当一个循环结构的循环体内有另一个循环结构时,称为多重循环或循环嵌套,前面介绍的三种循环结构可以相互嵌套。当一个循环的循环体仅是另一个单一的循环结构时,外层循环不需要使用大括号包围它的循环体。,打印乘法口诀表,for(i=1;i=9;i+),for(j=1;j=9;j+),printf(,“,%5d,”,i*j);,printf(,“,n,”,);,1 2 3 4 5 6 7 8 9,2 4 6 8 10 12 14 16 18,3

21、6 9 12 15 18 21 24 27,4 8 12 16 20 24 28 32 36,5 10 15 20 25 30 35 40 45,6 12 18 24 30 36 42 48 54,7 14 21 28 35 42 49 56 63,8 16 24 32 40 48 56 64 72,9 18 27 36 45 54 63 72 81,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,1

22、 2 3 4 5 6 7 8 9,4 6 8 10 12 14 16 18,9 12 15 18 21 24 27,16 20 24 28 32 36,25 30 35 40 45,36 42 48 54,49 56 63,64 72,81,4-5,辅助控制语句,4.5.1,break,语句,功能:,中断循环过程,退出循环体,从包含它的,switch,退出,说明:,强行退出,仅退出一层循环或一层,switch,4.5.2,continue,语句,功能:使本次循环短路,继续执行下一次循环,4-5,辅助控制语句,跳过负元素,求为正元素之和,main(),int n,sum=0;,while(1),

23、scanf(,“,%d,”,if(n=0)break;,if(n0)continue;,sum+=n;,printf(sum=%dn,sum),4-5,辅助控制语句,4.5.3,转向语句,goto,格式:,goto,标号;,error:.,for(),if()goto error;,.,goto,破坏结构化,不用!,4.5.4,返回语句,return,格式:,return,值,;return(,值,),;,4-6,习题,简单应用 见书,(,谭,),例题,枚举法,求最小公倍数,找出,100999,之间的所有,水仙花数,,各位立方和,=,本身(,153,等),百钱买百鸡、百马运百货,求素数,编程序

24、找出,1000,之内的所有,完数,,一个数恰好等于其因子之和如,6=1+2+3,4-6,习题,递推法,公式类,1!+2!+3!+,+20,!,1+1/1,!,+1/2,!,+,+1/10,!,/4=1-1/3+1/5-1/7+1/9+,10,-6,求,a+aa+aaa+,+aa,aa,a=2,n=7 2+22+222+2222+22222+222222+2222222,其它,猴子吃桃,珠穆朗玛峰,皮球落地,最小公倍、最大公约,main(),int a,b,bei;,printf(Please enter two integers:);scanf(%d%d,if(ab)bei=a;chu=b;,

25、else bei=b;chu=a;,while(,(yu=bei%chu)!=0,),bei=chu;chu=yu;,printf(,“,n,最大公约数为:,%dn,chu);,水仙花数,main(),int i,j,k,m,n;,for(i=1;i=9;i+),for(j=0;j=9;j+),for(k=0;k=9;k+),m=i*100+j*10+k;,n=i*i*i+j*j*j+k*k*k;,if(m=n)printf(%5d,m);,main(),int m,i,j,k;,for(m=100;m=999;m+),i=m/100;,j=(m-i*100)/10,;,/*j=m%100/1

26、0;*/,k=m%10;,if(i*i*i+j*j*j+k*k*k=m),printf(%5d,m);,百钱买百鸡、百马拉百货,main(),int i,j,k;,for(i=1;i20;i+),for(j=1;j=33;j+),k=100-i-j;,if(5*i+3*j+k/3=100&k%3=0),printf(cock:%d,hen:%d,chick:%dn,i,j,k);,main(),int i,j,k;,for(i=1;i34;i+),for(j=1;j50;j+),for(k=2;k100;k+=2),if(i*3+j*2+k/2=100&i+j+k=100),printf(bi

27、g=%3dtmiddle=%3dtsmall=%3dn,i,j,k);,素数,判断一个数是否为素数,#include,main(),long m;int i,sqrtm;,printf(Please enter a numbers:);,scanf(%ld,sqrtm=sqrt(m);,for(i=2;isqrtm),printf(%ld is a prime.n,m);,else,printf(%ld is not a prime.n,m);,素数,求一个区间中所有的素数,#include,void main(void),long a,b,m;int i,sqrtm,count=0;,pri

28、ntf(Please enter two numbers:);,scanf(%ld%ld,printf(Primes from%d to%d is:n,a,b);,for(m=(a%2=0)?a+1:a;m=b;m+=2),sqrtm=sqrt(m);,for(i=2;isqrtm),if(count+%10=0)printf(n);,printf(%8ld,m);,完数,main(),int i,j,s,n=0;,printf(,“,1000,之内的完数,:,”,);,for(i=1;i=1000;i+),s=0;,for(j=1;j=1e-6),pi+=t;,n+=2;,s=-s;,t=(

29、double)s/n;/*t=s/n;*/,pi*=4;,printf(,“,PI=%fn,pi);,1!+2!+3!+20,!,main(),int i;,float s=0,t=1;,for(i=1;i=20;i+),t*=i;,s+=t;,printf(,“,Result:%fn,s);,1+1/2!+1/3!+1/10,!,main(),int i;long t=1;,float s=0;,for(i=1;i=10;i+),t*=i;,s+=1.0/t;,printf(,“,Result:%fn,s);,a+aa+aaa+aaaa,main(),int i,a,n;double t=0

30、s=0;,printf(,“,%d%d,”,for(i=1;i=1;i-),n=(n+1)*2;,printf(,“,The first day have%d.n,n);,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天又将剩下的桃子吃了一半,并多吃了一个,以后每天早上都这样,第十天想再吃时,只剩一个桃子,求第一天共摘多少桃子,珠穆朗玛峰,main(),double high=0.00009;int n=0;,while(high8848),n+;,high*=2;,printf(,“,对折,%d,次。,n,n);,假设有一张足够大的纸,厚度为,0.09,毫米,将纸不断

31、对折。编制程序,求将纸对折多少次后,可以达到珠穆朗玛峰的高度(,8848,米)。,皮球落地,main(),float high=100,s=0;,int i;,for(i=1;i=10;i+),s+=high;,high/=2;,s+=high;,s-=high;,printf(,“,第,10,次落地共经过,%f,米,第,10,次反弹,%f,米,n,”,s,high);,一球从,100,米高度自由落下,每次落地后反弹回原高度的一半,再落下。求它在第,10,次落地时,共经过多少米?第,10,次反弹多高?,作 业,编程设计一个简单的计数器程序,要求根据用户从键盘输入的表达式:操作数,1,运算符 操

32、作数,2,,计算表达式的值。指定运算为,+,,,-,,*,,/,。,例如输入:,2.5+3,输出为:,2.500000+3.000000=5.500000,例如输入:,5/2,输出为:,5.000000/2.000000=2.500000,书第,120,页,6.2,、,6.5,求,1-1/2+1/3-1/4+1/5,+1/99-1/100,编程输出以下图形,行数及每行个数由用户输入决定,*,*,*,*,作 业,编写猜数程序,程序中预先给定某个整数,从键盘反复输入整数进行猜数,每次输入数未猜中时,提示输入数过大或过小。猜中时显示猜的次数,最多允许猜,20,次。,编写程序,从键盘输入一个正整数,计算该数的各个位数字之和,并显示结果。例如输入,3257,,结果为,17,。,思考题:水手分椰子。五个水手在一个岛上发现了一堆椰子,现由第一个水手把椰子分为等量的,5,堆,剩下的,1,个给猴子,并自己藏起,1,堆,然后由第二个水手把剩下的,4,堆混合后重新分为等量的,5,堆,剩下的,1,个给猴子,并自己藏起一堆。以后第三、四个水手同样处理。最后第五个水手把剩下的椰子混合后分为等量的,5,堆,同样剩下,1,各给猴子。问原来这堆椰子至少有多少个。,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服