1、1.2.2 条件语句整体设计教学分析通过上一节的学习,学生学会了输入语句、输出语句和赋值语句的基本用法,本节介绍条件语句的用法. 程序中的条件语句与程序框图中的条件结构存在一一对应关系,这种对应关系对于学生理解条件语句的结构,进一步理解算法中的条件结构都是很有帮助的.我们可以给出条件语句的一般格式,让学生自己画出相应的程序框图,也可以给出程序框图,让学生写出算法语句.三维目标1理解学习基本算法语句的意义.2学会条件语句的基本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.重点难点教学重点:条件语句的基本用法.教学难点:算法语句的写法. 课时安排1 课时教学过程导入新课思路
2、 1(情境导入)一位老农平整了一块良田,种瓜好呢,还是种豆好呢,他面临着一个选择.如果他选择种瓜,他会得瓜,如果他选择种豆,他会得豆.人的一生面临许多选择,我们要做出正确的选择.前面我们学习了条件结构,今天我们学习条件语句.思路 2(直接导入)前面我们学习了程序框图的画法,为了让计算机能够理解算法步骤、程序框图,上一节我们学习了输入语句、输出语句、赋值语句,今天我们开始学习条件语句.推进新课新知探究提出问题(1)回忆程序框图中的两种条件结构.(2)指出条件语句的格式及功能.(3)指出两种条件语句的相同点与不同点.(4)揭示程序中的条件语句与程序框图中的条件结构存在一一对应关系.讨论结果:(1)
3、一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.用程序框图表示条件结构如下图:(2)条件语句1“IFTHENELSE”语句格式:IF 条件 THEN语句体 1ELSE语句体 2END IF功能:在“IFTHENELSE”语句中, “条件”表示判断的条件, “语句体 1”表示满足条件时执行的操作内容;“语句体 2”表示不满足条件时执行的操作内容;END IF 表示条件语句的结束.计算机在执行“IFTHENELSE”语句时,首先对 IF 后的条件进行判断,如果符合条件,则执行 THEN 后面的“语句 1”;若不符合条件,则执行 ELSE
4、 后面的“语句2”.2“IFTHEN”语句格式:IF 条件 THEN语句体END IF功能:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;END IF 表示条件语句的结束.计算机在执行“IFTHEN”语句时,首先对 IF 后的条件进行判断,如果符合条件就执行 THEN 后边的语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.(3)相同点:首先对 IF 后的条件进行判断,如果符合条件就执行 THEN 后边的语句.不同点:对于“IFTHENELSE”语句,若不符合条件,则执行 ELSE 后面的“语句体 2”.对于“IFTHEN”语句,若
5、不符合条件则直接结束该条件语句,转而执行其他后面的语句.(4)程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图:应用示例思路 1例 1 编写一个程序,求实数 x 的绝对值.算法分析:首先,我们来设计求实数 x 的绝对值的算法,因为实数 x 的绝对值为|x|=),0(x所以算法步骤可以写成:第一步,输入一个实数 x.第二步,判断 x 的符号.若 x0,则输出 x;否则,输出-x.显然, “第二步”可以用条件结构来实现.程序框图如下图:程序:INPUT xIF x=0 THENPRINT xELSEPRINT -xEND IFEND点评:通过本题我们看到算法步骤可以转化为程序框图,程序
6、框图可以转化为算法语句.本题揭示了它们之间的内在联系,只要理解了程序框图与算法语句的对应关系,把程序框图转化为算法语句就很容易了.变式训练阅读下面的程序,你能得出什么结论?INPUT xIF x0 THENx=-xEND IFPRINT xEND解:由程序得出,该程序是输出 x 的绝对值.例 2 把前面求解一元二次方程 ax2+bx+c=0 的程序框图转化为程序.解:由程序框图可以发现,其中包含着两个条件结构,而且内层的条件结构是外层的条件结构的一个分支,所以,可以用“IFTHENELSEEND IF”来完成转化.程序:INPUT “a,b,c=”;a,b,cd=b2-4*a*cIF d=0
7、THENp=-b/(2*a)q=SQR(d)/(2*a)IF d=0 THENPRINT “x1=x2=”;pELSEPRINT “x1,x2=”;p+q,p-qEND IFELSEPRINT“No real root”END IFEND例 3 编写程序,使任意输入的 3 个整数按从大到小的顺序输出.算法分析:用 a,b,c 表示输入的 3 个整数.为了节约变量,把它们重新排列后,仍用a,b,c 表示,并使 abc.具体操作步骤如下:第一步,输入 3 个整数 a,b,c.第二步,将 a 与 b 比较,并把小者赋给 b,大者赋给 a.第三步,将 a 与 c 比较,并把小者赋给 c,大者赋给 a(
8、此时 a 已是三者中最大的).第四步,将 b 与 c 比较,并把小者赋给 c,大者赋给 b(此时 a,b,c 已按从大到小的顺序排列好).第五步,按顺序输出 a,b,c.如下图所示,上述操作步骤可以用程序框图更直观地表达出来.根据程序框图,写出相应的计算机程序.INPUT “a,b,c=”;a,b,cIF ba THENt=aa=bb=tEND IFIF ca THENt=aa=cc=tEND IFIF cb THENt=bb=cc=tEND IFPRINT a,b,cEND思路 2例 1 编写程序,输出两个不相等的实数 a、b 的最大值.分析:要输出两个不相等的实数 a、b 的最大值,从而想
9、到对 a,b 的大小关系进行判断,a,b 的大小关系有两种情况:(1)ab;(2)ba.这也就用到了我们经常提及的分类讨论的方式,找出两个数的最大值.解:算法一:第一步,输入 a, b 的数值.第二步,判断 a,b 的大小关系,若 ab,则输出 a 的值,否则,输出 b 的值.(程序框图如下图)程序如下:(“IFTHENELSE”语句)INPUT “a,b” ;a,bIF ab THENPRINT aELSEPRINT bEND IFEND算法二:第一步,输入 a,b 的数值.第二步,判断 a,b 的大小关系,若 ba,则将 b 的值赋予 a;否则,直接执行第三步.第三步,输出 a 的值,结束
10、.(程序框图如下图)程序如下:(“IFTHEN”语句)INPUT “a,b” ;a,bIF ba THENa=bEND IFPRINT aEND点评:设计一个“好”的算法需要在大量的算法设计中积累经验.我们也可以先根据自己的思路设计算法,再与 “成形”的、高效的、优秀的算法比较,改进思路,改进算法,以避免重复计算等问题,提高算法设计的水平.(2)我们在平常的训练中尽可能地少引用变量,过多的变量不仅会使得算法和程序变得复杂,而且不利于计算机的执行.为此,我们在练习中要尽可能少引入变量并且要积极思考才能少引入变量.例 2 高等数学中经常用到符号函数,符号函数的定义为 y= 试编写程序输入 x,01
11、,x的值,输出 y 的值.解:程序一:(嵌套结构)程序框图:(下图)程序如下:INPUT xIF x0 THENy=1ELSEIF x=0 THENy=0ELSEy=1END IFEND IFPRINT yEND程序二:(叠加结构)程序框图(右图):程序如下:INPUT xIF x0 THENy=1END IFIF x=0 THENy=0END IFIF x=0 and x=4 THENy=2*xELSE IF x=8 THENy=8ELSE y=2*(12-x)END IFEND IFPRINT yEND课堂小结(1)条件语句的用法.(2)利用条件语句编写算法语句.作业习题 1.2 B 组 1.设计感想条件语句是算法语句的基础和核心,本节设计以条件结构和条件语句的对应关系为基础,引导学生将程序框图转化为算法语句.本节的难点是正确区分叠加结构和镶嵌结构,并会应用它们编写算法语句.本节选用大量精彩题目让学生反复训练,使学生熟练掌握程序框图与算法语句的关系,达到解决本节难点的目的.