内容发布更新时间 : 2024/12/25 14:51:16星期一 下面是文章的全部内容请认真阅读。
第2课时 条件结构
导入新课
思路1(情境导入)
我们以前听过这样一个故事,野兽与鸟发生了一场战争,蝙蝠来了,野兽们喊道:你有牙齿是我们一伙的,鸟们喊道:你有翅膀是我们一伙的,蝙蝠一时没了主意.过了一会儿蝙蝠有了一个好办法,如果野兽赢了,就加入野兽这一伙,否则加入另一伙,事实上蝙蝠用了分类讨论思想,在算法和程序框图中也经常用到这一思想方法,今天我们开始学习新的逻辑结构——条件结构. 思路2(直接导入)
前面我们学习了顺序结构,顺序结构像是一条没有分支的河流,奔流到海不复回,事实上多数河流是有分支的,今天我们开始学习有分支的逻辑结构——条件结构. 推进新课 新知探究 提出问题
(1)举例说明什么是分类讨论思想? (2)什么是条件结构?
(3)试用程序框图表示条件结构. (4)指出条件结构的两种形式的区别. 讨论结果:
(1)例如解不等式ax>8(a≠0),不等式两边需要同除a,需要明确知道a的符号,但条件没有给出,因此需要进行分类讨论,这就是分类讨论思想.
(2)在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构. (3)用程序框图表示条件结构如下.
条件结构:先根据条件作出判断,再决定执行哪一种操作的结构就称为条件结构(或分支结构),如图1所示.执行过程如下:条件成立,则执行A框;不成立,则执行B框.
1
图1 图2
注:无论条件是否成立,只能执行A、B之一,不可能两个框都执行.A、B两个框中,可以有一个是空的,即不执行任何操作,如图2.
(4)一种是在两个“分支”中均包含算法的步骤,符合条件就执行“步骤A”,否则执行“步骤B”;另一种是在一个“分支”中均包含算法的步骤A,而在另一个“分支”上不包含算法的任何步骤,符合条件就执行“步骤A”,否则执行这个条件结构后的步骤. 应用示例
例1 任意给定3个正实数,设计一个算法,判断以这3个正实数为三边边长的三角形是否存在,并画出这个算法的程序框图.
算法分析:判断以3个任意给定的正实数为三条边边长的三角形是否存在,只需验证这3个数中任意两个数的和是否大于第3个数.这个验证需要用到条件结构. 算法步骤如下:
第一步,输入3个正实数a,b,c.
第二步,判断a+b>c,b+c>a,c+a>b是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角形. 程序框图如右图:
点评:根据构成三角形的条件,判断是否满足任意两边之和大于第三边,如果满足则存在这
2
样的三角形,如果不满足则不存在这样的三角形.这种分类讨论思想是高中的重点,在画程序框图时,常常遇到需要讨论的问题,这时要用到条件结构.
例2 设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示. 算法分析:我们知道,若判别式Δ=b2-4ac>0,则原方程有两个不相等的实数根 x1=
?b???b??,x2=;
2a2ab; 2a若Δ=0,则原方程有两个相等的实数根x1=x2=?若Δ<0,则原方程没有实数根.也就是说,在求解方程之前,可以先判断判别式的符号,根据判断的结果执行不同的步骤,这个过程可以用条件结构实现.
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算x1和x2之前,先计算p=?b?,q=. 2a2a解决这一问题的算法步骤如下: 第一步,输入3个系数a,b,c. 第二步,计算Δ=b2-4ac.
第三步,判断Δ≥0是否成立.若是,则计算p=?结束算法.
第四步,判断Δ=0是否成立.若是,则输出x1=x2=p;否则,计算x1=p+q,x2=p-q,并输出x1,x2.
程序框图如下:
b?,q=;否则,输出“方程没有实数根”,2a2a 3