1.1.2程序框图与算法的基本逻辑结构一、程序框图1、程序框图概念程序框图,又称流程图,是一种用程序框、流程线及文字说明来准确、直观的表示算法的图形.基本的程序框和它们各自表示的功能如下:图形符号名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示一个算法输入和输出的信息处理框(执行框)判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”.判断框赋值、计算流程线连接程序框连接点连接程序框图的两部分步骤如何?是否为质数”的算法“判断整数引例、)2(][2nn返回第三步。结束算法;否则是质数则若是是否成立判断第五步表示;仍用的值增加则若否结束算法不是质数则若是是否成立判断第四步得到余数除用第三步令第二步的整数给定一个大于第一步,,,,)1(,1,;,,.0;,;2;2nniiinrrniin开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数ri=2输入ni的值增加1,仍用i表示in-1或r=0?是是结束否否i=i+1开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数ri=2输入ni的值增加1,仍用i表示in-1或r=0?是是结束否否求n除以i余数ri的值增加1,仍用i表示in-1或r=0?否i=2输入nr=0?输出“n是质数”输出“n不是质数”是否顺序结构循环结构条件结构开始结束是(1)顺序结构的形式为课堂互动讲练(1)顺序结构-----是由若干个依次执行的处理步骤组成的.这是任何一个算法都离不开的基本结构.、算法的基本逻辑结构31.任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.第一步:输入任意一个正实数r;第二步:计算圆的面积:S=πr2;第三步:输出圆的面积S.开始S=πr2结束输入正实数r输出S例1、写出图1、图2中程序框图的运行结果:开始输入a,ba=2b=4S=a/b+b/a输出S结束(1)图中输出S=;52开始输入a,bsum=a+b输出sum结束(2)右图算法的功能是。求两数的和解:求面积的算法:第一步:输入三角形三条边的长a、b、c;第二步:计算第三步:计算第四步:输出三角形的面积S()()()Sppapbpc2abcp2abcp()()()Sppapbpc输出S例3、已知一个三角形的三边边长分别是a,b,c,利用海伦-秦九韶面积公式,求三角形的面积.开始结束输入a,b,c顺序结构的程序框图的基本特征:(2)各程序框从上到下用流程线依次连接.(1)必须有两个起止框,穿插输入、输出框和处理框,没有判断框.(3)处理框按计算机执行顺序沿流程线依次排列.r=0?输出“n是质数”输出“n不是质数”是否条件结构(2)条件结构---在一算法中,经常会遇到一些条件的判断,算法的流向根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.条件结构满足条件?步骤A步骤B是否(1)满足条件?步骤A是否(2)分类是算法中经常发生的事情,条件结构的主要作用就是表示分类.[例4]任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.算法分析:第一步:输入3个正实数a,b,c;第二步:判断a+bc,a+cb,b+ca是否同时成立,若是,则能组成三角形;若否,则组不成三角形.第一步:输入3个正实数a,b,c;第二步:判断a+bc,a+cb,b+ca是否同时成立,若是,则能组成三角形;若否,则组不成三角形.程序框图:开始输入a,b,ca+bc,a+cb,b+ca是否同时成立?是存在这样的三角形不存在这样的三角形否结束第一步:输入3个正实数a,b,c;第二步:判断a+bc,a+cb,b+ca是否同时成立,若是,则能组成三角形;若否,则组不成三角形.设计一个求任意数的绝对值的算法,并画出程序框图第一步:输入x;第二步:如果x≥0,那么输出函数值x;如果x0,那么输出函数值-x;程序框图开始输入xx≥0?是输出x结束输出-x否算法步骤:练习根据下面的程序框图,写出相应的函数解析式0,11310,121,xxxxxxy开始输入xX1?输出y结束否是X0?y=3x-11y=xy=2x-1是否作业:课本P20B组第1题第二步,计算算法步骤:第一步,输入a1,b1,c1,a2,b2,c2.第三步,输出x,y1221122112212112,babacacaybabacbcbx..052并画出程序框图的算法方程设计一个求解一元二次例cbxaxcb,输入三个系数a,:第一步4acb计算Δ:第二步2结束算法.,方程没有实数根输出否则,;2aΔq,2ab则计算p若是,0是否成立,判断Δ:第三步212121x,输出xq,pxq,p计算x否则,p;x则输出x若是,0是否成立,判断Δ:第四步cb,输入三个系数a,:第一步4acb计算Δ:第二步2结束算法.,没有实数根方程输出否则,;2aΔq,2ab则计算p若是,0是否成立,判断Δ:第三步212121x,输出xq,pxq,p计算x否则,p;x则输出x若是,0是否成立,判断Δ:第四步开始输入a,b,c4acbΔ2△≥0?2abp2aΔq△=0?qpx1qpx2结束输出x1,x2输出p输出方程没有实根是否是否求n除以i余数ri的值增加1,仍用i表示in-1或r=0?否循环结构算法的循环结构在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体.(3)循环结构----有两种形式,即当型和直到型.这两种形式的循环结构在执行流程上有所不同.某些循环结构用程序框图可以表示为:循环体满足条件?是否这种循环结构称为直到型循环结构在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.还有一些循环结构用程序框图可以表示为:循环体满足条件?是否这种循环结构称为当型循环结构在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环.循环结构一定含有条件结构吗?提示:一定,在循环结构中需要判断是否继续循环,故循环结构一定含有条件结构.例6:设计一个计算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同时记录了循环的次数,所以也称为计数变量.第二步,如果i≤100成立,则执行第三步,否则,输出S,结束算法.第一步,令i=1,S=0.第三步,S=S+i.第四步,i=i+1,返回第二步.程序框图:开始i=1结束输出S否是S=0S=S+ii≤100?i=i+1当型循环结构第二步,如果i≤100成立,则执行第三步,否则,输出S,结束算法.第一步,令i=1,S=0.第三步,S=S+i.第四步,i=i+1,返回第二步.算法步骤:如果用直到型循环结构,上述算法的程序框图如何表示?开始i=1i100?是输出S结束S=0i=i+1S=S+i否第四步,判断i100是否成立.若是,则输出S,结束算法;否则,返回第二步.第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.i=i+1S=S+i解决方法就是加上一个判断,判断是否已经加到了100,如果加到了则退出,否则继续加。直到型结构当型结构i=i+1S=S+i是否i=i+1S=S+i否是i100?i≥100?请填上判断的条件。画程序框图的规则如下:1、使用标准的图形符号。2、框图一般按从上到下、从左到右的方向画。3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框是具有超过一个退出点的唯一符号。4、判断框分两大类,一类判断框是“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。5、在图形符号内描述的语言要非常简练清楚。执行右面的程序框图,如果输入的N是6,那么输出的p是()(A)120(B)720(C)1440(D)5040开始输入NK=1,p=1p=p·kKN输出p结束是否k=k+1某程序框图如图所示,则该程序运行后输出的k的值是_______执行如图所示的程序框图,若输入A的值为2,则输出的P值为()(A)2(B)3(C)4(D)5执行下面的程序框图,输出的T=___.解析:第一次循环,S=5,n=2,T=2第二次循环,S=10,n=4,T=6第三次循环,S=15,n=6,T=12第四次循环,S=20,n=8,T=20第五次循环,S=25,n=10,T=30循环终止,此时T=30.答案:30变式:如果执行如右图的程序框图,输入x=-2,h=0.5,那么输出的各个数的和等于()A.3B.3.5C.4D.4.5解析:由框图可知,当x=-2时,y=0.当x=-1.5时,y=0;x=-1时,y=0;x=-0.5时,y=0;x=0时,y=0;x=0.5时,y=0.5;x=1时,y=1;x=1.5时,y=1;x=2时,y=1.∴输出的各数之和为3.5.答案:B题型二:程序框图的补充1、求1-1000内所有奇数的和。设计的算法框图如右,应该在空格位置填入什么条件?分析:空格位置是循环体部分,应考虑需要量重复执行的步骤是什么?以及步骤的执行顺序如何?应该填入:S=S+ii=i+2作业:课本P20A组第2题例7某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.第三步,判断所得的结果是否大于300.若是,则输出该年的年份;否则,返回第二步.第一步,输入2005年的年生产总值.第二步,计算下一年的年生产总值.算法分析:(3)设定循环控制条件:当“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是否程序框图读程序框图,近几年高考热点,主要考查三种基本逻辑结构的理解以及对数据的处理能力.题型一:读程序框图