1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.1.2,程序框图,襄阳一中,教学目标,1,知识与技能:通过设计流程图来表达解决问题的过程,了解流程图的三种基本逻辑结构:顺序、条件、循环。理解掌握前两种,能设计简单的流程图。,2,过程与方法:通过模仿、操作和探索,抽象出算法的过程,培养抽象概括能力、语言表达能力和逻辑思维能力。,3,情感与价值观:通过算法实例,体会构造的数学思想方法;提高学生欣赏数学美的能力,培养学生学习兴趣,增强学好数学的信心;通过学生的积极参与、大胆探索,培养学生的探索精神和合作意识。,一、复习,1,、算法的定义,2,、算法的表示,
2、3,、算法的特点,4,、算法的作用,二、算法的表示,1.,用自然语言表示,2.,用程序框图表示,第一步:判断,n,是否等于,2.,若,n=2,则,n,是质数,;,若,n2,则执行第二步,.(?),第二步,:,依次从,2,到,(n-1),检验是不是,n,的因数,即整除,n,的数,若有这样的数,则,n,不是质数,;,若没有这样的,数,则,n,是质数,.(,怎样依次检验,?),(,用,2,去除,n,,得到余数,t.,用,3,去除,n,,得到余数,t.,用(,n-1,)去除,n,,得到余数,t.),例,1,任意给定一个大于,1,的整数,n,,试设计一个程序,或步骤对,n,是否为质数做出判定。,用程序框
3、图表示下列算法:,任意给定一个大于,1,的整数,n,,试设计一个程序或步骤对,n,是否为质数做出判定。,开始,输入,n,flag=1,n2?,d=2,是,d,整除,n?,flag=0,d=n-1,且,flag=1?,flag=1?,n,是质数,结束,是,d=d+1,否,否,n,不是质数,否,flag,是用来记录判断结果的,:,当,flag,1,时为还未试出,n,的因数,,当,flag,0,时为己经找到,n,的因数。,是,否,是,二、算法的表示,1.,用自然语言表示,优点是使用日常用语,通俗易懂,缺点是文字冗长,容易出现歧义,2.,用程序框图表示,:,用图框表示各种操作,优点是直观形象,易于理解
4、比较自然语言与程序框图表示方法的各自特点,程序框图,程序框图(也称为流程图)是最常用的一种表示法,它是描述计算机一步一步完成任务的图表,直观地描述程序执行的控制流程,最便于初学者掌握。,终端框,处理框,输入输出框,判断框,流程线,常用流程图符号,表示一个算法的起始和结束,表示一个算法输入和输出的信息,判断某一条件是否成立,成立时在,出口处标明“是”或“,Y”,;不成立时,标明“否”或“,N”.,赋值、计算,表示流程的路径和方向,三种基本结构(,表示一个算法的基本单元,),顺序结构,条件结构(,选择结构,),循环结构,A,B,P,A,B,成立,不,成立,成立,A,P,不成立,A,P,成立,不,
5、成立,While,(,当型,)循环,Until,(,直到型,)循环,Flag=1,输入,n,否,d2?,是,条件结构,顺序结构,循环结构,算法三种基本逻辑结构,开始,结束,循环体中可以有条件结构或循环结构,d,c,a+c,b,b+c,a,是否同时成立,存在这样的三角形,结束,否,是,不存在这样的三角形,循环结构,成立,A,P,不成立,A,P,成立,不,成立,While,(,当型,)循环,Until,(,直到型,)循环,在一些算法中,从某处开始,按照一定条件,,反复执行某一处理步骤的情况,这就是循环结构。反复执行的,处理步骤称为循环体。,在循环结构中,通常都有一个起到循环计数作用的变量,这个,变
6、量的取值一般都含在执行或中止循环体的条件中。,例,3,设计一个计算,1+2+3+100,的值的算法,并画出程序框图。,算法分析:,需要一个累加变量和一个计数变量,将累加变量的初始值,设为,0,,计数变量的值可以从,1,到,100.,i100?,输出,S,否,是,直到型,例题,4,设计一个求三个数的最大值的算法,并画出程序框图,.,算法分析,:,S1:,比较前两个数的大小,若第一个数大,则令第一个数为,max,否则,令第二个数为,max;,S2:,比较,max,与第三个数的大小,若,max,大,则得出结果为,max,否则,令第三个数为,max;,S3:,输出结果,max.,开始,输入,a,b,c
7、ab,是,max=a,否,max=b,maxc,是,max=,max,否,max=c,输出,输出,max,结束,是,练习,1.,设计一个求任意数的绝对值的算法,并画出程序框图,.,算法分析,:,第一步,:,输入数,x;,第二步,:,判断,x0,是否成立,?,若是,则,|x|=x;,若否,则,|x|=-x.,程序框图,:,开始,输入,x,x0?,输出,x,否,输出,-x,结束,练习,2,对任意正整数,n,设计一个算法求,的值,并画出程序框图,.,开始,输入,n,i=1,S=0,i=i+1,in,输出,S,结束,是,否,开始,输入正整数,n,输入,S,的值,结束,S=0,i=1,S=S+1/i,
8、i=i+1,in,Y,N,步骤,A,步骤,B,思考,:,将步骤,A,和步骤,B,交换位置,结果会怎样?能达到预期结果吗?为什么?要达到预期结果,还需要做怎样的修改?,例,用二分法求解方程,求关于,x,的方程,x,2,2,0,的根,精确到,0.005,算法描述,第一步,令,f(x,)=x,2,-2,,因为,f(1)0,,所以设,x,1,=1,,,x,2,=2,第二步,令,m=(x,1,+x,2,)/2,,判断,f(m,),是否为,0,,若是,则,m,为所求,否则,则继续判断,f(x,1,)f(m),大于,0,还是小于,0,。,第三步,若,f(x,1,)f(m)0,则令,x,1,=m,,否则,x,
9、2,=m,。,第四步,判断,|x,1,-x,2,|0.005,是否成立?若是则,x,1,、,x,2,之间的任意值均为满足条件的近似值;否则返回第二步。,开始,x,1,=1,:,x,2,=2,f,(,x,)=,x,2,2,x,1,=,m,x,2,=,m,m,=(,x,1,+,x,2,)/2,x,1,=,m,x,2,=,m,f,(,m,)=0?,f,(,x,1,),f,(,m,)0,|,x,1,-,x,2,|0.005,结束,输出所求的近似根,m,m,=(,x,1,+,x,2,)/2,是,否,否,是,否,是,流程图表示,第一步,令,f(x,)=x,2,-2,,因为,f(1)0,,所以设,x,1,=1,,,x,2,=2,第二步,令,m=(x,1,+x,2,)/2,,判断,f(m,),是否为,0,,若是,则,m,为所求,否则,则继续判断,f(x,1,)f(m),大于,0,还是小于,0,。,第三步,若,f(x,1,)f(m)0,则令,x,1,=m,,否则,x,2,=m,。,第四步,判断,|x,1,-x,2,|0.005,是否成立?若是则,x,1,、,x,2,之间的任意值均为满足条件的近似值;否则返回第二步。,






