1、一、复习回想一、复习回想1、什么是算法?、什么是算法?算法普通是指按照一定规则解决某一类算法普通是指按照一定规则解决某一类问题的明确和有限的环节。问题的明确和有限的环节。明确性明确性 有限性有限性2、算法有哪些特性?、算法有哪些特性?二、讲授新课二、讲授新课 1、程序框图、程序框图(1)程序框图的概念)程序框图的概念 程程序序框框图图又又称称流流程程图图,是是一一种种用用程程序序框框、流流程线及文字阐明来精确、直观地表达算法的图形程线及文字阐明来精确、直观地表达算法的图形.在程序框图中,一种或几个程序框的组合表在程序框图中,一种或几个程序框的组合表达算法中的一种环节;带有方向箭头的流程线将达算
2、法中的一种环节;带有方向箭头的流程线将程序框连接起来,表达算法环节的执行次序。程序框连接起来,表达算法环节的执行次序。图形符号图形符号名称名称功能功能终端框终端框(起止框起止框)输入、输出框输入、输出框解决框解决框(执行框执行框)判断框判断框表达一种算法的起始和结束表达一种算法的起始和结束表达一种算法输入和输出的信息表达一种算法输入和输出的信息赋值、计算赋值、计算判判断断某某一一条条件件与与否否成成立立,成成立立时时在在出出口口处处标标明明“是是”或或“Y”,不不成立时标明成立时标明“否否”或或“N”.(2)构成程序框图的图形符号及其功效)构成程序框图的图形符号及其功效流程线流程线连接程序框连
3、接程序框连结点连结点连接程序框图的两部分连接程序框图的两部分6N不是质数是否判断整数n(n2)与否为质数程序框图范例:开始输入ni=2求n除以i的余数ri的值增加1,仍用i表达in-1或r=0?r=0?N是质数结束是否设n是一种不不大于2的整数普通用i=i+1表达开始开始求求n除以除以i的余数的余数ri=2输入输入ni in-1n-1?r=0?输输出出“n是是 质质 数数”是是i的值增加的值增加1,仍用仍用i表示表示否否输输出出“n不不是质数是质数”是是结束结束否否 学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则以下:1、使用原则的图形符号。2、框图普通按从上到下
4、、从左到右的方向画。3、除判断框外,大多数流程图符号只有一种进入 点和一种退出点。判断框是含有超出一种退出 点的唯一符号。4、判断框分两大类,一类判断框是“是”与“否”两分 支的判断,并且有且仅有两个成果;另一类是 多分支判断,有几个不同的成果。5、在图形符号内描述的语言要非常简洁清晰。练 习1、下列有关程序框图的说法对的的是 ()A、程序框图是描述算法的语言B、程序框图能够没有输出框,但必须要有输入框给变量赋值C、程序框图能够描述算法,但不如自然语言描述算法直观D、程序框图和流程图不是一种概念2、下列功效“”没有功效的是 ()A、赋值 B、计算 C、判断 D、以上都不对开始输入ni=2求n除
5、以i的余数ri的值增加1,仍用i表示in-1或r=0?r=0?N不是质数N是质数结束是否是否开始结束求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2次序构造循环构造条件构造2.2.算法的三种基本逻辑构造:次序构造、条件构造、循环构造。算法的三种基本逻辑构造:次序构造、条件构造、循环构造。求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2次序构造循环构造条件构造 算法千差万别,但都是由这三种基本逻辑构造构成的.你能说出这三种基本逻辑构造的特点吗?条件构造与循环构造有什么区别和联系?(
6、1 1)次序构造)次序构造 次序构造是最次序构造是最简朴的算法构造,朴的算法构造,语句与句与语句句之之间,框与框之,框与框之间是按从上到下的次序是按从上到下的次序进行的,行的,它是由若干个依次它是由若干个依次执行的解决行的解决环节构成的,它是构成的,它是任何一种算法都离不开的一种基本算法构造。任何一种算法都离不开的一种基本算法构造。次序构造在程序框次序构造在程序框图中的体中的体现就是用流程就是用流程线将程序框自上而下地将程序框自上而下地连接起来,按次序接起来,按次序执行算法行算法环节。环节n环节n1 例例3 已知一种三角形的三边长分别为已知一种三角形的三边长分别为a,b,c,运用海伦运用海伦-
7、秦九韶公式设计一种计算三角形面积的算法,秦九韶公式设计一种计算三角形面积的算法,并画出程序框图表达并画出程序框图表达.算法环节:算法环节:第一步,输入三角形三边长第一步,输入三角形三边长 a,b,c第二步,计算第二步,计算第三步,计算第三步,计算第四步,输出第四步,输出s.程序框图:程序框图:结束结束开始开始输入输入a,b,c输出输出s练 习1 1、已知摄氏温度、已知摄氏温度C C与华氏温度与华氏温度F F之间的关系为之间的关系为F=1.8C+32F=1.8C+32。设计一种由摄氏温度求华氏温度。设计一种由摄氏温度求华氏温度的算法,并画出对应的程序框图。的算法,并画出对应的程序框图。算法环节:
8、算法环节:第一步:输入摄氏温度第一步:输入摄氏温度C C;第二步:计算第二步:计算1.8C+321.8C+32,并,并 将这个值记为华氏温度将这个值记为华氏温度F F;第三步:输出华氏温度第三步:输出华氏温度F F。例4、已知两个变量A和B的值,试设计一种交换这两个变量的值的算法,并画出程序框图。第一步、输入A、B第二步、令X=A第三步、令A=B第四步、令B=X第五步、输出A、B练 习2 2、已知变量、已知变量A A、B B、C C的值,试设计一种算法的值,试设计一种算法程序框图,使得程序框图,使得A A为为B B的值,的值,B B为为C C的值,的值,C C为为A A的值。的值。第一步、输入
9、A、B、C第二步、令X=A第三步、令A=B第四步、令B=C第五步、令C=X第六步、输出A、B、C的值(2 2)条件构造)条件构造 在一种算法中,在一种算法中,经常会碰到某些条件的判断,常会碰到某些条件的判断,算法的流程根据条件与否成立有不同的流向算法的流程根据条件与否成立有不同的流向.条件条件构造就是解决构造就是解决这种种过程的构造程的构造.分分类是算法中是算法中经常常发生的事情,条件构造的生的事情,条件构造的重要作用就是表达分重要作用就是表达分类.条件构造可用程序框条件构造可用程序框图表达表达为下面两种形式下面两种形式.环节A环节B满足条件?否是环节A满足条件?否是 例4 任意给定3个正实数
10、,设计一种算法,判断分别以这3个数为三边边长的三角形与否存在.画出这个算法的程序框图.条件构造 算法环节以下:第一步,输入3个正实数a,b,c.第二步,判断a+bc,a+cb,b+ca与否同时成立.若是,则存在这样的三角形;否则,不存这样的三角形.条件构造例5 设计一种求解一元二次方程的算法,并画出程序框图表达.开 始输入a,b,c=4ac0?0?输出 ,结 束方程无实数根输出x否是是否例5程序框图也可设计为例6、设计一个算法计算分段函数 ,的函数值,并画出程序框图。第一步、输入x第二步、判断“x0”与否成立,若是,则输出y=0,否则执行第三步;第三步、判断“x3,则费用为m=5(x-3)1.
11、2=1.2x+1.4;若x3,则费用为m5.第三步,输出m.练 习1、设计一种算法判断任意给定一种整数N是奇数还是偶数,并画出程序框图;2、已知函数 ,设计一种算法求对应的函数值,并画出程序框图。(3)循环构造循环构造指的是按照一定的条件重复执行的某些算法环节.重复执行的环节称为循环体.循环体满足条件?否是循环体满足条件?否是 执行一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.在每次执行循环体前,对条件进行判断,当条件满足,执行循环体,否则终止循环.例7 设计一种计算1+2+3+100的值的算法,并画出程序框图.第一步:拟定首数a,尾数b,项数n;第二
12、步:运用公式“S=n(a+b)/2”求和;第三步:输出求和成果。算法1:开始结束输入a,b,nS=n(a+b)/2输出S开始i=1S=0i=i+1S=S+ii100?输出S结束否是 例7 设计一种计算1+2+3+100的值的算法,并画出程序框图.第1步,011.第2步,123.第3步,336.第4步,6410.第100步,49501005050.算法2:第一步,令i1,S0.第二步,若i 100成立,则执行第三步;否则,输出S,结束算法.第三步,SSi.第四步,i=i+1,返回第二步.当型循环构造(1)拟定循环体:i=i+1 s=s+i(2)初始化变量:i=1 s=0(3)循环控制条件:i10
13、0结束s=s+ii=i+1i100?输出S否是i=0;S=0开始结束输出Si=0;S=0开始S=s+ii=i+1i100?否是循环构造直到型构造当型构造 例7 设计一种计算1+2+3+100的值的算法,并画出程序框图.s=s+ii=i+1 解决办法就是加上一种判断,判断与否已经加到了100,如果加到了则退出,否则继续加。直到型构造当型构造s=s+ii=i+1是否s=s+ii=i+1否是i i100?100?i100?i100?请填上判断的条件。在解题的过程中,用累加变量S表达每一步的计算成果,即把S+i的成果仍记为S,从而把第i步表达为S=Si,其中S的初始值为0,i依次取1,2,100.由于
14、i同时统计了循环的次数,因此也称为计数变量.循环构造中都有一种计数变量和累加变量,计数变量用以统计循环次数,同时它的取值还用于判断循环与否终止,累加变量用于输出结果,累加变量和计数变量普通是同时执行的,累加一次,计数一次.例8 某工厂2005年的年生产总值为200万元,技术革新后预计后来每年的年生产总值都比上一年增加5.设计一种程序框图,输出预计年生产总值超出300万元的最早年份.算法环节:第一步,输入2005年的年生产总值.第二步,计算下一年的年生产总值.第三步,判断所得的成果与否不不大于300.若是,则输出该年的年份;否则,返回第二步.结束开始输出na=200t=0.05a a=a+tn=
15、n+1a300?Y Yn=2005N N(1)拟定循环体:设a为某年的年生产总值,t为年生产总值的年增加量,n为年份,则循环体为t=0.05a,a=a+t,n=n+1.(2)初始化变量:n=2005,a=200.(3)循环控制条件:a300结束开始输入na=200t=0.05aa=a+tn=n+1a300?Y Yn=2005N N结束开始输入na=200t0.05aaa+tnn+1a300?N Nn=2005Y Y直到型当型1.对任意正整数n,的值,并画出程序框图.结束开始输入一种正整数n输出S的值S=0i=1S=S+1/ii=i+1inY YN N设计一种算法求练练 习习 2.设计一算法,求
16、积:123100,画出流程图.结束输出Si=0,S=1开始i=i+1S=S*ii100?否是练练 习习求 的值解:算法环节:第一步,令i=1,s=0.第二步,若成立,则执行第三步,否则,输出s.第三步,计算s=s+i2 第四步,计算i=i+1,返回第二步.开始i=1S=0i=i+1S=S+i2i100?输出S结束否是当型循环构造3、P.20习题习题A组第组第2题题小结1、循环构造的特点2、循环构造的框图表达3、循环构造该注意的问题避免死循环的出现,设立好进入(结束)循环体的条件。当型和直到型重复同一种解决过程开始输入50米跑成绩rr6.8n9?结束NYYNP.20习题习题1.1B组第组第2题题 算法环节:第一步,令计算变量n1.第二步,输入一种成绩r,判断r与6.8的大小,若r6.8,则执行下一步;若r6.8,则输出r,并执行下一步.第三步,令nn1.第四步,判断计数变量n与成绩个数9的大小,若n9,则返回第二步,若n9,则结束算法.n1nn1输出r