【教学课件】第四章程序的控制结构.ppt
《【教学课件】第四章程序的控制结构.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章程序的控制结构.ppt(109页珍藏版)》请在三一办公上搜索。
1、第四章 程序的控制结构,4.1 顺序结构4.2 选择结构4.3 循环结构4.4 结构化程序设计,算法计算方法 解决问题的方法和步骤,例:用辗转相除法求两个正整数的最大公因子1输入m和n2若mn,则交换m和n3m除以n,余数为r4若r=0,则n为最大公因子,输出n,否则执行55m=n,n=r,转3,算法特征:有穷性、确定性、有效性、输入、输出,算法的描述方法:自然语言流程图NS图伪代码,用辗转相除法求两个正整数的最大公因子input m,n;if mn m=n;loop:r=m mod n;if r=0 output n;m=n;n=r;goto loop;,描述算法的三种基本结构:顺序结构 选
2、择结构 循环结构,A1,A2,A3,A1,A2,A3,BC,BC,B1,B1,B2,B2,CC,CC,C1,C1,流程图,NS图,A1,A2,A3,BC,B1,B2,CC,C1,流程图,三种基本结构的特点 只有一个入口 只有一个出口 每一部分都有机会被执行 不存在死循环,4.1 顺序结构,从键盘任意输入一个三位数,计算并输出它的个位、十位、百位数字,int main()int number;int bit0,bit1,bit2;scanf(%d,开始,输入number,计算个位数bit0,输出各位数字,结束,计算十位数bit1,计算百位数bit2,number%10;number/10%10;
3、number/100;,4.2 选择结构,如果外面下雨了,我就带雨伞,红灯停,绿灯行,如果a除以b余数为0,那么b是a的因子,否则b不是a的因子,公园门票,1.2米以下儿童免票,60岁以上老人免票,其余人全票50元。,下雨了?,带雨伞,如果外面下雨了,我就带雨伞,否,是,红灯,停止前进,继续前进,否,是,红灯停,绿灯行,x=a除以b的余数,x等于0?,b是a的因子,b不是a的因子,判断b是否是a的因子,否,是,1.2米以下儿童或60岁以上老人,票价0元,票价50元,否,是,1.2米以下儿童,票价0元,票价50元,否,是,60岁老人,票价0元,否,是,1.2米以下儿童,票价0元,票价50元,否,
4、是,60岁老人,票价0元,否,是,x是偶数a是介于20到30之间的整数c是数字字符c是字母字符year是闰年(1)能被4整除,但不能被100整除(2)能被400整除t是3位整数,一、逻辑表达式示例,int x,a,year,t;char c;(1)x%2=0或x/2*2=x(2)x20&x=0&c=a&c=A&c99&t1000,已知A、B、C、D、E、F共6人参加比赛A、B至少一人获奖A、B、C至少二人获奖A、E中最多一人获奖?谁获奖了?,有人猜测6人依次获得第一名到第六名。这个猜测只猜对了三人的名次?这6个人的名次?,注意(短路计算):逻辑表达式中并不是所有的逻辑运算符都被执行,a&b&c
5、,a|b|c,讨论:i+|j+|k+i+&j+&k+,二、if语句,流程图 N-S图,if(ab)printf(Its right);,if(表达式)语句,if(a+bc,if(表达式)语句1 else 语句2,if(ab)max=a;else max=b;,if(ab)printf(a比b大);else printf(a比b小);,if(a+bc,编程示例,int main()char ch;ch=getchar();if(ch=A,int main()char ch;ch=getchar();if(ch=A,编程示例,if(ab)t=a;a=b;b=t;,讨论:,if(ab)t=a;a=b
6、;b=t;,if(bc)max=b;min=c;else max=c;min=b;,if(a=0)printf(a equal to zero);else printf(a is not equal to zero);,嵌套的if语句,int main()int x,y;scanf(%d,if(x0)y=1;else if(x=0)y=0;else y=1;,if(x=0)if(x0)y=1;else y=0;else y=-1;,y=-1;if(x=0)if(x0)y=1;else y=0;,y=0;if(x!=0)if(x0)y=1;else y=-1;,if(num500)cost=0.
7、15;else if(num300)cost=0.10;else if(num100)cost=0.075;else if(num50)cost=0.05;else cost=0;,num500,cost=0.15,Y,N,num300,num100,cost=0.05,cost=0.075,cost=0.1,Y,Y,N,cost=0,num50,N,N,Y,if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3.else if(表达式n)语句n else 语句n+1,e1,s1,Y,N,e2,e3,sn+1,s3,s2,Y,Y,N,if(e1)if(e2)
8、s1 else s2else s3,if(e1)if(e2)s1 else s2else if(e3)s3 else s4,if(e1)if(e2)s1 else if(e3)s2 else s3,没有if 就没有elseelse总是与最近的尚未配对的if结合,找a、b、c的最大值,if(ab)if(ac)max=a;else max=c;else if(bc)max=b;else max=c;,max=a;if(maxb)max=b;if(maxc)max=c;,if(ab,1格式:表达式1?表达式2:表达式32语义:if(表达式1)表达式2 else 表达式3,条件表达式,max=(ab)
9、?a:b;,x=表达式1?表达式2:表达式3,main()char ch;scanf(%c,3优先级:高于赋值运算 低于关系和算术运算4结合方向:从右向左 ab?a:cd?c:d;5结果类型:与表达式2或表达式3相同,三、switch语句,switch(ch)case A:printf(Good!n);break;case B:printf(Good!n);break;case C:printf(Passn);break;case D:printf(Fail!n);break;,ch,Good,Pass,Fail,ch=A,ch=B,ch=D,case,ch=C,switch(ch)csae
10、A:case B:printf(Good!n);break;case C:printf(Passn);break;case D:printf(Fail!n);break;,ch,Good,Pass,Fail,ch=A,ch=B,ch=D,case,ch=C,格式:switch(表达式)case 常量表达式1:语句串1 case 常量表达式2:语句串2 case 常量表达式n:语句串n default:语句串n+1,表达式只能是整型、字符型、枚举类型各常量表达式中不能有相同的值执行完某个分支后,要用break语句终止switch语句的执行不同的常量表达式可以执行相同的语句串,switch(ch)
11、csae A:case B:printf(Good!n);case C:printf(Pass!n);case D:printf(Fail!n);,switch(ch)csae A|B:printf(Good!n);case C:printf(Pass!n);case D:printf(Fail!n);,switch(ch)csae A=ch=B:printf(Good!n);case C:printf(Pass!n);case D:printf(Fail!n);,switch(ch)csae A:case B:printf(Good!n);break;case C:printf(Passn)
12、;break;case D:printf(Fail!n);break;,switch(ch)csae A:case B:printf(Good!n);break;case C:printf(Passn);break;case D:printf(Fail!n);break;,if(ch=A)goto LB;if(ch=B)goto LB;if(ch=C)goto LC;if(ch=D)goto LD;LB:printf(Good!n);LC:printf(Passn);LD:printf(Fail!n);L:,goto L;goto L;goto L;,break语句用来在执行完一个case分支
13、后,终止switch语句的执行。如果某个case分支后没有break语句,程序将不再做比较而执行下一个分支,直到break语句或该复合语句结束。当没有case子句匹配时,就执行default子句。default子句是任选的(可有可无)。若无default子句,此时switch语句就什么动作也没有做。switch语句的功能可以用if-else语句来实现,但某些情况下,使用switch语句更简炼。,int main()int data1,data2;char op;printf(Type number operator numbern);scanf(%d%c%d,求方程的根,int main()f
14、loat a,b,c,p,q,disc;printf(Please enter a,b,c:);scanf(%f,%f,%f,if(fabs(a)=1e-6)printf(has one roots:%6.2fn,-c/b);,else disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(fabs(disc)/(2*a);if(fabs(disc)1e-6)printf(has two unequal real roots:%6.2f and%6.2fn,p+q,p-q);else printf(has complex roots:n);printf(%6.2f+%6.2f in
15、,p,q);printf(%6.2f-%6.2f in,p,q);,公里 折扣=250=500=1000=2000=3000 15%,运费计算,每公里每吨货物的 基本运费为p货物重量为w距离为s 折扣为d总运费为:f=p*w*s*(1-d),输入p、w、s,输出f,s/250,d=0,d=2,d=5,d=8,d=10,d=15,f=p*w*s*(1-d/100.0);,公里 折扣=250=500=1000=2000=3000 15%,0,1,4,2,3,5,6,7,8,9,10,11,=12,int main()int c,s;float p,w,d,f;printf(Input p,w,s:
16、);scanf(%f,%f,%d,switch(c)case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;,f=p*w*s*(1-d/100.0);printf(freight=%15.4fn,f);return 0;,int main()char choice;printf(n-欢迎点菜-n);/显示菜单 printf(1.西红柿炒鸡蛋n
17、);printf(2.宫爆鸡丁n);printf(3.鱼香肉丝n);printf(0.退出n);printf(请选择(0-3):);choice=getchar();/选择 switch(choice)case 1:printf(西红柿炒鸡蛋1份,请稍后);break;case 2:printf(宫爆鸡丁1份,请稍后);break;case 3:printf(鱼香肉丝1份,请稍后);break;printf(n欢迎光临!n);,4.3循环结构程序设计,往前走,直到到达目标为止,没到?,往前走,Y,N,只要.,计算1+2+3+.+100,sum=1+2;/sum存放和值sum=sum+3;sum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 章程 控制 结构

链接地址:https://www.31ppt.com/p-5665204.html