【文档说明】算法初步算法与程序框图1算法的概念精选课件.ppt,共(79)页,1.385 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-7190.html
以下为本文档部分文字说明:
第一章算法初步1.1算法与程序框图1.1.1算法的概念高中新课程数学必修③第1页,共79页。问题提出t57301p21.用计算机解二元一次方程组.exe2.在上述解二元一次方程组的过程中,计算机是按照一定的指令来工作的
,其中最基础的数学理论就是算法,本节课我们就来学习:第2页,共79页。第3页,共79页。知识探究(一):算法的概念思考1:在初中,对于解二元一次方程组你学过哪些方法?思考2:用加减消元法解二元一次方程组x-2y=-1①2x+y=1②的具体步骤是什
么?加减消元法和代入消元法思考2:用加减消元法解二元一次方程组的具体步骤是什么?2121xyxy?=-ïïíï+=ïî第4页,共79页。①+②×2,得5x=1.③15x15x15x解③,得.15x
②-①×2,得5y=3.④解④,得.35y第一步,第二步,第三步,第四步,第五步,得到方程组的解为.1535xyìïï=ïïïíïï=ïïïî2121xyxy?=-ïïíï+=ïî①②第5页,共79页。思考3:参照上述思路,一般地,解方程组的基本步骤是什么?1
11axbyc222axbyc12210abab()②①第6页,共79页。2b1b第一步,①×-②×,得.③12212112()ababxbcbc第二步,解③,得.21121221bcbcxabab
第三步,②×-①×,得.④1a2a12211221()ababyacac第四步,解④,得.12211221acacyabab第五步,得到方程组的解为2112122112211221bcbcxababacacyabab第7页,共79页。思考4:根据上述分析,用加减消
元法解二元一次方程组,可以分为五个步骤进行,这五个步骤就构成了解二元一次方程组的一个“算法”.我们再根据这一算法编制计算机程序,就可以让计算机来解二元一次方程组.那么解二元一次方程组的算法包括哪些内容?第8页,共79页。思考5:一般地,算法是由按照一定规则解决某
一类问题的基本步骤组成的.你认为:(1)这些步骤的个数是有限的还是无限的?(2)每个步骤是否有明确的计算任务?第9页,共79页。思考6:有人对哥德巴赫猜想“任何大于4的偶数都能写成两个质数之和”设计了如下操作步骤:第
一步,检验6=3+3,第二步,检验8=3+5,第三步,检验10=5+5,„„利用计算机无穷地进行下去!请问:这是一个算法吗?第10页,共79页。思考7:根据上述分析,你能归纳出算法的概念吗?在数学中,按照
一定规则解决某一类问题的明确和有限的步骤称为算法.第11页,共79页。知识探究(二):算法的步骤设计思考1:如果让计算机判断7是否为质数,如何设计算法步骤?第一步,用2除7,得到余数1,所以2不能整除7.第四步,用5除7,得到余数2,所以5不能整除7.第五步,用6除7,得到余数1,所以6不
能整除7.第二步,用3除7,得到余数1,所以3不能整除7.第三步,用4除7,得到余数3,所以4不能整除7.因此,7是质数.第12页,共79页。思考2:如果让计算机判断35是否为质数,如何设计算法步骤?第一步,用2除35,得到余数1,所以2不能整除35.第二步,用3除35,得到
余数2,所以3不能整除35.第三步,用4除35,得到余数3,所以4不能整除35.第四步,用5除35,得到余数0,所以5能整除35.因此,35不是质数.第13页,共79页。思考3:整数89是否为质数?如果让计算机判断89是否为质数,按照上述算法需要设计多少个步骤?第一步
,用2除89,得到余数1,所以2不能整除89.第二步,用3除89,得到余数2,所以3不能整除89.第三步,用4除89,得到余数1,所以4不能整除89.……………………第八十七步,用88除89,得到余数1,所以88不能整除89.因此,89是质数.第14页,共79页。思考4:用2~
88逐一去除89求余数,需要87个步骤,这些步骤基本是重复操作,我们可以按下面的思路改进这个算法,减少算法的步骤.(1)用i表示2~88中的任意一个整数,并从2开始取数;(2)用i除89,得到余数r.若r=0
,则89不是质数;若r≠0,将i用i+1替代,再执行同样的操作;(3)这个操作一直进行到i取88为止.你能按照这个思路,设计一个“判断89是否为质数”的算法步骤吗?第15页,共79页。用i除89,得到余数r;令i=2;若r=0,则89不
是质数,结束算法;若r≠0,将i用i+1替代;判断“i>88”是否成立?若是,则89是质数,结束算法;否则,返回第二步.第一步,第四步,第三步,第二步,算法设计:第16页,共79页。思考5:一般地,判断
一个大于2的整数是否为质数的算法步骤如何设计?第一步,给定一个大于2的整数n;第二步,令i=2;第三步,用i除n,得到余数r;第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表
示;第五步,判断“i>(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步.第17页,共79页。理论迁移例设函数f(x)的图象是一条连续不断的曲线,写出用“二分法”求方程f(x)=0的一个近似解的算法.第18页
,共79页。第一步,取函数f(x),给定精确度d.第二步,确定区间[a,b],满足f(a)·f(b)<0.第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.第三步,取区间中点.ma+b=2第四步,若f(a)
·f(m)<0,则含零点的区间为[a,m],否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b];第19页,共79页。ab|a-b|12111.50.51.251.50.251.3751.50.1251.3751.43750.06251.
406251.43750.031251.406251.4218750.0156251.4146251.4218750.00781251.41406251.417968750.00390625对于方程,给定d=0.0
05.220(0)xx第20页,共79页。小结作业算法是建立在解法基础上的操作过程,算法不一定要有运算结果,问题答案可以由计算机解决.设计一个解决某类问题的算法的核心内容是设计算法的步骤,它没有一个固定的模式,但有以下
几个基本要求:(1)符合运算规则,计算机能操作;(2)每个步骤都有一个明确的计算任务;(4)步骤个数尽可能少;(5)每个步骤的语言描述要准确、简明.(3)对重复操作步骤作返回处理;第21页,共79页。作业:P5练习:1,2.第22页,共79页。1.1.2程序框图与算法的基本
逻辑结构第一课时第23页,共79页。问题提出1.算法的含义是什么?在数学中,按照一定规则解决某一类问题的明确和有限的步骤称为算法.2.算法是由一系列明确和有限的计算步骤组成的,我们可以用自然语言表述一个算法,但往往过程复杂,缺乏简洁性,因此,我们有必要
探究使算法表达得更加直观、准确的方法,这个想法可以通过程序框图来实现.第24页,共79页。第25页,共79页。知识探究(一):算法的程序框图思考1:“判断整数n(n>2)是否为质数”的算法步骤如何?第一步,给定一个大于2的
整数n;第二步,令i=2;第三步,用i除n,得到余数r;第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示;第五步,判断“i>(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步.第26页,共79页。思考2:我们将上述算法用下面的图形表示
:开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数i=2输入ni的值增加1,仍用i表示i>n-1或r=0?是是结束否否第27页,共79页。上述表示算法的图形称为算法的程序框图又称流程图,其中的多边形叫做程序框,带方向箭头的线叫做流程线,你能指出程序
框图的含义吗?用程序框、流程线及文字说明来表示算法的图形.第28页,共79页。思考3:在上述程序框图中,有4种程序框,2种流程线,它们分别有何特定的名称和功能?开始r=0?输出“n不是质数”求n除以i的余数i=2输入ni的值增加1,仍用i表示i>n-1或r=
0?是是结束否否输出“n是质数”第29页,共79页。图形符号名称功能终端框(起止框)输入、输出框处理框(执行框)判断框流程线表示一个算法的起始和结束表示一个算法输入和输出的信息赋值、计算判断某一条件是否成立,
成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”连接程序框,表示算法步骤的执行顺序第30页,共79页。思考4:在逻辑结构上,“判断整数n(n>2)是否为质数”的程序框图由几部分组成?开始r=0?输出“n不是质数”求n除以i的余数i=2输入ni的
值增加1,仍用i表示i>n-1或r=0?是是结束否否输出“n是质数”第31页,共79页。知识探究(二):算法的顺序结构思考1:任何一个算法各步骤之间都有明确的顺序性,在算法的程序框图中,由若干个依次执行的步骤组成的逻辑结构,称为顺序结构,用
程序框图可以表示为:步骤n步骤n+1在顺序结构中可能会用到哪几种程序框和流程线??第32页,共79页。思考2:若一个三角形的三条边长分别为a,b,c,令,则三角形的面积.你能利用这个公式设计一个计算三角形面积的算法步骤吗?2abcp++=(
)()()Sppapbpc=---()()()Sppapbpc=---第一步,输入三角形三条边的边长a,b,c.第二步,计算.2abcp++=第三步,计算.()()()Sppapbpc=---第四步,输出S.第33页,共79页。思考3:上述算法的程序框图如何表示?开始结束输出S输入a,b
,c2abcp++=()()()Sppapbpc=---第34页,共79页。例1一个笼子里装有鸡和兔共m只,且鸡和兔共n只脚,设计一个计算鸡和兔各有多少只的算法,并画出程序框图表示.理论迁移算法分析:第一步,输入m,n.第二步,计
算鸡的只数.42mnx-=第三步,计算兔的只数y=m-x.第四步,输出x,y.第35页,共79页。开始结束输出x,y输入m,n42mnx-=y=m-x程序框图:第36页,共79页。例2已知下图是“求一个正奇
数的平方加5的值”的程序框图,若输出的数是30,求输入的数n的值.开始结束输入正整数n输出yy=x2+5x=2n-1第37页,共79页。顺序结构的程序框图的基本特征:小结作业(2)各程序框从上到下用流程线依次连接.(1)必须有两个起止框,穿插输入、输出框和处理框,没有判断框.(3)
处理框按计算机执行顺序沿流程线依次排列.第38页,共79页。作业:P20习题1.1B组:1.第39页,共79页。1.1.2程序框图与算法的基本逻辑结构第二课时第40页,共79页。问题提出1.用程序框、流程线及文字说明来表示算法的图形称为
程序框图,它使算法步骤显得直观、清晰、简明.其中程序框有哪几种基本图形?它们表示的功能分别如何?终端框(起止框)输入、输出框处理框(执行框)判断框流程线第41页,共79页。2.顺序结构是任何一个算法都离不开的基本逻辑结构,在一些算法中,有些步骤只有在一定
条件下才会被执行,有些步骤在一定条件下会被重复执行,这需要我们对算法的逻辑结构作进一步探究.第42页,共79页。第43页,共79页。知识探究(一):算法的条件结构思考1:在某些问题的算法中,有些步骤只有在一定
条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两种形式:第44页,共79页。满足条件?步骤A步骤B
是否满足条件?步骤A是否你如何理解这两种程序框图的共性和个性?第45页,共79页。思考2:判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?第二步,判断a+b>c,b+c>a,c+a>b是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角
形.第一步,输入三个正实数a,b,c.思考3:你能画出这个算法的程序框图吗?第46页,共79页。开始输入a,b,ca+b>c,b+c>a,c+a>b是否同时成立?是存在这样的三角形结束否不存在这样的三角形第47页,共79页。知识探究(二):算法的循环结构思考1:在算法
的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包含条件结构吗?第48页,共79页。思考2:某些循环结构用程序框图可以表示为:循环体满足条件?是否这种循环结构称为直到型循环结构,你
能指出直到型循环结构的特征吗?在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.第49页,共79页。思考3:还有一些循环结构用程序框图可以表示为:循环体满足条件?是否这
种循环结构称为当型循环结构,你能指出当型循环结构的特征吗?在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环.第50页,共79页。思考4:计算1+2+3+„+100的值可按如下过程进行:第1步,0+1=1.第2步,1+2=3.第
3步,3+3=6.第4步,6+4=10.„„第100步,4950+100=5050.我们用一个累加变量S表示每一步的计算结果,即把S+i的结果仍记为S,从而把第i步表示为S=S+i,其中S的初始值为0,i依次
取1,2,„,100,通过重复操作,上述问题的算法如何设计?第51页,共79页。第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.第52页,共
79页。思考5:用直到型循环结构,上述算法的程序框图如何表示?开始i=1i>100?是输出S结束S=0i=i+1S=S+i否第53页,共79页。思考6:用当型循环结构,上述算法的程序框图如何表示?开始i=1结束输出S否是S=0S=S+ii≤100?i=i
+1第54页,共79页。例设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示.理论迁移算法分析:第一步,输入三个系数a,b,c.第二步,计算△=b2-4ac.第三步,判断△≥0是否成立.若是,则计算;否则,输出“方程没有实
数根”,结束算法.,22bpqaa=-=V第四步,判断△=0是否成立.若是,则输出x1=x2=p,否则,计算x1=p+q,x2=p-q,并输出x1,x2.第55页,共79页。程序框图:开始输入a,b,c△=b2-4ac△≥0?△=0?否x1=p+q输出x1,x2结束否
是2bpa=-2qa=Vx2=p-q输出x1=x2=p是输出“方程没有实数根”第56页,共79页。(3)条件结构和循环结构的程序框图各有两种形式,相互对立统一.条件结构和循环结构的基本特征:小结作业(1)程
序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框.(2)循环结构中包含条件结构,条件结构中不含循环结构.第57页,共79页。作业:P20习题1.1A组:2,3.第58页,共79页。1.1.2程序框图与算法的基本逻辑结构第三课时第59
页,共79页。问题提出1.算法的基本逻辑结构有哪几种?用程序框图分别如何表示?步骤n步骤n+1顺序结构第60页,共79页。条件结构满足条件?步骤A步骤B是否(1)满足条件?步骤A是否(2)第61页,共79页
。循环结构循环体满足条件?是否直到型循环体满足条件?是否当型第62页,共79页。2.在学习上,我们要求对实际问题能用自然语言设计一个算法,再根据算法的逻辑结构画出程序框图,同时,还要能够正确阅读、理解程序框图所描述的算法的含义,这需要我们对程序框图的画法有进一步的理解和认识
.第63页,共79页。第64页,共79页。知识探究(一):多重条件结构的程序框图思考1:解关于x的方程ax+b=0的算法步骤如何设计?第三步,判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.第一步,输入实数a,b.第二步,判断a是否
为0.若是,执行第三步;否则,计算,并输出x,结束算法.bxa=-第65页,共79页。思考2:该算法的程序框图如何表示?开始输入a,ba=0?是b=0?输出x结束输出“方程的解为任意实数”是输出“方程无
实数根”否否bxa=-第66页,共79页。思考3:你能画出求分段函数2,131,011,0xxyxxxxìï+>ïïïï=-#íïïï-<ïïî的值的程序框图吗?思考3:你能画出求分段函数的值的程序框图吗?2,131
,011,0xxyxxxxìï+>ïïïï=-#íïïï-<ïïî开始输入xx>1?输出y结束x≥0?否是y=x+2是y=3x-1否y=1-x第67页,共79页。思考1:用“二分法”求方程的近似解的算法如何设计?220(0)xx知识探究(二):混合逻辑结构
的程序框图第一步,令f(x)=x2-2,给定精确度d.第二步,确定区间[a,b],满足f(a)·f(b)<0.第三步,取区间中点.2abm第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].
将新得到的含零点的区间仍记为[a,b].第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.第68页,共79页。思考2:该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?f
(x)=x2-2输入精确度d和初始值a,b2abm第69页,共79页。思考3:该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?f(a)f(m)<0?a=mb=m是否第70页,共79页。思考4:该算法中哪几个步骤构成循环结构?这个循环结构用程序
框图如何表示?第三步第四步|a-b|<d或f(m)=0?输出m是否第71页,共79页。思考5:根据上述分析,你能画出表示整个算法的程序框图吗?开始结束f(a)f(m)<0?a=mb=m是否|a-b|<
d或f(m)=0?输出m是否f(x)=x2-2输入精确度d和初始值a,b2abm+=第72页,共79页。知识探究(三):程序框图的阅读与理解考察下列程序框图:开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+
n×nn=n+1输出S结束是是否否第73页,共79页。思考1:怎样理解该程序框图中包含的逻辑结构?开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否第74页,共79页。思考2
:该程序框图中的循环结构属于那种类型?开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否第75页,共79页。开始n≤100?n=1S=0n是偶数?S=S-n×nS=S+n×nn=n+1输出S结束是是否否思考3:该程序框图反映的实际
问题是什么?求12-22+32-42+„+992-1002的值.第76页,共79页。理论迁移例画出求三个不同实数中的最大值的程序框图.开始输入a,b,ca>b?a>c?是x=a是x=c否b>c?否x=b是x=c否输出
x结束第77页,共79页。小结作业设计一个算法的程序框图的基本思路:第二步,确定每个算法步骤所包含的逻辑结构,并用相应的程序框图表示.第一步,用自然语言表述算法步骤.第三步,将所有步骤的程序框图用流程线连接起来,并加上两个终端框.第78页,共79页。作业:P19练习(只要求画出算法
的程序框图).P20习题1.1B组:2.第79页,共79页。