资源描述
,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第一章 算法初步,1.1.2 程序框图与算法的基本,逻辑结构(二),1.用程序框、流程线及文字说明来表示算法的图形称为,程序框图,,它使算法步骤显得直观、清晰、简明.其中程序框有哪几种基本图形?它们表示的功能分别如何?,终端框 (起止框),输入、输出框,处理框(执行框),判断框,流程线,2.,顺序结构,是任何一个算法都离不开的基本逻辑结构,在一些算法中,有些步骤只有在一定条件下才会被执行,有些步骤在一定条件下会被重复执行,这需要我们对算法的逻辑结构作进一步探究.,条件结构与循环结构,知识探究(一):算法的条件结构,思考1:,在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为,条件结构,,用程序框图可以表示为下面两种形式:,满足条件?,步骤A,步骤B,是,否,满足条件?,步骤A,是,否,你如何理解这两种程序框图的共性和个性?,思考2:,判断“以任意给定的3个正实数为三条边边长的三角形是否存在”的算法步骤如何设计?,第二步,判断a+bc,b+ca,c+ab是否同时成立.若是,则存在这样的三角形;否则,不存在这样的三角形.,第一步,输入三个正实数a,b,c,.,思考3:,你能画出这个算法的程序框图吗?,开始,输入,a,,b,c,a+bc,,,b+ca,,,c+ab是否同时成立?,是,存在这样的三角形,结束,否,不存在这样的三角形,知识探究(一):多重条件结构的程序框图,思考1:,解关于x的方程ax+b=0的算法步骤如何设计?,第三步,判断b是否为0.若是,则输出“方程的解为任意实数”;否则,输出“方程无实数解”.,第一步,输入实数a,b.,第二步,判断a是否为0.若是,执行第三步;否则,计算 ,并输出x,结束算法.,思考2:,该算法的程序框图如何表示?,开始,输入a,b,a=0?,是,b=0?,输出x,结束,输出“方程的解为任意实数”,是,输出“方程无实数根”,否,否,例1 设计一个求解一元二次方程ax,2,+bx+c=0的算法,并画出程序框图表示.,算法分析,:,第一步,输入三个系数a,b,c.,第二步,计算=b,2,-4ac.,第三步,判断0是否成立.若是,则计 算 ;否则,输出“方程没有 实数根”,结束算法.,第四步,判断=0是否成立.若是,则输出 x,1,=x,2,=p,否则,计算x,1,=p+q,x,2,=p-q,并输出x,1,,x,2,.,程序框图,:,开始,输入,a,,b,c,=b,2,-,4,a,c,0?,=0?,否,x,1,=p+q,输出x,1,,x,2,结束,否,是,x,2,=p,-,q,输出x,1,=x,2,=p,是,输出“方程没有实数根”,开始,输入x,x1?,输出y,结束,x0?,否,是,y=x+2,是,y=3x,-,1,否,y=1,-,x,思考3:,你能画出求分段函数,的值的程序框图吗?,知识探究(二):算法的循环结构,思考1:,在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为,循环结构,,反复执行的步骤称为,循环体,,那么循环结构中一定包含条件结构吗?,思考2:,某些循环结构用程序框图可以表示为:,循环体,满足条件?,是,否,这种循环结构称为,直到型循环结构,,你能指出直到型循环结构的特征吗?,在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.,思考3:,还有一些循环结构用程序框图可以表示为:,循环体,满足条件?,是,否,这种循环结构称为,当型循环结构,,你能指出当型循环结构的特征吗?,在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环,.,A,D,20,4,某程序框图如图所示,若输出的,S,57,,则判断框内为,(,),A,k,4?,B,k,5?,C,k,6?,D,k,7?,5,如图所示,程序的,输出结果为,S,132,,,则判断框中应填,(,),A,i,10?,B,i,11?,C,i,11?,D,i,12?,根据条件把图中的程序框图补充完整,求区间,1,,,1 000,内所有奇数的和,,(1),处填,_,;,(2),处填,_,(1),S,S,i,(2),i,i,2,完善程序框图,A,2 450,B,2 500,C,2 550,D,2 652,7,如果执行下面的程序框图,那么输出的,S,等于(,),程序框图如图所示,,则该程序框图的功能,是_,读懂程序框图的功能,开始,结束,s=0,i=1,i=i+1,i99?,输出s,否,是,设计一个算法的程序框图的基本思路:,第二步,确定每个算法步骤所包含的逻辑结构,,并用相应的程序框图表示.,第一步,用自然语言表述算法步骤.,第三步,将所有步骤的程序框图用流程线连接,起来,并加上两个终端框.,思考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,通过重复操作,上述问题的算法如何设计?,第四步,判断i,100是否成立.若是,则输出S,结束算法;否则,返回第二步.,第一步,令i=1,S=0.,第二步,计算S+i,仍用S表示.,第三步,计算i+1,仍用i表示.,思考5:,用直到型循环结构,上述算法的程序框图如何表示?,开始,i=1,i100?,是,输出S,结束,S=0,i=i+1,S=S+i,否,思考6:,用当型循环结构,上述算法的程序框图如何表示?,开始,i=1,结束,输出S,否,是,S=0,S=S+i,i100?,i=i+1,求使,1,2,3,4,5,+,n,100,成立的最小自然数,n,的值,画出程序框图,例,1、,某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.,第三步,判断所得的结果是否大于300.若是,则输出该年的年份;否则,返回第二步.,第一步,输入2005年的年生产总值.,第二步,计算下一年的年生产总值.,算法分析,:,(3)控制条件:当“a,300”时终止循环.,(1)循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则t=0.05a,a=a+t,n=n+1.,(2)初始值:n=2005,a=200.,循环结构,:,开始,n=2005,a,=200,t=0.05,a,a,=,a,+t,n=n+1,a,300?,结束,输出n,是,否,程序框图,:,(3)条件结构和循环结构的程序框图各有两种形式,相互对立统一.,条件结构和循环结构的基本特征:,(1)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判断框.,(2)循环结构中包含条件结构,条件结构中不含循环结构.,
展开阅读全文