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