《高中数学《算法与程序框图》公开课PPT课件.ppt》由会员分享,可在线阅读,更多相关《高中数学《算法与程序框图》公开课PPT课件.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.11.1算法与程序框图算法与程序框图1.1.11.1.1算法的概念算法的概念1.1.21.1.2程序框图与算法的基本逻辑结构(程序框图与算法的基本逻辑结构(1 1)1.1.21.1.2程序框图与算法的基本逻辑结构(程序框图与算法的基本逻辑结构(2 2)1.1.21.1.2程序框图与算法的基本逻辑结构(程序框图与算法的基本逻辑结构(3 3)1.1 1.1 算法与程序框图算法与程序框图1.1.1 1.1.1 算法的概念算法的概念1 1、把冰箱门打开、把冰箱门打开脑筋急转弯:把一头大象放进冰箱需要几个步骤?脑筋急转弯:把一头大象放进冰箱需要几个步骤?2 2、把大象装进去、把大象装进去 3 3、把
2、冰箱门关上、把冰箱门关上 问题提出问题提出 我们知道,计算机可以帮我们知道,计算机可以帮我们解决很多问题,其实它是我们解决很多问题,其实它是按照一定的指令来工作的,其按照一定的指令来工作的,其中最基础的数学理论就是中最基础的数学理论就是算法算法,本节课我们就来学习本节课我们就来学习: :算法的概算法的概念念.x x2y=2y=1 12x2xy=1y=1解:解: 第一步,第一步,第二步,第二步,第三步,第三步,第四步,第四步,第五步,第五步,+ +2 2,得,得 5x=1 . 5x=1 . 解,得解,得 . . 15x - -2 2,得,得 5y5y3 . 3 . 解,得解,得 . .35y 得
3、到方程组的解为得到方程组的解为15x 35y 求解:二元一次方程组求解:二元一次方程组思考思考1:你能写出求解一般的二元一次方程组的步:你能写出求解一般的二元一次方程组的步 骤吗?骤吗?111cybxa222cybxa01221baba其中其中 思考思考2 2:根据上述分析,用加减消:根据上述分析,用加减消元法解二元一次方程组,可以分为五个元法解二元一次方程组,可以分为五个步骤进行,这五个步骤就构成了解二元步骤进行,这五个步骤就构成了解二元一次方程组的一个一次方程组的一个“算法算法”. .我们再根我们再根据这一算法编制计算机程序,就可以让据这一算法编制计算机程序,就可以让计算机来解二元一次方程
4、组计算机来解二元一次方程组. .那么解二那么解二元一次方程组的算法包括哪些内容?元一次方程组的算法包括哪些内容? 思考思考3:3:一般地,算法是由按照一定一般地,算法是由按照一定规则解决某一类问题的基本步骤组成的规则解决某一类问题的基本步骤组成的. .你认为:你认为: (1)(1)这些步骤的个数是有限的还是无这些步骤的个数是有限的还是无限的?限的? (2) (2)每个步骤是否有明确的计算任务?每个步骤是否有明确的计算任务? 总结:总结:在数学中,按照一定规则解在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为决某一类问题的明确和有限的步骤称为算法算法. . 例例1:1:如果让计算机判断
5、如果让计算机判断7 7是否为质数,如何是否为质数,如何设计算法步骤?设计算法步骤? 第一步,用第一步,用2 2除除7 7,得到余数,得到余数1,1,所以所以2 2不能整除不能整除7.7.第四步,用第四步,用5 5除除7 7,得到余数,得到余数2,2,所以所以5 5不能整除不能整除7.7. 第五步,用第五步,用6 6除除7 7,得到余数,得到余数1,1,所以所以6 6不能整除不能整除7. 7. 第二步,用第二步,用3 3除除7 7,得到余数,得到余数1,1,所以所以3 3不能整除不能整除7.7.第三步,用第三步,用4 4除除7 7,得到余数,得到余数3,3,所以所以4 4不能整除不能整除7.7.
6、 因此,因此,7 7是质数是质数. .练习练习1:1:如果让计算机判断如果让计算机判断3535是否为质数,如何设计算是否为质数,如何设计算法步骤?法步骤? 第一步,用第一步,用2 2除除3535,得到余数,得到余数1,1,所以所以2 2不能整除不能整除35.35.第二步,用第二步,用3 3除除3535,得到余数,得到余数2,2,所以所以3 3不能整除不能整除35.35.第三步,用第三步,用4 4除除3535,得到余数,得到余数3,3,所以所以4 4不能整除不能整除35.35. 第四步,用第四步,用5 5除除3535,得到余数,得到余数0,0,所以所以5 5能整除能整除35.35.因此,因此,3
7、535不是质数不是质数. .练习练习2:2:整数整数8989是否为质数?如果让计算机判断是否为质数?如果让计算机判断8989是是否为质数,按照上述算法需要设计多少个步骤?否为质数,按照上述算法需要设计多少个步骤? 第一步,用第一步,用2 2除除8989,得到余数,得到余数1,1,所以所以2 2不能整除不能整除89.89.第二步,用第二步,用3 3除除8989,得到余数,得到余数2,2,所以所以3 3不能整除不能整除89.89.第三步,用第三步,用4 4除除8989,得到余数,得到余数1,1,所以所以4 4不能整除不能整除89.89.第八十七步,用第八十七步,用8888除除8989,得到余数,得
8、到余数1,1,所以所以8888不能不能 整除整除89.89.因此,因此,8989是质数是质数. . 思考思考4:4:用用2 28888逐一去除逐一去除8989求余数,需要求余数,需要8787个步骤,个步骤,这些步骤基本是重复操作,我们可以按下面的思路改这些步骤基本是重复操作,我们可以按下面的思路改进这个算法,减少算法的步骤进这个算法,减少算法的步骤. . (1 1)用)用i i表示表示2 28888中的任意一个整数,并从中的任意一个整数,并从2 2开开始取数;始取数; (2 2)用)用i i除除8989,得到余数,得到余数r. r. 若若r=0r=0,则,则8989不是质不是质数;若数;若r0
9、r0,将,将i i用用i+1i+1替代,再执行同样的操作;替代,再执行同样的操作; (3 3)这个操作一直进行到)这个操作一直进行到i i取取8888为止为止. . 你能按照这个思路,设计一个你能按照这个思路,设计一个“判断判断8989是否为质是否为质数数”的算法步骤吗?的算法步骤吗?用用i i除除8989,得到余数,得到余数r r; 令令i i=2=2; 若若r=0r=0,则,则8989不是质数,结束不是质数,结束算法;若算法;若r0r0,将,将i i用用i+1i+1替代;替代; 判断判断“i i8888”是否成立?若是,是否成立?若是,则则8989是质数,结束算法;否则,是质数,结束算法;
10、否则,返回第二步返回第二步. . 第一步,第一步, 第四步,第四步, 第三步,第三步, 第二步,第二步, 算法设计算法设计: : 探究探究: :一般地,判断一个大于一般地,判断一个大于2 2的整数是否为质数的整数是否为质数的算法步骤如何设计?的算法步骤如何设计? 第一步,给定一个大于第一步,给定一个大于2 2的整数的整数n n; 第二步,令第二步,令i=2i=2; 第三步,用第三步,用i i除除n n,得到余数,得到余数r r; 第四步,判断第四步,判断“r=0r=0”是否成立是否成立. .若是,则若是,则n n不是不是质数,结束算法;否则,将质数,结束算法;否则,将i i的值增加的值增加1
11、1,仍用,仍用i i表示;表示; 第五步,判断第五步,判断“i(n-1)i(n-1)”是否成立,若是,则是否成立,若是,则n n是质数,结束算法;否则,返回第三步是质数,结束算法;否则,返回第三步. . 在中央电视台幸运在中央电视台幸运5252节目中节目中, ,有一个猜商品价有一个猜商品价格的环节格的环节, ,竟猜者如在规定的时间内大体猜出某种竟猜者如在规定的时间内大体猜出某种商品的价格商品的价格, ,就可获得该件商品就可获得该件商品. .现有一商品现有一商品, ,价格价格在在0800008000元之间元之间, ,采取怎样的策略才能在较短的时采取怎样的策略才能在较短的时间内说出比较接近的答案呢
12、间内说出比较接近的答案呢? ? 第一步第一步: :报报“40004000”; 第二步第二步: :若主持人说高了若主持人说高了( (说明答案在说明答案在0400004000之间之间),),就报就报“20002000”, ,否则否则( (答数在答数在4000800040008000之间之间) )报报“60006000”; 第三步第三步: :重复第二步的报数方法取中间数重复第二步的报数方法取中间数, ,直至直至得到正确结果得到正确结果. . 这其实蕴含了数学中这其实蕴含了数学中“二分法二分法”的思想的思想. .二分法二分法 对于在区间对于在区间a,b上连续不断,上连续不断,且且f(a)f(b)0的函
13、数的函数y=f(x),通过不通过不断地把函数断地把函数f(x)的零点所在的区间的零点所在的区间一分为二,使区间的两个端点逐一分为二,使区间的两个端点逐步逼近零点,而得到零点近似值步逼近零点,而得到零点近似值的方法叫做二分法的方法叫做二分法.算法分析:算法分析:220(0)xx22x令令f(x)= f(x)= ,则方程,则方程 的解就的解就是是函数函数f f(x x)的零点)的零点. . 例例2 2:写出用:写出用“二分法二分法”求方程求方程 的近似解的算法的近似解的算法. . 220(0)xx22(0)yxx第一步,令第一步,令f(x)= f(x)= ,给定精确度,给定精确度d. d. 22x
14、第二步,确定区间第二步,确定区间 a a,bb,满足,满足f(f(a a) )f(b)0.f(b)0. 第三步,取区间中点第三步,取区间中点 . .2bam第四步,若第四步,若f(f(a a) )f(m)0,f(m)2n2)是否为质数)是否为质数”的算法的算法步骤如何?步骤如何?第一步,给定一个大于第一步,给定一个大于2 2的整数的整数n n; 第二步,令第二步,令i=2i=2; 第三步,用第三步,用i i除除n n,得到余数,得到余数r r; 第四步,判断第四步,判断“r=0r=0”是否成立是否成立. .若是,则若是,则n n不是质数,结束算法;否则,将不是质数,结束算法;否则,将i i的值
15、增加的值增加1 1,仍,仍用用i i表示;表示; 第五步,判断第五步,判断“i(n-1)i(n-1)”是否成立,若是,是否成立,若是,则则n n是质数,结束算法;否则,返回第三步是质数,结束算法;否则,返回第三步. . 我们将上述我们将上述算法用右边的图算法用右边的图形表示:形表示:输出输出“n n是质数是质数”输出输出“n n不是质数不是质数”i i的值增加的值增加1 1,仍用,仍用i i表示表示开始开始r=0?求求n n除以除以i i的余数的余数r ri=2输入输入n nin-1in-1或或r=0r=0?是是是是结束结束否否否否 在这个程序在这个程序框图中,其中的框图中,其中的多边形就是程
16、序多边形就是程序框,带方向箭头框,带方向箭头的线就是流程线的线就是流程线. .开始开始r=0r=0?求求n n除以除以i i的余数的余数r ri=2i=2输入输入n nin-1in-1或或r=0r=0?是是是是结束结束否否否否i i的值增加的值增加1 1,仍用,仍用i i表示表示输出输出“n n是质数是质数”输出输出“n n不是质数不是质数”在此有在此有4 4种程序种程序框,框,2 2种流程线,种流程线,还记得它们的名还记得它们的名称和功能吗?称和功能吗?图形符号图形符号 名名 称称 功功 能能 终端框终端框 (起止框)(起止框) 输入输入输出框输出框 处理框处理框 (执行框)(执行框) 判断
17、框判断框 流程线流程线 表示一个算法的起始和结束表示一个算法的起始和结束 表示一个算法输入和输出的表示一个算法输入和输出的信息信息 赋值、计算赋值、计算 判断某一条件是否成立,成立时判断某一条件是否成立,成立时在出口处标明在出口处标明“是是”或或“Y Y”;不成立时标明不成立时标明“否否”或或“N N” 连接程序框连接程序框 在逻辑结构在逻辑结构上,上,“判断整数判断整数n n(n2n2)是否为)是否为质数质数”的程序框的程序框图由几部分组成?图由几部分组成?开始开始r=0r=0?求求n n除以除以i i的余数的余数i=2i=2输入输入n nin-1in-1或或r=0r=0?是是是是结束结束否
18、否否否i i的值增加的值增加1 1,仍用,仍用i i表示表示输出输出“n n是质数是质数”输出输出“n n不是质数不是质数” 用程序框图用程序框图表示算法时,算表示算法时,算法的逻辑结构展法的逻辑结构展现得非常清楚现得非常清楚. .输出输出“n n是质数是质数”r=0r=0?是是否否输出输出“n n不是质数不是质数”i=2i=2输入输入n n求求n n除以除以i i的余数的余数in-1in-1或或r=0r=0?是是否否i i的值增加的值增加1 1,仍用,仍用i i表示表示顺序结构顺序结构循环结构循环结构条件结构条件结构 思考思考: :任何一个算法各步骤之间都有明确的顺序任何一个算法各步骤之间都
19、有明确的顺序性,在算法的程序框图中,由若干个依次执行的步性,在算法的程序框图中,由若干个依次执行的步骤组成的逻辑结构,称为顺序结构,用程序框图可骤组成的逻辑结构,称为顺序结构,用程序框图可以表示为:以表示为:步骤步骤n n步骤步骤n+1n+1 在顺序结构中可能在顺序结构中可能会用到哪几种程序框和流会用到哪几种程序框和流程线?程线?第一步,输入三角形三条边的边长第一步,输入三角形三条边的边长a a,b b,c. c. 第四步,输出第四步,输出S. S. 2cbap例例3:3:若一个三角形的三条边长分别为若一个三角形的三条边长分别为a a,b b,c c,令令 ,则三角形的面积,则三角形的面积这个
20、公式被称为海伦这个公式被称为海伦- -秦九韶公式,请利用这个公秦九韶公式,请利用这个公式设计一个计算三角形面积的算法,并画出程序框式设计一个计算三角形面积的算法,并画出程序框图表示图表示. .)()(cpbpappS第二步,计算第二步,计算 . . 2cbap第三步,计算第三步,计算 . .)()(cpbpappS上述算法的程序框图如何表示?上述算法的程序框图如何表示?开始开始结束结束输出输出S输入输入a,b,c2abcp+=()()()Sp pa pb pc=-三、顺序结构的程序框图的基本特征:三、顺序结构的程序框图的基本特征:(2 2)各程序框从上到下用流程线依次连接)各程序框从上到下用流
21、程线依次连接. .(1 1)必须有两个起止框,穿插输入、输出框和处理框,)必须有两个起止框,穿插输入、输出框和处理框,没有判断框没有判断框. .(3 3)处理框按计算机执行顺序沿流程线依次排列)处理框按计算机执行顺序沿流程线依次排列. .小结:小结:一、程序框图又称流程图,是一种用程序框、流程线一、程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形及文字说明来表示算法的图形. . 二、三种逻辑结构:顺序结构、条件结构和循环结构二、三种逻辑结构:顺序结构、条件结构和循环结构.1.1.2 1.1.2 程序框图与算程序框图与算法的基本逻辑结构(法的基本逻辑结构(2 2)1.1.用程
22、序框、流程线及文字说明来表示算法的图形称用程序框、流程线及文字说明来表示算法的图形称为为程序框图程序框图,它使算法步骤显得直观、清晰、简明,它使算法步骤显得直观、清晰、简明. . 终端框终端框 ( (起止框起止框) ) 输入、输输入、输出框出框 处理框处理框 (执行框)(执行框) 判断框判断框 流程线流程线 2. 2. 程序框图由以下几种基本图形构成,它们表示的功程序框图由以下几种基本图形构成,它们表示的功能分别如下:能分别如下:3.3.顺序结构顺序结构是任何一个算法都离不开的基本逻辑结构是任何一个算法都离不开的基本逻辑结构. .复习复习 在一个算法中,经常会遇到一些条件的判断,在一个算法中,
23、经常会遇到一些条件的判断,有些步骤只有在一定条件下才会被执行,算法的有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立有不同的流向流程因条件是否成立有不同的流向. .在算法的程序在算法的程序框图中,由若干个在一定条件下才会被执行的步框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为骤组成的逻辑结构,称为条件结构条件结构,用程序框图,用程序框图可以表示为下面两种形式:可以表示为下面两种形式: 在一些算法中,有些步骤只有在一定条件下才在一些算法中,有些步骤只有在一定条件下才会被执行,有些步骤在一定条件下会被重复执行,会被执行,有些步骤在一定条件下会被重复执行,这需要我们对算
24、法的逻辑结构作进一步探究这需要我们对算法的逻辑结构作进一步探究. .满足条件?满足条件?步骤步骤A A步骤步骤B B是是否否满足条件?满足条件?步骤步骤A A是是否否思考:你如何理解这两种程序框图的共性和个性?思考:你如何理解这两种程序框图的共性和个性? 例例4:4:判断以任意给定的判断以任意给定的3 3个正实数为三条边边长个正实数为三条边边长的三角形是否存在,设计一个算法,并画出这个算法的三角形是否存在,设计一个算法,并画出这个算法的程序框图的程序框图. . 第二步,判断第二步,判断a+bca+bc,b+cab+ca,c+abc+ab是否同时是否同时成立成立. .若是,则存在这样的三角形;否
25、则,不存在这若是,则存在这样的三角形;否则,不存在这样的三角形样的三角形. .第一步,输入三个正实数第一步,输入三个正实数a a,b b,c.c.开始开始输入输入a a,b b,c ca+bca+bc,b+cab+ca,c+abc+ab是否同时成立?是否同时成立?是是存在这样的三角形存在这样的三角形结束结束否否不存在这样的三角形不存在这样的三角形例例5 5 设计一个求解一元二次方程设计一个求解一元二次方程axax2 2+bx+c=0+bx+c=0的算法,的算法,并画出程序框图表示并画出程序框图表示. . 第一步,输入三个系数第一步,输入三个系数a a,b b,c.c.第二步,计算第二步,计算=
26、b=b2 2-4ac.-4ac.第三步,判断第三步,判断0 0是否成立是否成立. .若是,则计算若是,则计算 ;否则输出;否则输出“方程没有实数根方程没有实数根”,结束算法,结束算法. .abp2aq2第四步,判断第四步,判断=0=0是否成立是否成立. .若是,则输出若是,则输出 x x1 1=x=x2 2=p=p,否则,计算否则,计算x x1 1= =p+qp+q,x x2 2=p-q=p-q,并输出,并输出x x1 1,x x2 2. . 程序框图程序框图:开始开始输入输入a,b,c= b2- -4ac0?否否x1=p+q输出输出x1,x2结束结束否否x2=p- -q输出输出x1=x2=p
27、是是输出输出“方程没有实数根方程没有实数根”是是abp2aq2=0? 在一些算法中,经常会出现从某处开始,按照一在一些算法中,经常会出现从某处开始,按照一定的条件反复执行的某些步骤组成的逻辑结构,称为定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构循环结构,反复执行的步骤称为,反复执行的步骤称为循环体循环体. . 某些循环结构用程序框图可以表示为:某些循环结构用程序框图可以表示为: 循环体循环体满足条件?满足条件?是是否否 这种循环结构称为这种循环结构称为直到型循环结构直到型循环结构,你能指出直,你能指出直到型循环结构的特征吗?到型循环结构的特征吗? 在执行了一次在执行了一次循环体后,对
28、条件循环体后,对条件进行判断,如果条进行判断,如果条件不满足,就继续件不满足,就继续执行循环体,直到执行循环体,直到条件满足时终止循条件满足时终止循环环. .还有一些循环结构用程序框图可以表示为:还有一些循环结构用程序框图可以表示为:循环体循环体满足条件?满足条件?是是否否 这种循环结构称为这种循环结构称为当型循环结构当型循环结构,你能指出当型,你能指出当型循环结构的特征吗?循环结构的特征吗? 在每次执行在每次执行循环体前,对条循环体前,对条件进行判断,如件进行判断,如果条件满足,就果条件满足,就执行循环体,否执行循环体,否则终止循环则终止循环. . 总结:循环结构中一定包含条件结构,用于确总
29、结:循环结构中一定包含条件结构,用于确定何时终止执行循环体定何时终止执行循环体. .循环体循环体满足条件?满足条件?是是否否循环体循环体满足条件?满足条件?是是否否直到型循环结构直到型循环结构当型循环结构当型循环结构 例例6:6:设计一个计算设计一个计算1+2+3+1+2+3+100+100的值的算法,并的值的算法,并画出程序框图画出程序框图. .第第1 1步,步,0+1=1.0+1=1.第第2 2步,步,1+2=3.1+2=3.第第3 3步,步,3+3=6.3+3=6.第第4 4步,步,6+4=10.6+4=10. 第第100100步,步,4950+100=5050. 4950+100=50
30、50. 显然,这个过程包含重复操作的步骤,可以用循显然,这个过程包含重复操作的步骤,可以用循环结构表示环结构表示.分析上述计算过程,可以发现每一步都可分析上述计算过程,可以发现每一步都可以表示为第以表示为第(i i1 1)步的结果)步的结果+i=+i=第第i i步的结果步的结果. . 第四步,判断第四步,判断i100i100是否成立是否成立. .若是,则输出若是,则输出S S,结,结束算法;否则,返回第二步束算法;否则,返回第二步. .第一步,第一步, 令令i=1i=1,S=0.S=0.第二步,第二步, S S =S+i.S+i.第三步,第三步, i=i+1.i=i+1. 我们用一个累加变量我
31、们用一个累加变量S S表示每一步的计算结果,即表示每一步的计算结果,即把把S+iS+i的结果仍记为的结果仍记为S S,从而把第,从而把第i i步表示为步表示为S=S+iS=S+i,其中,其中S S的初始值为的初始值为0 0,i i依次取依次取1 1,2 2,100.100.由于由于i i同时记录同时记录了循环体的次数,所以也称为了循环体的次数,所以也称为计数变量计数变量. .通过重复操作,通过重复操作,上述问题的算法设计如下:上述问题的算法设计如下:直到型循环结构直到型循环结构开始开始i=1i=1i100i100?是是输出输出S S结束结束S=0S=0i=i+1i=i+1S=S+iS=S+i否
32、否当型循环结构当型循环结构开始开始i=1i=1结束结束输出输出S S否否是是S=0S=0S=S+iS=S+ii100i100?i=i+1i=i+1 例例7 7 某工厂某工厂20052005年的年生产总值为年的年生产总值为200200万元,技万元,技术革新后预计以后每年的年生产总值都比上一年增术革新后预计以后每年的年生产总值都比上一年增长长5%.5%.设计一个程序框图,输出预计年生产总值超过设计一个程序框图,输出预计年生产总值超过300300万元的最早年份万元的最早年份. . 第三步,第三步, 判断所得的结果是否大于判断所得的结果是否大于300.300.若是,若是,则输出该年的年份;否则,返回第
33、二步则输出该年的年份;否则,返回第二步. .第一步,第一步, 输入输入20052005年的年生产总值年的年生产总值. .第二步,第二步, 计算下一年的年生产总值计算下一年的年生产总值. .算法分析算法分析: (3 3)设定循环控制条件:当)设定循环控制条件:当“a300a300”时终止循环时终止循环. . (1 1)确定循环体:设)确定循环体:设a a为某年的年生产总值,为某年的年生产总值,t t为为年生产总值的年增长量,年生产总值的年增长量,n n为年份,则循环体为为年份,则循环体为t=0.05at=0.05a,a=a+ta=a+t,n=n+1.n=n+1.(2 2)初始化变量:)初始化变量
34、:n=2005n=2005,a=200.a=200.循环结构:循环结构: 由于由于“第二步第二步”是重复操作的步骤,所以可以是重复操作的步骤,所以可以用循环结构来实现用循环结构来实现.按照按照“确定循环体确定循环体”“”“初始化变初始化变量量”“”“设定循环控制条件设定循环控制条件”的顺序来构造循环结构的顺序来构造循环结构.所以可通过判断所以可通过判断“a300a300”是否成立来控制循环是否成立来控制循环.开始开始n=2005n=2005a a=200=200t=0.05t=0.05a aa a= =a a+t+tn=n+1n=n+1a a300300?结束结束输出输出n n是是否否程序框图
35、:程序框图: 思考:这是思考:这是直到型循环结构直到型循环结构的程序框图,你的程序框图,你能画出包含当型能画出包含当型循环结构的程序循环结构的程序框图吗?框图吗? (3 3)条件结构和循环结构的程序框图各有两种形)条件结构和循环结构的程序框图各有两种形式,相互对立统一式,相互对立统一. .条件结构和循环结构的基本特征:条件结构和循环结构的基本特征: (1 1)程序框图中必须有两个起止框,穿插输入、)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框输出框和处理框,一定有判断框. . (2 2)循环结构中包含条件结构,条件结构中不含)循环结构中包含条件结构,条件结构中不含循环结构
36、循环结构. .1.1.2 1.1.2 程序框图与算程序框图与算法的基本逻辑结构(法的基本逻辑结构(3 3) 1. 1.算法的基本逻辑结构有哪几种?用程序框图分别算法的基本逻辑结构有哪几种?用程序框图分别如何表示?如何表示? 步骤步骤n n步骤步骤n+1n+1顺序结构顺序结构复习复习条件结构条件结构满足条件?满足条件?步骤步骤A A步骤步骤B B是是否否(1)(1)满足条件?满足条件?步骤步骤A A是是否否(2)(2)循环结构循环结构循环体循环体满足条件?满足条件?是是否否直到型直到型循环体循环体满足条件?满足条件?是是否否当型当型回顾例回顾例2 2:用:用“二分法二分法”求方程求方程 的近的近
37、似解的算法是如何设计的?似解的算法是如何设计的? 220(0)xx 第一步,令第一步,令f(x)=xf(x)=x2 2-2-2,给定精确度,给定精确度d. d. 第二步,确定区间第二步,确定区间aa,bb,满足,满足f(a)f(a)f(b)0. f(b)0. 第四步,若第四步,若f(a)f(a)f(m)0f(m)0,则含零点的区间为,则含零点的区间为aa,mm;否则,含零点的区间为否则,含零点的区间为mm,b.b.将新得到的含零点的区将新得到的含零点的区间仍记为间仍记为aa,b. b. 第五步,判断第五步,判断aa,bb的长度是否小于的长度是否小于d d或或f(m)f(m)是否等于是否等于0.
38、0.若是,则若是,则m m是方程的近似解;否则,返回第三步是方程的近似解;否则,返回第三步. . 第三步,取区间中点第三步,取区间中点 . .2bam 在用自然语言表述一个算法后,可以画出程序在用自然语言表述一个算法后,可以画出程序框图,用框图,用顺序结构顺序结构、条件结构条件结构和和循环结构循环结构来表示这个来表示这个算法算法. 根据例根据例2的算法步骤,利用三种基本逻辑结构画的算法步骤,利用三种基本逻辑结构画出程序框图出程序框图.讨论:该算法中哪几个步骤可以用顺序结讨论:该算法中哪几个步骤可以用顺序结构来表示?哪几个步骤可以用条件结构来表示?哪几构来表示?哪几个步骤可以用条件结构来表示?哪
39、几个步骤可以用循环结构来表示?个步骤可以用循环结构来表示? 该算法步骤中的该算法步骤中的“第一步第一步”“”“第二步第二步”“”“第三步第三步”可以用可以用顺序结构顺序结构来表示,你能做出这个顺序结构的程来表示,你能做出这个顺序结构的程序框图吗?序框图吗? 该算法中第四步可以用该算法中第四步可以用条件结构条件结构来表示,这个步来表示,这个步骤用程序框图如何表示?骤用程序框图如何表示? 该算法步骤中的该算法步骤中的“第五步第五步”包含一个包含一个条件结构条件结构,这个条件结构与这个条件结构与“第三步第三步”“”“第四步第四步”构成一个构成一个循环循环结构结构,循环体由,循环体由“第三步第三步”“
40、”“第四步第四步”组成,终止循组成,终止循环的条件环的条件“f(m)=0f(m)=0或或|a-b|d|a-b|d”. .在第五步中,还包含有在第五步中,还包含有循环结构与循环结构与“输出输出m m”所组成的所组成的顺序结构顺序结构. .这个循环结构这个循环结构用程序框图如何表示?用程序框图如何表示?f(x)=x x2 2-2-2输入精确度输入精确度d d和初始值和初始值a a,b b2abmf(f(a a)f(m)0?)f(m)0?a=ma=mb=mb=m是是否否在这个条件结构中,在这个条件结构中,“否否”和和“是是”两个分支的区间两个分支的区间都计为都计为a,b.第三步第三步第四步第四步|a
41、-b|d|a-b|d或或f(m)=0?f(m)=0?输出输出m m是是否否根据上述分析,你能画出表示整个算法的程序框图吗?根据上述分析,你能画出表示整个算法的程序框图吗?开始开始结束结束是是f(a)f(m)0?a=mb=m否否|a- -b|d或或f(m)=0?输出输出m是是否否f(x)=x2- -2输入精确度输入精确度d和初始值和初始值a,b2abm+=小结小结设计一个算法的程序框图的基本思路:设计一个算法的程序框图的基本思路: 第二步,确定每个算法步骤所包含的逻辑结构,第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图并用相应的程序框图表示,得到该步骤的程序框图. .第一步,用自然语言表述算法步骤第一步,用自然语言表述算法步骤. . 第三步,将所有步骤的程序框图用流程线连接起第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框,得到表示整个算法的程序框来,并加上两个终端框,得到表示整个算法的程序框图图. . 课堂练习:设计一个用有理指数幂逼课堂练习:设计一个用有理指数幂逼近无理指数幂近无理指数幂 的算法,并估计它的近的算法,并估计它的近似值,画出算法的程序框图似值,画出算法的程序框图.25
限制150内