算法初步第一章1.1算法与程序框图1.1.2程序框图与算法的基本逻辑结构第2课时条件结构课前自主预习1.进一步熟悉程序框图的画法.2.掌握条件结构的程序框图的画法.3.能用条件结构框图描述实际问题.1.条件结构的概念在一个算法中,经常会遇到一些条件的判断,算法的流程根据是否成立有不同的流向.处理这种过程的结构叫条件结构.条件2.条件结构的两种形式及特征判断正误.(正确的打“√”,错误的打“×”)(1)条件结构是一种重要的基本逻辑结构,任何算法都离不开它.()(2)条件结构中的条件需放在判断框中,判断框有两个出口,根据条件的成立与否,要走不同的出口.()(3)条件结构中的判断框有两个出口,所以执行条件结构时的结果不唯一.()[提示](1)×有些简单的算法并不需要条件结构.(2)√由条件结构的特征及形式判断(2)对.(3)×条件结构是根据条件,选择下一个执行步骤,但结果是唯一的.课堂互动探究题型一条件结构的概念【典例1】(1)下列算法中,含有条件结构的是()A.求两个数的积B.求点到直线的距离C.解一元二次方程D.已知梯形两底和高求面积(2)条件结构不同于顺序结构的特征是()A.处理框B.判断框C.输入、输出框D.起止框(3)给出以下四个问题:①输入一个数x,输出它的绝对值;②求面积为6的正方形的周长;③求a,b,c三个数中的最大值;④求函数f(x)=3x-1,x≤0,x2+1,x0的函数值.其中需要用条件结构来描述算法的有()A.1个B.2个C.3个D.4个[思路导引]根据条件结构的概念及特征判定.[解析](1)解一元二次方程时,当判别式Δ<0时,方程无解,当Δ≥0时,方程有解,由于分情况,故用到条件结构.(2)在条件结构中含有判断框,而顺序结构中没有.(3)①③④都要对条件作出判断,故需要用条件结构,②用顺序结构即可.[答案](1)C(2)B(3)C条件结构中含有判断框,且判断框内相应的判定条件是依据所给具体问题设定的.[针对训练1]下列问题的算法适宜用条件结构表示的是()A.求点P(2,5)到直线l:3x-2y+1=0的距离B.由直角三角形的两条直角边求斜边C.解不等式ax+b>0(其中a≠0)D.计算3个数的平均数[解析]条件结构是处理逻辑判断并根据判断进行不同处理的结构,只有C中需判断a的符号,其余选项中都不含逻辑判断,故选C.[答案]C题型二简单条件结构的设计【典例2】求过两点P1(x1,y1),P2(x2,y2)的直线的斜率,设计该问题的算法并画出程序框图.[思路导引]已知两点求直线斜率,若条件中已知x1≠x2,则只用顺序结构即可解决问题;若无限制条件,必须分类讨论,应用条件结构解决问题.[解]算法如下:第一步,输入x1,y1,x2,y2,第二步,如果x1=x2,输出“斜率不存在”;否则,k=y2-y1x2-x1.第三步,输出k.程序框图如下图所示.解决这类问题时,首先对问题设置的条件作出判断,设置好判断框内的条件,然后根据条件是否成立选择不同的流向.[针对训练2]画出计算函数y=|x-2|的函数值的程序框图.[解]算法如下:第一步,输入x.第二步,若x≥2,则y=x-2;否则y=2-x.第三步,输出y.程序框图如下:题型三条件结构的读图问题【典例3】(1)在如图所示的程序框图中,若a=5,则输出b=________.(1)题图(2)题图(2)判断正整数x的奇偶性的程序框图如图,则①处应为________(只要写出一种正确答案即可).[思路导引]根据条件选择下一个执行步骤.[解析](1)因为a=5不满足条件a5,所以b=52+1=26.(2)因为偶数除以2的余数为0,奇数除以2的余数为1,所以①处应填“r=1?”.[答案](1)26(2)r=1?(不唯一)引申探究1:本例(2)中除填r=1?外,还可以填写怎样的条件?[解]框图的功能是判断一个数是奇数还是偶数,关键看能否被2整除,当满足条件时为奇数,不满足条件时为偶数,因此也可填写r≠0?.引申探究2:本例(2)中的程序框图中“是”改为“否”,“否”改为“是”,则①处应填什么?[解]改动后当满足条件时,x为偶数,就说明余数为0,即①处可填r=0?或r≠1?.条件结构读图问题的两个注意点(1)理解所要实现的算法的结构特点和流程规则,分析其功能.(2)结合框图判断所要填入的内容或计算所要输出、输入的值.课堂归纳小结1.条件结构是程序框图的重要组成部分.其特点为:先判断后执行.2.在利用条件结构画程序框图时要注意两点:一是需要判断的条件是什么,二是条件判断后分别对应着执行什么.3.设计程序框图时,首先设计算法步骤,再转化为程序框图,待熟练后可以省略算法步骤直接画出程序框图.4.对于分类讨论、分段函数问题,通常设计成条件结构来解决.