1、1.1.3算法的三种基本逻辑结构和框图表示(二),在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向 例如在上一节课中,我们作过一个求三角形的面积的流程,其实那个流程是有问题的。因为当输入了a,b,c三个数值后,我们不知道它们是否可以组成三角形。所以应该先作一个判断,如果是三角形,则继续去计算面积;如果不是三角形,则输出错误信息。,开始,存在这样的三角形,继续,不存在这样的三角形,是,否,结束,二、条件分支结构,(1)条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。它的一般形式是:,(2)此结构中包含一个判断框,根据给定的条件P是否成
2、立而选择执行A框或B框。无论P条件是否成立,只能执行A框或B框之一。,(3)一个判断结构可以有多个判断框。,(4)在许多算法中,需要对问题的条件作出逻辑判断,判断后依据条件是否成立而进行不同的处理方式,这就需要用条件结构来实现算法。,例1解一元二次方程ax2+bx+c=0.,S1 计算=b24ac;,S2 如果30,Y=0.330+0.5(P30),Y=0.3P,M=DY,输出M,结束,由此可见,在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向,这种先根据条件作出判断,再决定执行哪一种操作的结构就是条件分支结构,条件分支结构又称为条件结构。,在A或B两个框中可以有
3、一个是空的,即不执行任何操作,如图也是条件结构的一种.,例3. 求过两点P1(x1,y1),P2(x2,y2)的直线的斜率,设计该问题的算法并画出程序框图。,解:由于当x1=x2时,过两点P1、P2的直线的斜率不存在,只有当x1x2时,才可根据斜率公式求出,故可设计如下的算法和程序框图.,S1 输入x1,y1,x2,y2;S2 如果x1=x2,输出“ 斜率不存在”;,S3 输出k.,否则 ;,例4、设计求一个数x的绝对值的算法,并画出相应的程序框图。,解:算法如下:S1:输入x;S2:如果x0,则yx, 否则, y x;S3:输出y 。,结 束,Y,N,开始,输入x,x0?,输出y,y=x,y=x,例5. 下面的流程图表示了一个什么样的算法?,开始,输入a,b,c,ab且ac,bc,Y,N,Y,N,输出a,输出c,输出b,结束,例6. 超市购物:购物不足250元的,无折扣购物满250元(含,下同),不足500元的,打九五折购物满500元,不足1000元的,打九折购物满1000元,打八五折试画出此算法的流程图.,开始,输入x,结束,输出x,x250,x500,x99,则输出p,否则转S3.,算法,课堂小结,1选择结构的概念:先根据条件作出判断,再决定执行哪一种操作的结构称为选择结构2理解选择结构的逻辑以及框图的规范画法,选择结构主要用在判断、分类或分情况的问题解决中,