资源预览内容
第1页 / 共76页
第2页 / 共76页
第3页 / 共76页
第4页 / 共76页
第5页 / 共76页
第6页 / 共76页
第7页 / 共76页
第8页 / 共76页
第9页 / 共76页
第10页 / 共76页
亲,该文档总共76页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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、把冰箱门关上、把冰箱门关上 问题提出问题提出 我们知道,计算机可以帮我们解决很多问我们知道,计算机可以帮我们解决很多问题,其实它是按照一定的指令来工作的,其中题,其实它是按照一定的指令来工作的,其中最基础的数学理论就是最基础的数学理论就是算法算法,本节课我们就来,本节课我们就来学习学习: :算法的概念算法的概念.x x2y=2y=1 12x2xy=1y=1解:解: 第一步,第一步,第二步,第二步,第三步,第三步,第四步,第四步,第五步,第五步,+2 2,得,得 5x=1 . 5x=1 . 解解,得,得 . . -2 2,得,得 5y5y3 . 3 . 解解,得,得 . .得到方程组的解为得到方程组的解为求解:二元一次方程组求解:二元一次方程组思考思考1:你能写出求解一般的二元一次方程组的步:你能写出求解一般的二元一次方程组的步 骤吗?骤吗?其中其中第一步:第一步:解解 ,得得 - - ,得得解解 ,得得得到方程组的解为得到方程组的解为 - - ,得得 第二步:第二步:第三步:第三步:第四步:第四步:第五步:第五步: 思考思考2 2:根据上述分析,用加减消元法:根据上述分析,用加减消元法解二元一次方程组,可以分为五个步骤进解二元一次方程组,可以分为五个步骤进行,这五个步骤就构成了解二元一次方程行,这五个步骤就构成了解二元一次方程组的一个组的一个“算法算法”. .我们再根据这一算法编我们再根据这一算法编制计算机程序,就可以让计算机来解二元制计算机程序,就可以让计算机来解二元一次方程组一次方程组. .那么解二元一次方程组的算法那么解二元一次方程组的算法包括哪些内容?包括哪些内容? 思考思考3:3:一般地,算法是由按照一定规则解决某一一般地,算法是由按照一定规则解决某一类问题的基本步骤组成的类问题的基本步骤组成的. .你认为:你认为: (1)(1)这些步骤的个数是有限的还是无限的?这些步骤的个数是有限的还是无限的? (2) (2)每个步骤是否有明确的计算任务?每个步骤是否有明确的计算任务? 总结:总结:在数学中,按照一定规则解决某一类问在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为题的明确和有限的步骤称为算法算法. . 例例1:1:如果让计算机判断如果让计算机判断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. 因此,因此,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.因此,因此,3535不是质数不是质数. . 练习练习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,得到余数,得到余数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不是质不是质数;若数;若r0r0,将,将i i用用i+1i+1替代,再执行同样的操作;替代,再执行同样的操作; (3 3)这个操作一直进行到)这个操作一直进行到i i取取8888为止为止. . 你能按照这个思路,设计一个你能按照这个思路,设计一个“判断判断8989是否为质是否为质数数”的算法步骤吗?的算法步骤吗?用用i i除除8989,得到余数,得到余数r r; 令令i=2i=2; 若若r=0r=0,则,则8989不是质数,结束算法;若不是质数,结束算法;若r0r0,将,将i i用用i+1i+1替代;替代; 判断判断“i88i88”是否成立?若是,则是否成立?若是,则8989是是质数,结束算法;否则,返回第二步质数,结束算法;否则,返回第二步. . 第一步,第一步, 第四步,第四步, 第三步,第三步, 第二步,第二步, 算法设计算法设计: : 探究探究: :一般地,判断一个大于一般地,判断一个大于2 2的整数是否为质数的整数是否为质数的算法步骤如何设计?的算法步骤如何设计? 第一步,给定一个大于第一步,给定一个大于2 2的整数的整数n n; 第二步,令第二步,令i=2i=2; 第三步,用第三步,用i i除除n n,得到余数,得到余数r r; 第四步,判断第四步,判断“r=0r=0”是否成立是否成立. .若是,则若是,则n n不是质不是质数,结束算法;否则,将数,结束算法;否则,将i i的值增加的值增加1 1,仍用,仍用i i表示;表示; 第五步,判断第五步,判断“i(n-1)i(n-1)”是否成立,若是,则是否成立,若是,则n n是质数,结束算法;否则,返回第三步是质数,结束算法;否则,返回第三步. . 在在中中央央电电视视台台幸幸运运5252节节目目中中, ,有有一一个个猜猜商商品品价价格格的的环环节节, ,竟竟猜猜者者如如在在规规定定的的时时间间内内大大体体猜猜出出某某种种商商品品的的价价格格, ,就就可可获获得得该该件件商商品品. .现现有有一一商商品品, ,价价格格在在0 080008000元元之之间间, ,采采取取怎怎样样的的策策略略才才能能在在较较短短的的时时间内说出比较接近的答案呢间内说出比较接近的答案呢? ? 第一步第一步: :报报“40004000”; 第第二二步步: :若若主主持持人人说说高高了了( (说说明明答答案案在在0400004000之之间间),),就就报报“20002000”, ,否否则则( (答答数数在在4000800040008000之之间间) )报报“60006000”; 第三步第三步: :重复第二步的报数方法取中间数重复第二步的报数方法取中间数, ,直至得直至得到正确结果到正确结果. . 这其实蕴含了数学中这其实蕴含了数学中“二分法二分法”的思想的思想. .二分法二分法 对于在区间对于在区间a,b a,b 上连续不断,且上连续不断,且f(a)f(b)0f(a)f(b)0的函数的函数y=f(x),y=f(x),通过不断地把函数通过不断地把函数f(x)f(x)的零点所在的零点所在的区间一分为二,使区间的两个端点逐步逼近零的区间一分为二,使区间的两个端点逐步逼近零点,而得到零点近似值的方法叫做二分法点,而得到零点近似值的方法叫做二分法. .算法分析:算法分析:令令f(x)= f(x)= ,则方程,则方程 的解就是的解就是函数函数f f(x x)的零点)的零点. . 例例2 2:写出用:写出用“二分法二分法”求方程求方程 的近似解的算法的近似解的算法. . 第二步,确定区间第二步,确定区间 a a,bb,满足,满足f(f(a a) )f(b)0.f(b)0. 第五步,判断第五步,判断 a a,b,b的长度是否小于的长度是否小于d d或或f(m)f(m)是否等于是否等于0.0.若是,则若是,则m m是方程的近似解;否则,返回第三步是方程的近似解;否则,返回第三步. . 第四步,若第四步,若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的值增加的值增加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?是是是是结束结束否否否否 在这个程序在这个程序框图中,其中的框图中,其中的多边形就是程序多边形就是程序框,带方向箭头框,带方向箭头的线就是流程线的线就是流程线. .开始开始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种流程线,还种流程线,还记得它们的名记得它们的名称和功能吗?称和功能吗?图形符号图形符号 名名 称称 功功 能能 终端框终端框 (起止框)(起止框) 输入、输出框输入、输出框 处理框处理框 (执行框)(执行框) 判断框判断框 流程线流程线 表示一个算法的起始和结束表示一个算法的起始和结束 表示一个算法输入和输出的表示一个算法输入和输出的信息信息 赋值、计算赋值、计算 判断某一条件是否成立,成立判断某一条件是否成立,成立时在出口处标明时在出口处标明“是是”或或“Y Y”;不成立时标明;不成立时标明“否否”或或“N N” 连接程序框连接程序框 在逻辑结构在逻辑结构上,上,“判断整数判断整数n n(n2n2)是否为)是否为质数质数”的程序框的程序框图由几部分组成图由几部分组成?开始开始r=0r=0?求求n n除以除以i i的余数的余数i=2i=2输入输入n nin-1in-1或或r=0r=0?是是是是结束结束否否否否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表示表示顺序结构顺序结构循环结构循环结构条件结构条件结构 思考思考: :任何一个算法各步骤之间都有明确的顺序任何一个算法各步骤之间都有明确的顺序性,在算法的程序框图中,由若干个依次执行的步骤性,在算法的程序框图中,由若干个依次执行的步骤组成的逻辑结构,称为顺序结构,用程序框图可以表组成的逻辑结构,称为顺序结构,用程序框图可以表示为:示为:步骤步骤n n步骤步骤n+1n+1 在顺序结构中可能在顺序结构中可能会用到哪几种程序框和流会用到哪几种程序框和流程线?程线?第一步,输入三角形三条边的边长第一步,输入三角形三条边的边长a a,b b,c. c. 第四步,输出第四步,输出S. S. 例例3:3:若一个三角形的三条边长分别为若一个三角形的三条边长分别为a a,b b,c c,令,令 ,则三角形的面积,则三角形的面积这个公式被称为海伦这个公式被称为海伦- -秦九韶公式,请利用这个公秦九韶公式,请利用这个公式设计一个计算三角形面积的算法,并画出程序框式设计一个计算三角形面积的算法,并画出程序框图表示图表示. .第二步,计算第二步,计算 . . 第三步,计算第三步,计算 . .上述算法的程序框图如何表示?上述算法的程序框图如何表示?开始开始结束结束输出输出S输入输入a,b,c三、顺序结构的程序框图的基本特征:三、顺序结构的程序框图的基本特征:(2 2)各程序框从上到下用流程线依次连接)各程序框从上到下用流程线依次连接. .(1 1)必须有两个起止框,穿插输入、输出框和处理框,)必须有两个起止框,穿插输入、输出框和处理框,没有判断框没有判断框. .(3 3)处理框按计算机执行顺序沿流程线依次排列)处理框按计算机执行顺序沿流程线依次排列. .小结:小结:一、程序框图又称流程图,是一种用程序框、流程线一、程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形及文字说明来表示算法的图形. . 二、三种逻辑结构:顺序结构、条件结构和循环结构二、三种逻辑结构:顺序结构、条件结构和循环结构.布置作业布置作业: :P P2020习题习题1.1B1.1B组:组:1.1.1.1.2 1.1.2 程序框图与算程序框图与算法的基本逻辑结构法的基本逻辑结构(2 2)1.1.用程序框、流程线及文字说明来表示算法的图形称用程序框、流程线及文字说明来表示算法的图形称为为程序框图程序框图,它使算法步骤显得直观、清晰、简明,它使算法步骤显得直观、清晰、简明. . 终端框终端框 (起止框)(起止框) 输入、输输入、输出框出框 处理框处理框 (执行框)(执行框) 判断框判断框 流程线流程线 2. 2. 程序框图由以下几种基本图形构成,它们表示的功程序框图由以下几种基本图形构成,它们表示的功能分别如下:能分别如下:3.3.顺序结构顺序结构是任何一个算法都离不开的基本逻辑结构是任何一个算法都离不开的基本逻辑结构. .复习复习 在一个算法中,经常会遇到一些条件的判断,有些在一个算法中,经常会遇到一些条件的判断,有些步骤只有在一定条件下才会被执行,算法的流程因条件步骤只有在一定条件下才会被执行,算法的流程因条件是否成立有不同的流向是否成立有不同的流向. .在算法的程序框图中,由若干在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称个在一定条件下才会被执行的步骤组成的逻辑结构,称为为条件结构条件结构,用程序框图可以表示为下面两种形式:,用程序框图可以表示为下面两种形式: 在一些算法中,有些步骤只有在一定条件下才会被在一些算法中,有些步骤只有在一定条件下才会被执行,有些步骤在一定条件下会被重复执行,这需要我执行,有些步骤在一定条件下会被重复执行,这需要我们对算法的逻辑结构作进一步探究们对算法的逻辑结构作进一步探究. .满足条件?满足条件?步骤步骤A A步骤步骤B B是是否否满足条件?满足条件?步骤步骤A A是是否否思考:你如何理解这两种程序框图的共性和个性?思考:你如何理解这两种程序框图的共性和个性? 例例4:4:判断以任意给定的判断以任意给定的3 3个正实数为三条边边长个正实数为三条边边长的三角形是否存在,设计一个算法,并画出这个算法的三角形是否存在,设计一个算法,并画出这个算法的程序框图的程序框图. . 第二步,判断第二步,判断a+bca+bc,b+cab+ca,c+abc+ab是否同时成是否同时成立立. .若是,则存在这样的三角形;否则,不存在这样若是,则存在这样的三角形;否则,不存在这样的三角形的三角形. .第一步,输入三个正实数第一步,输入三个正实数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.第二步,计算第二步,计算=b=b2 2-4ac.-4ac.第四步,判断第四步,判断=0=0是否成立是否成立. .若是,则输出若是,则输出 x x1 1=x=x2 2=p=p,否,否则,计算则,计算x x1 1=p+q=p+q,x x2 2=p-q=p-q,并输出,并输出x x1 1,x x2 2. . 第三步,判断第三步,判断0 0是否成立是否成立. .若是,则计算若是,则计算 ;否则,输出;否则,输出“方程没有实数根方程没有实数根”,结束算法,结束算法. .程序框图程序框图:开始开始输入输入a,b,c= b2- -4ac0?否否x1=p+q输出输出x1,x2结束结束否否x2=p- -q输出输出x1=x2=p是是输出输出“方程没有实数根方程没有实数根”是是=0? 在一些算法中,经常会出现从某处开始,按照一定在一些算法中,经常会出现从某处开始,按照一定的条件反复执行的某些步骤组成的逻辑结构,称为的条件反复执行的某些步骤组成的逻辑结构,称为循环循环结构结构,反复执行的步骤称为,反复执行的步骤称为循环体循环体. . 某些循环结构用程序框图可以表示为:某些循环结构用程序框图可以表示为: 循环体循环体满足条件?满足条件?是是否否 这种循环结构称为这种循环结构称为直到型循环结构直到型循环结构,你能指出直,你能指出直到型循环结构的特征吗?到型循环结构的特征吗? 在执行了一次循在执行了一次循环体后,对条件进行环体后,对条件进行判断,如果条件不满判断,如果条件不满足,就继续执行循环足,就继续执行循环体,直到条件满足时体,直到条件满足时终止循环终止循环. .还有一些循环结构用程序框图可以表示为:还有一些循环结构用程序框图可以表示为:循环体循环体满足条件?满足条件?是是否否 这种循环结构称为这种循环结构称为当型循环结构当型循环结构,你能指出当型,你能指出当型循环结构的特征吗?循环结构的特征吗? 在每次执行在每次执行循环体前,对条循环体前,对条件进行判断,如件进行判断,如果条件满足,就果条件满足,就执行循环体,否执行循环体,否则终止循环则终止循环. . 总结:循环结构中一定包含条件结构,用于确总结:循环结构中一定包含条件结构,用于确定何时终止执行循环体定何时终止执行循环体. .循环体循环体满足条件?满足条件?是是否否循环体循环体满足条件?满足条件?是是否否直到型循环结构直到型循环结构当型循环结构当型循环结构 例例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=5050. 显然,这个过程包含重复操作的步骤,可以用循显然,这个过程包含重复操作的步骤,可以用循环结构表示环结构表示.分析上述计算过程,可以发现每一步都可分析上述计算过程,可以发现每一步都可以表示为第以表示为第(i1i1)步的结果)步的结果+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. 我们用一个累加变量我们用一个累加变量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否否当型循环结构当型循环结构开始开始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.若是,若是,则输出该年的年份;否则,返回第二步则输出该年的年份;否则,返回第二步. .第一步,第一步, 输入输入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)初始化变量:)初始化变量: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是是否否程序框图:程序框图: 思考:这是思考:这是直到型循环结构的直到型循环结构的程序框图,你能画程序框图,你能画出包含当型循环结出包含当型循环结构的程序框图吗构的程序框图吗? (3 3)条件结构和循环结构的程序框图各有两种形)条件结构和循环结构的程序框图各有两种形式,相互对立统一式,相互对立统一. .条件结构和循环结构的基本特征:条件结构和循环结构的基本特征: (1 1)程序框图中必须有两个起止框,穿插输入、)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框输出框和处理框,一定有判断框. . (2 2)循环结构中包含条件结构,条件结构中不含)循环结构中包含条件结构,条件结构中不含循环结构循环结构. .布置作业:布置作业:P20P20习题习题1.1A1.1A组:组:2 2,3.3.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:用:用“二分法二分法”求方程求方程 的近的近似解的算法是如何设计的?似解的算法是如何设计的? 第一步,令第一步,令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.0.若是,则若是,则m m是方程的近似解;否则,返回第三步是方程的近似解;否则,返回第三步. . 第三步,取区间中点第三步,取区间中点 . . 在用自然语言表述一个算法后,可以画出程序在用自然语言表述一个算法后,可以画出程序框图,用框图,用顺序结构顺序结构、条件结构条件结构和和循环结构循环结构来表示这个来表示这个算法算法. 根据例根据例2的算法步骤,利用三种基本逻辑结构画的算法步骤,利用三种基本逻辑结构画出程序框图出程序框图.讨论:该算法中哪几个步骤可以用顺序结讨论:该算法中哪几个步骤可以用顺序结构来表示?哪几个步骤可以用条件结构来表示?哪几构来表示?哪几个步骤可以用条件结构来表示?哪几个步骤可以用循环结构来表示?个步骤可以用循环结构来表示? 该算法步骤中的该算法步骤中的“第一步第一步”“”“第二步第二步”“”“第三步第三步”可以用可以用顺序结构顺序结构来表示,你能做出这个顺序结构的来表示,你能做出这个顺序结构的程序框图吗?程序框图吗? 该算法中第四步可以用该算法中第四步可以用条件结构条件结构来表示,这个步来表示,这个步骤用程序框图如何表示?骤用程序框图如何表示? 该算法步骤中的该算法步骤中的“第五步第五步”包含一个包含一个条件结构条件结构,这个条件结构与这个条件结构与“第三步第三步”“”“第四步第四步”构成一个构成一个循环循环结构结构,循环体由,循环体由“第三步第三步”“第四步第四步”组成,终止循组成,终止循环的条件环的条件“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 bf(f(a a)f(m)0)f(m)0? ?a=ma=mb=mb=m是是否否在这个条件结构中,在这个条件结构中,“否否”和和“是是”两个分支的区间两个分支的区间都计为都计为a,b.第三步第三步第四步第四步|a-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,b小结小结设计一个算法的程序框图的基本思路:设计一个算法的程序框图的基本思路: 第二步,确定每个算法步骤所包含的逻辑结构,第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图并用相应的程序框图表示,得到该步骤的程序框图. .第一步,用自然语言表述算法步骤第一步,用自然语言表述算法步骤. . 第三步,将所有步骤的程序框图用流程线连接起第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框,得到表示整个算法的程序框来,并加上两个终端框,得到表示整个算法的程序框图图. . 课堂练习:设计一个用有理指数幂逼课堂练习:设计一个用有理指数幂逼近无理指数幂近无理指数幂 的算法,并估计它的近的算法,并估计它的近似值,画出算法的程序框图似值,画出算法的程序框图.布置作业:布置作业:P20P20习题习题1.1 A1.1 A组:组:1 1 B B组:组:2.2.
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号