收藏 分销(赏)

语言程序设计电子课件与教案.ppt

上传人:精*** 文档编号:14411195 上传时间:2026-09-11 格式:PPT 页数:50 大小:764.04KB 下载积分:8 金币
下载 相关
语言程序设计电子课件与教案.ppt_第1页
第1页 / 共50页
语言程序设计电子课件与教案.ppt_第2页
第2页 / 共50页


点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,语言程序设计电子课件与教案,语言程序设计电子课件与教案语言程序设计电子课件与教案第4章 选择结构程序设计为什么要用选择结构?,实现选择结构的语句,if.else,switch,如何表示“判断条件”?,关系 运算符及表达式,逻辑 运算符及表达式,条件运算符及表达式,选择结构综合举例小 结习 题游 戏,第4章 选择结构程序设计,为什么要用选择结构?,实现选择结构的语句,if.else,switch,如何表示“判断条件”?,关系 运算符及表达式,逻辑 运算符及表达式,条件运算符及表达式,选择结构综合举例,小 结,习 题,游 戏,选择结构,如果,b,2,-4ac0,方程有实根,否则,方程没有实根,如果,明天不下雨 出去郊游,如果,考试不及格 参加补考,如果,遇到红灯 停车等待,公园门票,,如果,年龄大于70岁 0元,年龄小于7岁 10元,年龄大于50岁小于70岁 20元,其他 50元,条件,A事情,B事情,成立,不成立,if,else,条件成立,A事情,B事情,选择结构程序设计,#include,int main(),float a,b,c,disc,x1,x2,p,q;,printf(输入a b c:);,scanf(%lf%lf%lf,disc=b*b-4*a*c;,p=-b/(2.0*a);,q=sqrt(disc)/(2.0*a);,x1=p+q;x2=p-q;,printf(x1=%7.2f nx2=%7.2fn,x1,x2);,return 0;,A0307,例:求 ax,2,+bx+c=0 方程的根。,设,b,2,-4ac0,a,b,c 由键盘输入,计算根 x1 和 x2,输出x1,x2,计算 p 和 q,计算,disc=b,2,-4ac,输入a b c,4.1 选择结构程序设计,int main(),float a,b,c,disc,x1,x2,p,q;,scanf(%lf%lf%lf,disc=b*b-4*a*c;,if(disc=0),else printf(无实根n);,return 0;,A0401,例:求 ax,2,+bx+c=0 方程的根。,a,b,c 由键盘输入,计算 x1,x2,输出x1,x2,计算 p 和 q,disc,0,成立,不成立,输出,无实根,计算,disc=b,2,-4ac,输入a b c,p=-b/(2.0*a);,q=sqrt(disc)/(2.0*a);,x1=p+q;x2=p-q;,printf(%f,%f,x1,x2);,A0402 ,例4.3,输入任意三个数a、b、c,按从小到大的顺序排序输出。,分析:a b c,输入:5 2 3,输出:2 3 5,if(ab)a和b交换 (交换后 a=mina,b,if(ac)a和c交换 (交换后 a=mina,b,c,if(bc)b和c交换(交换后 b为次大值,c为最大值,选择结构程序设计,交换a和b,t=a;,a=b;,b=t;,A0402 ,例4.3,输入任意三个数a、b、c,按从小到大的顺序排序输出。,选择结构程序设计,交换a和b,t=a;,a=b;,b=t;,思路:,if(ab)a和b交换,if(ac)a和c交换,if(bc)b和c交换,int main(),int a,b,c,t;,scanf(%d,%d,%d,if(ab)t=a;a=b;b=t;,if(ac)t=a;a=c;c=t;,if(bc)t=b;b=c;c=t;,printf(%d,%d,%dn,a,b,c);,return 0;,4.2 if,语句,一般格式,:,if,(,表达式,),语句体,【说明】,1)执行过程:,当表达式的值为真(非0)时,执行语句体,2)表达式:常量、变量、函数调用、表达式,3)表达式必须加()括起来,4)语句体:一条 或 多条语句(多条语句用括起来,5)一个if语句总体上只算一条语句,ifelse,语句,ifelse 的执行过程,表达式的值,语句体1,语句体2,执行if后的语句,真,假,if(表达式)语句体1,else 语句体2,【说明】,(1)else必须与if配对使用,不能单独使用。,(2)if语句允许嵌套,但嵌套的层数不宜太多。,例如:if(ab)max=a;,else max=b;,程序1:,if(x=0),if(x0)y=1;,else y=0;,else y=-1;,if语句嵌套时,else子句与,1.在它上面、,2.距它最近、,3.尚未匹配,的if配对。,例5.3,程序2:,if(x0)y=1;,else y=0;,程序4:,y=0;,if(x=0),if(x0)y=1;,else y=-1;,x=0时,x=-5,ifelse,语句,选择结构程序设计,公园门票,,如果,年龄大于70岁 0元,年龄小于7岁 10元,年龄大于50岁小于70岁 20元,其他 50元,if,(age=70)ticket=0,if,(age=70)ticket=0,else if,(age7)ticket=10,else if,(50age 70)ticket=20,else,ticket=50,age70,ticket=0,F,T,age=70)ticket=0;,else if,(age=0),if(x0)y=1;,else y=0;,else y=-1;,例5.3,程序2:,if(x0)y=-1;,else if(x=0)y=0;,else y=1;,ifelse if,语句,小 结,输入星期中的某一天,显示对应的英文,main(),int i;,printf,(Input 1-7:);,scanf,(%d,if,(i=1),printf(Today is Monday!n);,else if(i=2),printf(Today is Tuesday!n);,else if(i=3),printf(Today is Wednesday!n);,else if(i=4),printf(Today is Thursday!n);,else if(i=5),printf(Today is Friday!n);,else if(i=6),printf(Today is Saturday!n);,else printf(Today is Sunday!n);,main(),int i;,printf(Input 1-7:);,scanf(%d,switch(i),case 1:printf(Today is Monday!);,case 2:printf(Today is Tuesday!);,case 3:printf(Today is Wednesday!);,case 4:printf(Today is Thursday!);,case 5:printf(Today is Friday!);,case 6:printf(Today is Saturday!);,default:printf(Today is Sunday!);,4.7 switch实现多分支结构,1,一般形式,switch,(,条件表达式,),case 常量表达式1,:,语句组1,;,case 常量表达式2,:,语句组2,;,.,case 常量表达式,:,语句组n,;,default,:,语句组n+1,;,2执行过程,(1)若 条件表达式=常量表达式i,则 执行语句组i 以及语句组i+1语句组n+1,(2)若 条件表达式!=任何常量表达式,则 执行default 的语句组n+1,没有分号,没有分号,main()int i;,printf(Input 1-7:);,scanf(%d,switch(i),case 1:printf(Today is Monday!);,case 2:printf(Today is Tuesday!);,case 3:printf(Today is Wednesday!);,case 4:printf(Today is Thursday!);,case 5:printf(Today is Friday!);,case 6:printf(Today is Saturday!);,default:printf(Today is Sunday!);,A0405输入星期中的某一天,显示对应的英文,break;,break;,break;,break;,break;,break;,运行结果,Input 1-7:4,Today is Thursday!,Today is Friday!,Today is Saturday!,Today is Sunday!,break:跳出switch结构,空格,switch语句,3说明,(1)条件表达式:,常量,表达式,int、char、枚举型,例:case 3+4:/*正确*/,case x+y:/*错误 设int x=3,y=4;*/,(2)多个case子句,可共用同一语句(组)。,例如:case 10:,case 9:printf(grade=An);break;,(3)default可以省略;,(4)每个case后面的语句有多条语句时可以不加括起来。,小 结,A0406例:从键盘上输入一个百分制成绩score,输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score 0-10,4.7 switch实现多分支结构,4.7 switch实现多分支结构,void main(),int score;printf(Input a score(0100):);scanf(%d,/*将成绩转化成10种情形*/switch(score/10),case 10:,case 9:printf(grade=An);break;,case 8:printf(grade=Bn);break;,case 7:printf(grade=Cn);break;,case 6:printf(grade=Dn);break;,case 5:case 4:case 3:case 2:case 1:case 0:,printf(grade=En);break;,default:printf(The score is out of range!n);,switch实现菜单结构,A0407:演示简单计算器程序,分析实现思路,说明:由键盘输入2个数字,让用户选择加、减、乘、除四个功能,选择一个功能后显示计算结果,分析:,(1)键盘键入2个操作数,(2)显示功能菜单,(3)接收用户的选择(整数),(4)在switch结构中选择分支执行计算,(5)显示计算结果,A0407:简单计算器程序,void main(),int a,b,fun,result;,printf(Input two numbers a and b like 1,2:);,scanf(%d,%d,printf(1 a+bn 2 a-bn 3 a*bn 4 a/bn);,printf(please choose 1-4:);scanf(%d,switch(fun),case 1:result=a+b;break;,case 2:result=a-b;break;,case 3:result=a*b;break;,case 4:result=a/b;break;,default:printf(The score is out of range!n);,printf(result=%dn,result);,printf(1 a+bn);,printf(2 a-bn);,printf(3 a*bn);,printf(4 a/bn);,小 结,4.3 关系运算符及表达式,关系运算符 含义 例子 结果 优先级,大于 4+69 T,小于 8=大于或等于 6=5 T,=小于或等于 81,);,4)优先级别:算术运算 关系运算赋值运算,例:int x=2,y=3,z;,z=3-1=x+14521,结果:z=1,结果:f=0,结果:z=2,result=1,关系运算符,用关系运算符将两个算术表达式或两个字符串表达式联起来的式子,其值为逻辑值。,例 1:关系运算符,#include,main(),int a,b;,a=10=56;,b=(10=5)7+8;,b=7!=73;,printf(%d,%dn,a,b);,输出结果:,0,1,1,1,4.4 逻辑运算及表达式,结果为真,表达式A和B的结果只要是非0数,都认为是真,假:0、0.0、0、NULL,1),&|!,逻辑与(同时)逻辑或(或者)逻辑非(否定),2),运算规则,A,&,B:A和B都真,结果真,否则假,A,|,B:A和B都假,结果假,否则真,!,A :A为真,结果假;A为假,结果真例:假定x=5,则 (x5)的值为假,6&3,逻辑运算符,3)运算结果为数值型,:0表示假,1表示真。,4)结合方向,:,从左到右(&、|);从右到左(!),例:f=!(34)结果为1,5)优先级别,:(高),!,&、|(低),优先级图示,2、运算符的优先级,1、逻辑运算符的优先级,!,&,|,高,低,(),!,+,-,(类),sizeof,*,/,%,+,-,自右至左,=,=,!=,&,|,赋值运算符,?:,逻辑表达式,用逻辑运算符连接关系表达式的式子称逻辑表达式。,例:用逻辑表达式表达下述数学式,(1)0 x10,(2)x80,(3)10,x,30,50,x,90,相应的逻辑表达,:,(1)0 x&x=10&x=50&x=90),用逻辑运算符连接关系表达式的式子称逻辑表达式。,例:用逻辑表达式表达下述数学式,(1)0 x10,(2)x80,(3)10,x,30,50,x,90,相应的逻辑表达,:,(1)0 x&x=10&x=50&x=90),用逻辑运算符连接关系表达式的式子称逻辑表达式。,例:用逻辑表达式表达下述数学式,(1)0 xb)&!c|b的值为(),A)0 B)2 C)1 D)5,3.有定义int a=23,b=25,c=12;执行c=c+b=a;后变量c的结果为:(),A)23 B)25 C)0 D)1,4、设有int a=10,b=3,c=9;以下表达式运算结果为1的是(),A)!(ab&bc,C)!ab|!bc D)a+b&(bc),关系,逻辑运算符练习,混合运算中,看 优先级!,课堂练习:if 语句应用实例,A0404,A0503:用三种if语句编写程序:键盘输入x,输出y (1)简单if语句、(2)ifelse语句、(3)ifelse if语句分别实现。,算法一:用if语句实现,main(),float x,y;,printf(x=?);,scanf(%f,if(x=10)y=3*x+11;,printf(%.2f,y);,算法二:用ifelse语句实现,main(),float x,y;,printf(x=?);,scanf(%f,if(x=1,if(x=1&x=10,printf(%.2f,y);,算法三:用ifelse if语句实现,main(),float x,y;,printf(x=?);,scanf(%f,if(x1)y=x;,else if(x=1&x=10 */,printf(%.2f,y);,1,一般格式,:表达式1?表达式2:表达式3,3个表达式的类型可以各不相同。,2,运算规则,表达式1 非0,运算结果等于表达式2的值;,为0,运算结果等于表达式3的值。,例1:if(ab)m=a;,else m=b;,例2:x?a:b,含义:x值非0,取a,否则取b,4.5 条件运算符,m=(ab?a:b);,例 从键盘上输入一个字符,如果是大写字母,则转换成小写字母输出;否则,直接输出。,main(),char ch;,printf(Input a character:);,scanf(%c,ch=(ch=A&ch0 x1=(-b+sqrt(disc)/(2a),x2=(-b-sqrt(disc)/(2a),disc=b,2,-4ac0)/*disc0*/,x1=(-b+sqrt(disc)/(2*a);/*两个不等实根*/x2=(-b-sqrt(disc)/(2*a);printf(x1=%f,x2=%fn,x1,x2);,else /*disc0 x1=(-b+sqrt(disc)/(2a),x2=(-b-sqrt(disc)/(2a),disc=b,2,-4ac0)/*disc0*/x1=(-b+sqrt(disc)/(2*a);/*两个不等实根*/x2=(-b-sqrt(disc)/(2*a);printf(x1=%f,x2=%fn,x1,x2);,else /*disc0*/p=-b/(2*a);/*两个共轭复根*/q=sqrt(fabs(disc)/(2*a);printf(x1=%f+%f in,p,q);printf(x2=%f-%f in,p,q);,选择结构程序设计举例,计算机存储实数时有微小误差,,所以判断disc是否为0的方法是:,|disc|10,-6,(一个非常小的数),(fabs(disc)1e-6),小结-if语句,条件,A事情,B事情,成立,不成立,if,(表达式)语句体1,else,语句体2,if,(表达式1)语句组1,else if,(表达式2)语句组2,else if,(表达式3)语句组3,else if,(表达式n)语句组n,else,语句组n+1,表达式1,语句1,F,T,表达式2,语句2,T,F,表达式3,语句3,T,语句n+1,F,小结 关系、逻辑表达式,关系运算符:=!=,逻辑运算符:&|!,将判断条件转换为关系、逻辑表达式,0 x,0 x&x,(ch=A&ch=a&ch=A&c1=a&c1=z),c2=c1-32;printf(%c%dn,c2,c2);,system(PAUSE);,多个语句要加,暂停系统的方法,汇报结束,谢谢大家,!,请各位批评指正,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服