1、第一章第一章 算法初步算法初步1.1.2 程序框图与算法的基本程序框图与算法的基本 逻辑结构逻辑结构(二二)问题提出问题提出 1.1.用程序框、流程线及文字说明来用程序框、流程线及文字说明来表示算法的图形称为程序框图,它使算表示算法的图形称为程序框图,它使算法步骤显得直观、清晰、简明法步骤显得直观、清晰、简明.其中程序其中程序框有哪几种基本图形?它们表示的功能框有哪几种基本图形?它们表示的功能分别如何?分别如何?终端框终端框 (起止框)(起止框)输入、输出输入、输出框框 处理框处理框(执行框)(执行框)判断框判断框 流程线流程线 2.2.顺序结构是任何一个算法都离不顺序结构是任何一个算法都离不
2、开的基本逻辑结构,在一些算法中,有开的基本逻辑结构,在一些算法中,有些步骤只有在一定条件下才会被执行,些步骤只有在一定条件下才会被执行,有些步骤在一定条件下会被重复执行,有些步骤在一定条件下会被重复执行,这需要我们对算法的逻辑结构作进一步这需要我们对算法的逻辑结构作进一步探究探究.知识探究(一):算法的条件结构知识探究(一):算法的条件结构思考思考1:1:在某些问题的算法中,有些步骤在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的只有在一定条件下才会被执行,算法的流程因条件是否成立而变化流程因条件是否成立而变化.在算法的程在算法的程序框图中,由若干个在一定条件下才会序框图中,由若
3、干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两件结构,用程序框图可以表示为下面两种形式:种形式:满足条件?满足条件?步骤步骤A步骤步骤B是是否否满足条件?满足条件?步骤步骤A是是否否你如何理解这两种程序框图的共性你如何理解这两种程序框图的共性和个性?和个性?思考思考2:判断判断“以任意给定的以任意给定的3个正实数为个正实数为三条边边长的三角形是否存在三条边边长的三角形是否存在”的算法步的算法步骤如何设计?骤如何设计?第二步,判断第二步,判断a+bc,b+ca,c+ab是是否同时成立否同时成立.若是,则存在这样的三角若是
4、,则存在这样的三角形;否则,不存在这样的三角形形;否则,不存在这样的三角形.第一步,输入三个正实数第一步,输入三个正实数a,b,c.思考思考3:你能画出这个算法的程序框图你能画出这个算法的程序框图吗?吗?开始开始输入输入a,b,ca+bc,b+ca,c+ab是否是否同时成立?同时成立?是是存在这样的三角形存在这样的三角形结束结束否否不存在这样的三角不存在这样的三角形形知识探究(二):算法的循环结构知识探究(二):算法的循环结构思考思考1:1:在算法的程序框图中,由按照一在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行
5、的步辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包骤称为循环体,那么循环结构中一定包含条件结构吗?含条件结构吗?思考思考2:某些循环结构用程序框图可以表某些循环结构用程序框图可以表示为:示为:循环体循环体满足条件?满足条件?是是否否 这种循环结构称为直到型循环结构,这种循环结构称为直到型循环结构,你能指出直到型循环结构的特征吗?你能指出直到型循环结构的特征吗?在执行了一次循在执行了一次循环体后,对条件环体后,对条件进行判断,如果进行判断,如果条件不满足,就条件不满足,就继续执行循环体,继续执行循环体,直到条件满足时直到条件满足时终止循环终止循环.思考思考3:还有一些循环结
6、构用程序框图可还有一些循环结构用程序框图可以表示为:以表示为:循环体循环体满足条件?满足条件?是是否否这种循环结构称为当型循环结构,你能这种循环结构称为当型循环结构,你能指出当型循环结构的特征吗?指出当型循环结构的特征吗?在每次执行循在每次执行循环体前,对条环体前,对条件进行判断,件进行判断,如果条件满足,如果条件满足,就执行循环体,就执行循环体,否则终止循环否则终止循环.思考思考4:计算计算1+2+3+100的值可按如下过程的值可按如下过程进行:进行:第第1步,步,0+1=1.第第2步,步,1+2=3.第第3步,步,3+3=6.第第4步,步,6+4=10.第第100步,步,4950+100=
7、5050.我们用一个累加变量我们用一个累加变量S表示每一步的计算表示每一步的计算结果,即把结果,即把S+i的结果仍记为的结果仍记为S,从而把第,从而把第i步步表示为表示为S=S+i,其中,其中S的初始值为的初始值为0,i依次取依次取1,2,100,通过重复操作,上述问题的算,通过重复操作,上述问题的算法如何设计?法如何设计?第四步,判断第四步,判断i100是否成立是否成立.若是,若是,则输出则输出S,结束算法;否则,返回第二,结束算法;否则,返回第二步步.第一步,令第一步,令i=1,S=0.第二步,计算第二步,计算S+i,仍用,仍用S表示表示.第三步,计算第三步,计算i+1,仍用,仍用i表示表
8、示.思考思考5:用直到型循环结构,上述算法的用直到型循环结构,上述算法的程序框图如何表示?程序框图如何表示?开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否思考思考6:用当型循环结构,上述算法的程用当型循环结构,上述算法的程序框图如何表示?序框图如何表示?开始开始i=1结束结束输出输出S否否是是S=0S=S+ii100?i=i+1 例例1 设计一个求解一元二次方程设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示的算法,并画出程序框图表示.理论迁移理论迁移算法分析:算法分析:第一步,输入三个系数第一步,输入三个系数a,b,c.第二步,计算第二步,
9、计算=b2-4ac.第四步,判断第四步,判断=0是否成立是否成立.若是,则输出若是,则输出 x1=x2=p,否则,计算,否则,计算x1=p+q,x2=p-q,并输出并输出x1,x2.第三步,判断第三步,判断0是否成立是否成立.若是,则计若是,则计 算算 ;否则,输出;否则,输出“方程没有方程没有 实数根实数根”,结束算法,结束算法.,22bpqaa=-=V程序框图程序框图:开始开始输入输入a,b,c=b2-4ac0?=0?否否x1=p+q输出输出x1,x2结束结束否否是是x2=p-q输出输出x1=x2=p是是输出输出“方程没有方程没有实数根实数根”2bpa=-2qa=V 例例2 某工厂某工厂2
10、005年的年生产总值为年的年生产总值为200万元,技术革新后预计以后每年的年生万元,技术革新后预计以后每年的年生产总值都比上一年增长产总值都比上一年增长5%.设计一个程设计一个程序框图,输出预计年生产总值超过序框图,输出预计年生产总值超过300万万元的最早年份元的最早年份.第三步,判断所得的结果是否大于第三步,判断所得的结果是否大于300.若是,则输出该年的年份;若是,则输出该年的年份;否则,返回第二步否则,返回第二步.第一步,第一步,输入输入2005年的年生产总值年的年生产总值.第二步,计算下一年的年生产总值第二步,计算下一年的年生产总值.算法分析算法分析:(3)控制条件:当)控制条件:当“
11、a300”时终止循环时终止循环.(1)循环体:设)循环体:设a为某年的年生产总值,为某年的年生产总值,t为年生产总值的年增长量,为年生产总值的年增长量,n为年份,为年份,则则t=0.05a,a=a+t,n=n+1.(2)初始值:)初始值:n=2005,a=200.循环结构:循环结构:开始开始n=2005a=200t=0.05aa=a+tn=n+1a300?结束结束输出输出n是是否否程序框图程序框图:(3)条件结构和循环结构的程序框图)条件结构和循环结构的程序框图各有两种形式,相互对立统一各有两种形式,相互对立统一.条件结构和循环结构的基本特征:条件结构和循环结构的基本特征:小结作业小结作业(1)程序框图中必须有两个起止框,)程序框图中必须有两个起止框,穿插输入、输出框和处理框,一定有判穿插输入、输出框和处理框,一定有判断框断框.(2)循环结构中包含条件结构,条件结)循环结构中包含条件结构,条件结构中不含循环结构构中不含循环结构.