资源描述
分支结构
分支结构程序设计
教学目标
知识与技能:理解程序设计的分支结构基本思想
掌握分支结构语句特点
过程与方法:培养用算法分析问题的能力
能够使用分支结构绘制流程图和编写简单的程序解决具体问题
情感态度与价值观:
体会用结构化方法解决数学问题的便捷性
明确结构化在程序设计中的重要作用
激励尝试 使用多种方法解决问题,明确实践是检验真理的唯一标准
培养良好的编程习惯和态度,增强集体观念,在合作学习时,尊重别人的意见和劳动,培养学生相互协作的集体精神。
教学重点:
理解程序设计的分支结构基本思想
教学难点:
分支结构实现语句的格式和功能
编写简单的程序的过程
教学过程:
知识点
必须落实的要点
选用例题、练习
例题、练习处理
分支
结构
知识点
l 分支结构:根据给定条件是否成立而决定执行不同步骤的算法结构。
l 分支的条件设定
l 判断框及规范使用
l 基本模式:
Ø 双分支结构:根据给定条件是否成立,分别执行不同语句块的分支结构。
Ø 单分支结构:当给定条件成立时,执行指定的语句块,给定条件不成立时,直接退出的分支结构。
l 流程图规范画法:
Ø 流程线,走直角,自上而下。
Ø 双分支结构中,条件判断的是、非结果左右分列;单分支结构中,条件判断成立时,往下执行预定步骤,否则跳过预定步骤。
Ø 无论单、双分支都一定有判断框和汇聚点,判断框是选择的开始,汇聚点是选择的结束。
Ø 判断框有一个入口,两个出口,而分支结构只有一个入口,即判断框的入口,一个出口,即汇聚点的出口。
l 分支嵌套
【例1】举生活中需要作判断与选择的实例,例如上完体育课,如果是上午最后一节,下课后去食堂吃饭;否则,进教室上课。
【例2】打印出从键盘输入的两个不相等的数中较大的数。(双分支结构)
拓展练习题:
【练习1】求分段函数值
x2 x>3
y=
2x+1 x<=3
学生可能在绘制流程图时将“输出y的值”这一个输出框绘制两次,分别出现在不同的分支中,要注意强调分析题目的会聚点在何处,规范学生的画法。同样在程序代码中的语句“Print y”也无需出现在分支结构的语句块中。在分支结构的最初几节课中教师应注意规范学生的画法和写法。
【练习3】输入一个数到变量a,输出它的绝对值(不用绝对值函数)。
【例4】输入两个不相等的数a,b,比较大小,将大数放在a中,小数放在b中,然后输出a,b。(单分支结构)
【例5】某超市促销苹果,购买一斤苹果,为每斤3元,购买5斤以下每斤原价;超过5斤部分每斤打8折,输入购买的斤数,输出应付款额。(双分支结构)
【例6】分段函数问题。(分支嵌套)
1 (x>0)
y= 0 (x=0)
-1 (x<0)
【例7】购买地铁车票:乘1-4 站 3元/位;5-9站 4元/位;9站以上5元/位;输入人数person、站数n,输出应付款pay。
拓展练习题:
【练习1】某手机话费套餐规定:每月60元,可通话300分钟,超过300分钟的部分,另按每分钟0.4元计算。键盘输入当月通话时间(分钟),计算当月实际需付的手机费。如果输入的通话时间小于0,则应输出“输入数据有误”的提示信息。
【练习2】输入一元二次方程ax2+bx+c=0的系数a、b、c(a<>0),计算一元二次方程的根。
【例8】输入三个不相等的数a,b,c ,将最大数赋值给变量max并输出。
教师在讲述本例题时,可以适当复习前一部分的逻辑表达式,提示学生用逻辑表达式来作为分支的判断条件。
学生在思考本题时可能会出现一些错误:
1、 用算法1可能会出现在嵌套分支中的ELSE语句处累赘出现判断语句。
2、 用算法2的同学要注意他们在嵌套分支中的语句是否完整,可能会出现漏写,由于比较多的嵌套语句,还要注意语句书写的正确,首尾呼应。
3、 算法3学生不容易想到,但却是最精炼的一种算法,可以尝试提示不用嵌套结构完成本题。但往往学生也会出现条件重复判断的错误。
【例9】输入一个三位数的整数,将数字位置重新排列,组成一个尽可大的三位数。例如:输入213,重新排列可得到尽可能大的三位数是321。
本例题是对学生思路的一种拓展,需要结合前面学习的函数与运算符,如mod运算符 和 int函数。教师可以提示学生这些运算符和函数的功能。编程的时候注意IF和END IF语句的格式与规范,不要因为嵌套,出现遗漏语句的错误。始终强调用缩进与对齐可以规范书写格式,养成良好的编程习惯,避免错误。
【例1】从现实生活中引入需判断的实际问题,此例目的是引出双分支结构,出示双分支流程图。
流程图:
从例题中引出分支结构的概念:根据给定条件是否成立而决定执行A或B框中的算法步骤,与顺序结构不同,执行到分支结构时,在两条可能的路径中,根据条件是否成立而选择其中一条执行。任何一种高级语言都有相应的IF 语句实现分支结构。IF 语句的一般格式:
IF <条件> THEN
<条件成立执行的语句块>
ELSE
<条件不成立时执行的语句块>
END IF
教师在讲述分支结构语句时,一定要强调IF和END IF的对应,学生容易在书写时遗漏END IF。同时在本节课开始要强调分支结构中语句块采用缩进方法书写,养成良好的编程书写规范,可以减少错误。
【例2】引出单分支结构,并出示单分支流程图。
流程图:
从例题中引出单分支结构,根据给定条件,当条件不满足,不需要执行任何操作。单分支的语句格式:
IF <条件> THEN
<条件成立执行的语句块>
END IF
讨论单、双分支结构的区别和联系。这时要注意两种结构的规范画法。
【例2】理解条件与结果之间的对应关系
l 分析问题:
Ø 输入什么数据?(输入两个不相等的数,分别存放在变量a,b中)
Ø 处理什么问题?(比较a,b的大小,找出较大的一个数)
Ø 输出什么数据?(较大的那个数)
l 设计算法:
比较变量a与变量b的大小,如果a大于b,则输出变量a的值;否则,输出变量b的值。
l 流程图:
(学生可能不一定将判断条件写成a>b,相应的分支语句也要变化。)
Ø 改变条件的写法,或改变是否(T、F)的位置,理解判断条件的写法是很重要的,它与结果之间有联动性。
Ø 流程图:
(注意判断条件的写法,是根据分段函数的定义来确定的。)
Print y
l 流程图:
(学生可能会在流程图的画法上出现错误,巩固单分支结构的规范画法。)
【例4】为后续的三数比大小做准备。
l 分析问题:
Ø 输入什么数据?(从键盘输入两个不相等的数,分别存放在变量a、b中)
Ø 处理什么问题?(比较a、b的大小,把大的数放入变量a,小的数放入变量b)
Ø 输出什么数据?(变量a、b的值)
l 设计算法:
根据题意,判断变量a与变量b的大小,若变量a的值大于变量b的值,则直接输出变量a和变量b的值,否则交换变量a与变量b的值,然后输出。用单分支结构实现。
(学生可能会遗忘交换两个变量值的典型算法,教师可以在本例题中提醒学生。)
【例5】注意表达式写法。
l 分析问题:
Ø 输入什么数据?(从键盘输入购买的斤数weight)
Ø 处理什么问题?(按规定计算应付款额pay)
Ø 输出什么数据?(应付款额pay)
l 设计算法:
Ø 判别苹果的斤数是否超过5斤,如果小于等于5斤,则pay=weight*3;否则pay=3*5+(weight-5)*3*0.8。
Ø 容易疏忽的地方
分支的会聚点,输出应付款额。
l 流程图:
从本题开始,流程图中对分支条件的判断结果用T和F表示,其中的T就是原来的“是”,F就是“否”。教师可以让学生用这种方式来绘制流程图。
【例6】分段函数学生容易理解,条件显而易见,可以用数轴的办法,让学生观察数值区域,选择从大到小,或从小到大的判断方法,用分支嵌套来实现。
流程图:
【例7】分支嵌套学会划分条件。
l 分析问题:
Ø 输入什么数据?(输入乘车的人数person与乘车的站数n)
Ø 处理什么问题?(根据n范围,计算应付款pay)
Ø 输出什么数据?(应付款pay)
l 设计算法:
最重要的是判断条件的划分,切入点用哪个数值,选择一个数据点,进行条件的划分。
l 教学建议:
请同学讨论并思考在分支结构解决问题的关键是什么?教师在学生划分完条件后,让学生进行交流,并总结不管先判断哪个条件,后判哪个条件,都要看到条件不成立时隐含着的条件,判断过的无需反复进行判断,但也不要漏掉哪段范围,尤其是一个个的边界值。
l 总结:
条件的划分是关键的,条件之间应做到不重复、不遗漏。
l 流程图:
l 流程图:
【练习2】的选用比较接近高一学生的数学知识,既可以锻炼他们对分支结构的认识,又可以实践将数学问题用计算机解决。
l 流程图:略。
【例8】说明一题多解。
算法1
l 流程图:
算法2:抓大放小逐步判断。
l 部分代码:
IF a>=b THEN
IF a>=c THEN
max=a
ELSE
max=c
END IF
ELSE
IF b>=c THEN
max=b
ELSE
max=c
END IF
END IF
算法3:擂台法。
l 部分代码:
max=a
IF b>max THEN
max=b
END IF
IF c>max THEN
max=c
END IF
算法2、3由学生自行完成流程图,然后讨论三种算法,得出各自的价值取向。
【例9】是将函数的应用、数的大小比较相结合的一道题目,用以对前面拓展练习的进一步变化,锻炼学生思考解决题目、举一反三的能力。
流程图:略。
8
展开阅读全文