C语言选择结构程序教学设计课题Word格式.docx
《C语言选择结构程序教学设计课题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言选择结构程序教学设计课题Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
关系运算符:
用来对两个数值进行比较的比较运算符
C语言提供6种关系运算符:
①<(小于)②<=(小于或等于)
③>(大于)④>=(大于或等于)
⑤==(等于)⑥!
=(不等于)
关系表达式
用关系运算符将两个数值或数值表达式连接起来的式子
1——真
0——假
<
表达式>
<
关系运算符>
关系表达式的值是一个逻辑值
例:
a+b>
c+d(a=3)<
(b=5)
‘a’!
=‘A’(a>
b)==(c<
d)
3种逻辑运算符:
&
(逻辑与)||(逻辑或)!
(逻辑非)
和||是双目(元)运算符
!
是一目(元)运算符
逻辑表达式
逻辑运算符>
判断年龄在13至17岁之内?
age>
=13&
age<
=17
判断年龄小于12或大于65?
12||age>
65
逻辑运算符的优先次序
→&
→||(!
为三者中最高)
与其他运算符的优先次序
!
(高)
算术运算符
关系运算符
&
和||
赋值运算符(低)
判别某一年是否闰年,用逻辑表达式表示
闰年的条件是符合下面二者之一:
①能被4整除,但不能被100整除,如2008
②能被400整除,如2000
(year%4==0&
year100!
=0)||year%400==0
如果表达式值为1,则闰年;
否则为非闰年
求方程的根。
由键盘输入a,b,c。
假设a,b,c的值任意,并不保证。
需要在程序中进行判别,如果,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息。
左边为顺序结构的程序流程图,右边为选择结构程序流程图。
比较它们的之间区别。
#include<
stdio.h>
math.h>
intmain()
{
doublea,b,c,disc,x1,x2,p,q;
scanf("
%lf%lf%lf"
&
a,&
b,&
c);
disc=b*b-4*a*c;
if(disc<
0)
printf(“hasnotrealroots\n”);
else
{p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“realroots:
\nx1=%7.2f\nx2=%7.2f\n”,x1,x2);
}
return0;
}
当程序输入6,3,1时,它的运行结果是什么?
当程序输入2,4,1时,它的运行结果是什么?
输入两个实数,按代数值由小到大的顺序输出这两个数。
解题思路:
只需要做一次比较,然后进行一次交换即可
用if语句实现条件判断
关键是怎样实现两个变量值的互换
intmain()
{floata,b,t;
%f,%f"
b);
if(a>
b)
{t=a;
a=b;
b=t;
printf("
%5.2f,%5.2f\n"
a,b);
输入3个数a,b,c,要求按由小到大的顺序输出。
可以先用伪代码写出算法:
ifa>
b,a和b对换(a是a、b中的小者)
c,a和c对换(a是三者中最小者)
ifb>
c,b和c对换(b是三者中次小者)
顺序输出a,b,c
{floata,b,c,t;
%f,%f,%f"
b)如果a>
b,将a和b对换
}a是a、b中的小者
c)如果a>
c,将a和b对换
a=c;
c=t;
}a是a、c中的小者
if(b>
c)如果b>
{t=b;
b=c;
}b是b、c中的小者
%5.2f,%5.2f,%5.2f\n"
a,b,c);
运行程序并输出结果。
if语句的一般形式:
if(表达式)语句1
[else语句2]
最常用的3种if语句形式:
1.if(表达式)语句1(没有else子句)
2.if(表达式)语句1
else语句2(有else子句)
3.if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
┆
elseif(表达式m)语句m
else语句m+1
(在else部分又嵌套了多层的if语句)
选择结构程序设计中条件语句的使用需要使用关系运算和逻辑运算。
使用简单的例子便于学生理解。
在教学过程中由简入难
选择结构和条件判断语句是本章的重难点,对于初学者有一定的难度,这一部分内容采用大量的例题以便学生理解和掌握选择语句的用法。
通过例题的实际运用让学生了解条件判断的作用选择结构的使用。
通过例题的学习引入if语句的格式和使用方法。
让学生自己找出规律加深记忆。
4、条件运算符和条件表达式
例:
某运输公司吨公里基本运费为p,根据距离s的远近计费标准如下:
s<
250km没有折扣
250s<
5002%折扣
500s<
10005%折扣
1000s<
20008%折扣
2000s<
300010%折扣
3000s15%折扣
根据货物重量w和运距s,求运费f。
main()
{floatp,s,w,d,f;
scanf(“%f%f%f”,&
p,&
s,&
w);
if(s>
=3000)d=0.15;
elseif(s>
=2000)d=0.10;
=1000)d=0.08;
=500)d=0.05;
=250)d=0.02;
elsed=0.0;
f=p*w*s*(1-d);
printf(“f=%15.2f”,f);
选择结构的嵌套:
在if语句中又包含一个或多个if语句称为if语句的嵌套
一般形式:
else总是与它上面最近的未配对的if配对
if()
if()语句1
else语句2
else
if()语句3
else语句4内嵌if
有一函数:
编一程序,输入一个x值,要求输出相应的y值。
方法1
scanf("
%d"
x);
if(x<
0)y=-1;
if(x==0)y=0;
if(x>
0)y=1;
printf("
x=%d,y=%d\n"
x,y);
(1)先后用3个独立的if语句处理:
输入x
若x<
0,则y=-1
若x=0,则y=0
若x>
0,则y=1
输出x和y
if(x>
=0)
if(x>
0)y=1;
elsey=0;
elsey=-1;
方法2
0)y=-1;
else
if(x==0)y=0;
elsey=1;
(2)用一个嵌套的if语句处理:
若x<
0,则y=-1
否则
若x=0,则y=0
否则y=1
有一种if语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值
如:
if(a>
max=(a>
b)?
a:
b;
max=a;
max=b;
1、条件表达式的一般形式
表达式1>
?
表达式2>
:
表达式3>
2、运算规则
先计算表达式1,若为非0,则以表达式2的值作为条件表达式的值;
否则,以表达式3的值为条件表达式的值。
3、优先级
算术关系逻辑运算(!
除外)条件运算赋值运算
高低
(1)输出x和y当中的最大值
z=x>
y?
x:
y;
printf(“max=%d”,z);
或printf(“max=%d”,x>
y?
x:
y);
或x>
printf(“%d”,x):
printf(“%d”,y);
(2)a>
b?
a:
b+1等价于a>
(b+1)而不是(a>
b)+1
(3)a>
c>
d?
c:
d等价于a>
(c>
(4)x>
1:
5.6表达式的值的类型取高的
运用例题巩固知识,实现多重选择语句的使用。
引用例题使用多种方法说明if的嵌套使用,便于理解和记忆。
条件运算符和条件表达式相对而言比较简单,在教学过程中列举表达式的一般形式并举例说明。
5、用switch语句实现多分支选择结构
输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;
如果不是,不转换。
然后输出最后得到的字符。
{
charch;
%c"
ch);
ch=(ch>
='
A'
ch<
Z‘)?
(ch+32):
ch;
%c\n"
ch);
switch语句的作用是根据表达式的值,使流程跳转到不同的语句
switch语句的一般形式:
switch(表达式)
{case常量1:
语句1
case常量2:
语句2
┇┇┇
case常量n:
语句n
default:
语句n+1
switch语句的执行过程:
当switch后的表达式的值与某一个case后的常量表达式的值相等时,执行其后的语句;
若无匹配,则执行default后的语句
break语句
使流程跳出switch结构,
终止switch语句的执行。
要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下。
成绩的等级由键盘输入。
{chargrade;
grade);
Yourscore:
"
);
switch(grade)
{case'
:
85~100\n"
break;
case'
B'
70~84\n"
C'
60~69\n"
D'
60\n"
default:
enterdataerror!
\n"
在程序运行中,若输入F,则程序输出的值是什么?
若把break语句删除会出现什么结果?
若把A和B后面的语句都删除会有什么结果?
Switch语句作为本章的重点需要学生掌握并使用,同样采用举例的方式将强理解和记忆。
三、教学特色(总结教学特色,教学效果)
1.教学特色
本次讲课主要采用了演示操作,任务驱动的教学方法,例如我提倡的是师生合作探索的方法,而不是教师自己独自讲解,这样能更好地进行交流和沟通,让学生自己发现问题、解决问题,更能激发学生的求知欲,帮助学生理解选择意义,和运行结果。
对课堂的设计,贯彻以教师为主导,以学生为主体,以问题为基础,以能力、方法为主线,有计划培养学生的自学能力、观察和实践能力、思维能力、应用知识解决实际问题的能力和创造能力为指导思想。
并且能从各种实际出发,充分利用各种教学手段来激发学生的学习兴趣,体现了对学生创新意识的培养。
2.教学效果
本次讲课效果总体还是不错的,在整个教学过程中,以引导学生发现问题、分析问题、解决问题,注重培养学生的独立思考的能力。
在设计该课时是用了循序渐进的方法,先让每个学生都能在老师的引导下,独立解决一个简单的问题,让学生对选择程序设计有一个直观的理解;
然后再传授if语句和switch的结构和执行过程,让学生真正懂得if语句和switch语句的实际内涵。