1、1新课引入新课引入 算法可以用自然语言来描述算法可以用自然语言来描述,但为了使算法的程但为了使算法的程序或步骤表达得更为直观序或步骤表达得更为直观,我们更经常地用图形方式我们更经常地用图形方式来表达它来表达它.例如上一节例如上一节“例例1.1.任意给定一个大于任意给定一个大于1 1的整数的整数n n,试设计一个程序或步骤对试设计一个程序或步骤对n n是否为质数做出判定是否为质数做出判定”的的算法可以用以下形式来表达算法可以用以下形式来表达.任意给定一个大于任意给定一个大于1 1的整数的整数n n,试设计一个程序,试设计一个程序或步骤对或步骤对n n是否为质数作出判断。是否为质数作出判断。第一步
2、:第一步:给定大于给定大于2 2的整数的整数n n第二步第二步:2i 令第三步第三步:nir用 除以,得到余数第四步第四步:第五步第五步:0rnii判断是否成立,若是,则 不是质数,结束算法;否则将的值增加1,仍用 表示i 判断(n-1)是否成立,若是,则n是质数,结束算法否则,返回第三步开始开始输入输入ni=2i=i+1in或或r=0?n不是质数不是质数结束结束r=0?1否否是是求求n除以除以i的余数的余数r1n是质数是质数是是否否判断一个正整数是否是质数的算法自然语言描述图形描述第一步:判断第一步:判断n是否是否等于等于2?若?若n=2,则,则n是质数,否则,执行是质数,否则,执行第二步;
3、第二步;第二步:依次从第二步:依次从2(n-1)检验是不是)检验是不是n的因数,即能整除的因数,即能整除n的数,若有这样的的数,若有这样的数,则数,则n不是质数;不是质数;若没有,则若没有,则n是质数是质数。开始开始输入输入n求求n除以除以i的余数的余数i的值增加的值增加1,仍用仍用i表示表示in-1或或r=0?r=0?n不是质数不是质数n是质数是质数结束结束否否是是i=2判断一个正整数是否是质数的算法图形描述思考:思考:1、r的作用是什么的作用是什么?2、i的值增加的值增加1(i=i+1)有什么作用?有什么作用?3、整个图形中有哪、整个图形中有哪些基本的图形,各些基本的图形,各自的意义和作用
4、是自的意义和作用是什么?什么?开始开始输入输入n求求n除以除以i的余数的余数i的值增加的值增加1,仍用仍用i表示表示in-1或或r=0?r=0?n不是质数不是质数n是质数是质数结束结束否否是是i=2 程序框图又称流程图程序框图又称流程图,是一种用规定的图形、是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形指向线及文字说明来准确、直观地表示算法的图形.讲授新课讲授新课1.1.程序框图的概念程序框图的概念2.2.常见的程序框图常见的程序框图(ANSI,(ANSI,美国国家标准化协会美国国家标准化协会)流程线流程线连接循环框连接循环框连结点连结点连接循环框图的两部分连接循环框图的两部
5、分一、一、程序框图程序框图终端框终端框(起止框起止框)输入、输入、输出框输出框处理框处理框(执行框执行框)判断框判断框表示一个算法的表示一个算法的起始和结束起始和结束表示一个算法输表示一个算法输入和输出的信息入和输出的信息赋值、计算赋值、计算判断某一条件是否成立判断某一条件是否成立,成 立 时 在 出 口 处 标 明成 立 时 在 出 口 处 标 明“是是”或或“Y”,Y”,不成立不成立时标明时标明“否否”或或“N”.N”.(1)(1)起止框起止框:框内填写开始、结束框内填写开始、结束,任何程序框图中,任何程序框图中,起止框是必不可少的;起止框是必不可少的;(2)(2)输入、输出框输入、输出框
6、:框内填写输入、输出的字母、框内填写输入、输出的字母、符号等符号等;(3)(3)处理框处理框(执行框执行框):):算法中需要的算式、算法中需要的算式、公式、公式、对变量进行赋值等要用执行框表示对变量进行赋值等要用执行框表示.(4)(4)判断框判断框:当算法要求在不同的情况下执行不同当算法要求在不同的情况下执行不同的运算时,需要判断框的运算时,需要判断框.框内填写判断条件框内填写判断条件.3.3.四种基本框图的及其功能用法四种基本框图的及其功能用法:为了使大家彼此之间能够读懂各自画出的框图为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则必须遵守一些共同的规则,下面对一些常用的规则
7、下面对一些常用的规则作一简单的介绍作一简单的介绍.(1)(1)使用标准的框图符号使用标准的框图符号.(2)(2)框图一般按从上到下、从左到右的方向画框图一般按从上到下、从左到右的方向画.(3)(3)除判断框外,大多数程序框图符号只有一个进入除判断框外,大多数程序框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的点和一个退出点,判断框是具有超过一个退出点的唯一符号唯一符号.(4)(4)一类判断框是一类判断框是“是是”与与“否否”两分支的判断两分支的判断,而而且有且仅有两个结果且有且仅有两个结果;另一类是多分支判断另一类是多分支判断,有几种有几种不同的结果不同的结果.4.画流程图的规
8、则画流程图的规则(5)(5)在图形符号内描述的语言要非常简练清楚在图形符号内描述的语言要非常简练清楚.(7)(7)一个程序框图包括以下几部分一个程序框图包括以下几部分:表示相应操作的表示相应操作的程序框程序框;带箭头的流程线带箭头的流程线;程序框外必要的文字说程序框外必要的文字说明明(6)(6)起始框只允许一条流出线起始框只允许一条流出线,终止框只允许一条流终止框只允许一条流入线入线,输入框、输出框、处理框只有一条流入线和输入框、输出框、处理框只有一条流入线和一条流出线一条流出线,判断框有一条流入线和两条流出线判断框有一条流入线和两条流出线,但但任何时候只有一条流出线起作用任何时候只有一条流出
9、线起作用.开始开始输入输入ni=2i=i+1in或或r=0?n不是质数不是质数结束结束r=0?1否否是是求求n除以除以i的余数的余数r1n是质数是质数是是否否i=i+1in或或r=0?否否是是求求n除以除以i的余数的余数r输入输入ni=2n不是质数不是质数r=0?n是质数是质数是是否否 尽管不同的算法千差万别尽管不同的算法千差万别,但它们都是由三种基但它们都是由三种基本的逻辑结构构成的本的逻辑结构构成的,这三种逻辑结构就是顺序结构、这三种逻辑结构就是顺序结构、循环结构、选择结构循环结构、选择结构.下面分别介绍这三种结构下面分别介绍这三种结构 从上面的程序框图中从上面的程序框图中,不难看出以下三
10、种不同的逻不难看出以下三种不同的逻辑结构辑结构.二、二、顺序结构顺序结构及框图表示及框图表示1.顺序结构顺序结构:按照步骤依次执行的一个算法按照步骤依次执行的一个算法,称为具称为具有有“顺序结构顺序结构”的算法的算法,或者称为算法的顺序结构或者称为算法的顺序结构.语句语句A语句语句B2.顺序结构的流程图顺序结构的流程图 顺序结构是最简单的算法结构顺序结构是最简单的算法结构,语句与语句之间语句与语句之间,框与框之间是按框与框之间是按从上到下的顺序进行的从上到下的顺序进行的.它是由若它是由若干个处理步骤组成的干个处理步骤组成的,这这是任何一是任何一个算法都离不开的基本结构个算法都离不开的基本结构.
11、3.画顺序结构程序框图时注意画顺序结构程序框图时注意事项事项左图中左图中,语句和语句是依次执行的语句和语句是依次执行的,只有在执行完语句指定的操作后只有在执行完语句指定的操作后,才才能接着执行语句所指定的操作能接着执行语句所指定的操作(1)在程序框图中在程序框图中,开始框和结束框不可少;开始框和结束框不可少;(2)在算法过程中,第一步输入语句是必不可少的在算法过程中,第一步输入语句是必不可少的;(3)顺序结构在程序框图中的体现就是用流程线将顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来程序框自上而下地连接起来,按顺序执行算法步骤按顺序执行算法步骤【例例1 1】已知一个三角形的
12、三边边长分别为已知一个三角形的三边边长分别为2,3,4,2,3,4,利用海伦利用海伦秦九韶公式设计一个算法秦九韶公式设计一个算法,求出它的面求出它的面积积,画出算法的程序框图画出算法的程序框图.开始开始输出输出S结束结束()()()Sp p a p b p c 开始开始框框处理处理框框输出输出框框结束结束框框输入输入框框输入输入a,b,c()/2pabc【例例2】求两个实数求两个实数 a,b 的算术平均值的算术平均值 aver.S1:输入两个实数输入两个实数 a,b;S2:计算:计算 c=a+b;S3:计算计算 aver=c/2;S4:输出输出 aver.输出输出aver开始开始输入输入 ba
13、caver=c/2结结 束束解:用数学语言解:用数学语言【例例3 3】“鸡兔同笼鸡兔同笼”是我国隋朝时期的数学著作是我国隋朝时期的数学著作孙子算经孙子算经中的一个有趣而具有深远影响的题目中的一个有趣而具有深远影响的题目:“今有雉兔同笼今有雉兔同笼,上有三十五头上有三十五头,下有九十四足下有九十四足,问雉兔问雉兔各几何各几何.”请你设计一个这类问题的通用算法请你设计一个这类问题的通用算法.并画并画出算法的程序框图出算法的程序框图.设有设有X 只鸡只鸡,Y 只兔只兔.则则解解:鸡兔同笼鸡兔同笼,设鸡兔总头数为设鸡兔总头数为H,总脚数为总脚数为F,求鸡兔求鸡兔各有多少只各有多少只.算法算法分析分析如
14、下:如下:,24.XYHXYF 解方程组解方程组,得得(4)/2,(2)/2.XHFYFH 第一步第一步:输入总头数输入总头数H,总脚数总脚数F;第二步第二步:计算鸡的个数计算鸡的个数 x=(4H-F)/2;第三步第三步:计算兔的个数计算兔的个数 y=(F-2H)/2;第四步第四步:输出输出 x,y开始开始输出输出X,Y结束结束X=(4H-F)/2Y=(F-2H)/2输入输入H和和F解:用数学语言解:用数学语言程序框图程序框图第四步第四步:计算计算 ;【例例4】试描述求点试描述求点(x0,y0)到直线到直线Ax+By+C=0的距离的距离的算法的算法,并画出算法的程序框图并画出算法的程序框图.第
15、一步第一步:输入输入x0,y0,A,B,C;第二步第二步:计算计算Z1=Ax0+By0+C;第三步第三步:计算计算Z2=A2+B2;12|ZdZ 第五步第五步:输出输出d.解:用数学语言解:用数学语言开始开始输入输入x0,y0,A,B,CZ1=Ax0+By0+CZ2=A2+B2输出输出d结束结束12|zdz 程序框图程序框图课堂小结课堂小结2.2.顺序结构的特点顺序结构的特点1.1.程序框图程序框图:由于图形的描述方法既形象由于图形的描述方法既形象,又直观又直观,设计者的思路表达得清楚易懂,设计者的思路表达得清楚易懂,便于检查修改便于检查修改,所以得到广泛的应用所以得到广泛的应用.1.程序框图
16、的定义程序框图的定义:又称流程图又称流程图,是一种用规定的是一种用规定的图形、指向线及文字说明来准确、直观地表示图形、指向线及文字说明来准确、直观地表示算法的图形算法的图形.温故知新温故知新步骤步骤n步骤步骤n+13.基本逻辑结构:基本逻辑结构:(1)顺序结构:由若干个)顺序结构:由若干个依次执行的处理步骤组成的依次执行的处理步骤组成的.这是任何一个算法都离不这是任何一个算法都离不开的基本结构开的基本结构。2.基本程序框图及其功能;基本程序框图及其功能;已知梯形上底为已知梯形上底为2,下底为,下底为4,高为,高为5,求其面积,设计出该,求其面积,设计出该问题的流程图问题的流程图开始5,4,2h
17、bahbaS)(21输出S结束作业评析作业评析三三.条件结构条件结构-在一个算法中在一个算法中,经常会遇到一些条件的经常会遇到一些条件的判断判断,算法的流向根据条件是否成立有不同的流向算法的流向根据条件是否成立有不同的流向.条条件结构就是处理这种过程的结构件结构就是处理这种过程的结构.两种常见形式:两种常见形式:特征:两个步骤特征:两个步骤A,B根根据条件选择一个执行据条件选择一个执行特征:根据条件选择特征:根据条件选择是否执行步骤是否执行步骤A满足条件?满足条件?步骤步骤A步骤步骤B是是否否满足条件?满足条件?步骤步骤A是是否否任意给定任意给定3 3个正实数个正实数,设计一个算法设计一个算法
18、,判断分别以这判断分别以这3 3个数为三边边长的三角形是否存在个数为三边边长的三角形是否存在.画出这个算法画出这个算法的程序框图的程序框图.算法步骤算法步骤:第一步第一步:输入输入3个正实数个正实数a,b,c;第二步第二步:判断判断a+bc,a+cb,b+ca是否同时成立是否同时成立,若若是是,则能组成三角形则能组成三角形;若否若否,则组不成三角形则组不成三角形.例例5开始开始输入输入a,b,ca+bc,b+ca,c+ab是否是否同时成立?同时成立?是是存在这样的三角形存在这样的三角形结束结束否否不存在这样的三角不存在这样的三角形形程序框图:程序框图:3,a b c第一步:输入个系数24bac
19、第二步:计算算法步骤如下:算法步骤如下:0,;22bpqaa 第三步:判断是否成立。若是,则计算否则,输出“方程没有实数根”,结束算法。1212120;,xxpxpq xpqx x 第四步:判断是否成立。若是,则输出否则,计算并输出设计一个求解一元二次方程设计一个求解一元二次方程axax2 2+bx+c=0+bx+c=0的算法,并的算法,并画出程序框图表示画出程序框图表示.例例6程序框图程序框图:开始开始输入输入a,b,c=b2-4ac0?=0?否否x1=p+q输出输出x1,x2结束结束否否是是2bpa2qax2=p-q输出输出x1=x2=p是是输出输出“方程没有方程没有实数根实数根”abp2
20、aq2设计求一个任意数的绝对值设计求一个任意数的绝对值的算法,并画出的算法,并画出相应的流程图。相应的流程图。分析分析:根据绝对值的定义根据绝对值的定义,如果如果y=|x|,当当x0,y=x;当当x100100是否成立是否成立.若是,若是,则输出则输出S S,结束算法;否则,返回第二,结束算法;否则,返回第二步步.第一步,令第一步,令i=1i=1,S=0.S=0.第二步,计算第二步,计算S+iS+i,仍用,仍用S S表示表示.第三步,计算第三步,计算i+1i+1,仍用,仍用i i表示表示.思考思考5:5:用直到型循环结构,上述算法的用直到型循环结构,上述算法的程序框图如何表示?程序框图如何表示
21、?开始开始i=1i100?是是输出输出S结束结束S=0i=i+1S=S+i否否思考思考6:6:用当型循环结构,上述算法的程用当型循环结构,上述算法的程序框图如何表示?序框图如何表示?开始开始i=1结束结束输出输出S否否是是S=0S=S+ii100?i=i+1练习巩固1、设计一算法,求积:123100,画出流程图结束输出Si=1,S=1开始S=S*ii=i+1i100?否是思考:该流程图与前面的例中求和的流程图有何不同?例例2 2 某工厂某工厂20052005年的年生产总值为年的年生产总值为200200万元,技术革新后预计以后每年的年万元,技术革新后预计以后每年的年生产总值都比上一年增长生产总值
22、都比上一年增长5%.5%.设计一个程设计一个程序框图,输出预计年生产总值超过序框图,输出预计年生产总值超过300300万万元的最早年份元的最早年份.第三步,判断所得的结果是否大于第三步,判断所得的结果是否大于300.300.若是,则输出该年的年份;若是,则输出该年的年份;否则,返回第二步否则,返回第二步.第一步,第一步,输入输入20052005年的年生产总值年的年生产总值.第二步,计算下一年的年生产总值第二步,计算下一年的年生产总值.算法分析算法分析:(3 3)控制条件:当)控制条件:当“a a300”300”时终止循时终止循环环.(1 1)循环体:设)循环体:设a a为某年的年生产总值为某年
23、的年生产总值,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.循环结构循环结构:开始开始n=2005a=200t=0.05aa=a+tn=n+1a300?结束结束输出输出n是是否否程序框图程序框图:2、设计一算法输出、设计一算法输出11000以内能被以内能被3整除的整数整除的整数结束结束i=i+1i=i+1i1000?ib?ac?是是x=a是是x=c否否bc?否否x=b是是x=c否否输出输出x结束结束第二步第二
24、步,令令i=i=第三步第三步,用用i i除除n n,得到余数,得到余数r r 第四步第四步,判断判断“r r0 0”是否成立。若是,是否成立。若是,则则i是是n n的因数的因数;否则;否则i i不是不是n n的因数。的因数。第六步第六步,判断判断“in”in”是否成立。若是,输出是否成立。若是,输出因数,结束算法;否则,返回第三步。因数,结束算法;否则,返回第三步。第一步,给定大于的正整数第一步,给定大于的正整数n n作业讲评:作业讲评:任意给定一个大于的正整数任意给定一个大于的正整数n,试试设计一个算法求出设计一个算法求出n的所在因数的所在因数.算法算法:第五步,将第五步,将i i的值增加的
25、值增加1 1,仍用仍用i i表示。表示。开始开始输入输入ni=求求n除以除以i的余数的余数ri=i+1in?是是否否i是是n的因数的因数结束结束是是r=0?用程序框图来表示算法,常有用程序框图来表示算法,常有三种不同的基本逻辑结构:三种不同的基本逻辑结构:否否顺序结构顺序结构条件结构条件结构直到型循直到型循环结构环结构(3 3)条件结构和循环结构的程序框图)条件结构和循环结构的程序框图各有两种形式,相互对立统一各有两种形式,相互对立统一.条件结构和循环结构的基本特征:条件结构和循环结构的基本特征:小结作业小结作业(1 1)程序框图中必须有两个起止框,)程序框图中必须有两个起止框,穿插输入、输出
26、框和处理框,一定有判穿插输入、输出框和处理框,一定有判断框断框.(2 2)循环结构中包含条件结构,条件结)循环结构中包含条件结构,条件结构中不含循环结构构中不含循环结构.五.程序框图的画法题型一:设计算法解决实际问题例题讲解例题讲解例1、用程序框图表示用二分法求方程x2-2=0的近似解的算法。f(x)=x2-2输入精确度输入精确度d和初始值和初始值a,b2abm哪些步骤可以用顺序结构表示?如何表示?题型一:设计算法解决问题例题讲解例题讲解例1、用程序框图表示用二分法求方程x2-2=0的近似解的算法。第四步可以用什么结构表示?如何表示?f(a)f(m)0?a=mb=m是是否否题型一:设计算法解决问题例题讲解例题讲解例1、用程序框图表示用二分法求方程x2-2=0的近似解的算法。哪几个步骤可以用循环结构表示?第三步第三步第四步第四步|a-b|d或或f(m)=0?输出输出m是是否否根据上述分析,画出表示根据上述分析,画出表示整个算法的程序框图。整个算法的程序框图。开始开始结束结束f(a)f(m)0??a=mb=m是是否否|a-b|10201.614121