1、算法与程序框图,1.1.2 程序框图,从上节课我们知道:算法可以用自然语言来描述.如例1,为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它.,设n是一个大于2的整数.,一般用i=i+1表示.,i=i+1,说明:i表示从2(n-1)的所有正整数,用以判断例1步骤2是否终止,i是一个计数变量,有了这个变量,算法才能依次执行.逐步考察从2(n-1)的所有正整数中是否有n的因数存在.,思考?通过上述算法的两种不同表达方式的比较,你觉得用程序框图来表达算法有哪些特点?,用程序框图表示的算法更加简练,直观,流向清楚.,程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观
2、地表示算法的图形.,通常,程序框图由程序框和流程线组成.,一个或几个程序框的组合表示算法中的一个步骤;,流程线是方向箭头,按照算法进行的顺序将程序 框连接起来.,基本的程序框和它们各自表示的功能如下:,终端框(起止框),表示一个算法的起始和结束,输入、输出框,表示一个算法输入和输出的信息,处理框(执行框),判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不”成立时标明“否”或“N”.,判断框,赋值、计算,流程线,连接程序框,连接点,连接程序框图的两部分,顺序结构,用程序框图来表示算法,有三种不同的基本逻辑结构:,条件结构,循环结构,程序框图的三种基本的逻辑结构,顺序结构,条件结构,循环
3、结构,(1)顺序结构-是由若干个依次执行的处理步骤组成的.这是任何一个算法都离不开的基本结构.,例1:已知一个三角形的三边边长分别为2,3,4,利用海伦-秦九韶公式设计一个算法,求出它的面积,画出算法的程序框图.,算法分析:,第一步:计算p的值.,第二步:由海伦-秦九韶公式求出三角形的面积S.,第三步:输出S的值.,(1)顺序结构-是由若干个依次执行的处理步骤组成的.这是任何一个算法都离不开的基本结构.,例1:已知一个三角形的三边边长分别为2,3,4,利用海伦-秦九韶公式设计一个算法,求出它的面积,画出算法的程序框图.,算法分析:,第一步:计算p的值.,第二步:由海伦-秦九韶公式求出三角形的面
4、积S.,第三步:输出S的值.,程序框图:,开始,输出S,结束,画出:已知三角形的三边长a,b,c,求它的面积的程序框图.,开始,输出S,结束,输入a,b,c,已知三角形三边长分别为a,b,c,则三角形的面积为其中 这个公式被称为海伦秦九韶公式.,返回,(2)条件结构-在一个算法中,经常会遇到一些条件的判断,算法的流向根据条件是否成立有不同的流向.条件结构就是处理这种过程的结构.,例2:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.,算法分析:,第一步:输入3个正实数a,b,c;,第二步:判断a+bc,a+cb,b+ca是否同时成立,若是
5、,则能组成三角形;若否,则组不成三角形.,程序框图:,开始,输入a,b,c,a+bc,a+cb,b+ca是否 同时成立?,是,存在这样的 三角形,不存在这样的 三角形,否,结束,例3:为了加强居民的节水意识,某市制订了以下生活用水收费标准:每户每月用水未超过7m3时,每立方米收费1.0元,并加收0.2元的城市污水处理费;超过7m3的部分,每立方米收费1.5元,并加收0.4元的城市污水处理费,请你写出某户居民每月应交纳的水费y(元)与用水量x(m3)之间的函数关系,然后设计一个求该函数值的算法,并画出程序框图.,解:y与x之间的函数关系为:,(当0x7时) (当x7时),解:y与x之间的函数关系
6、为:,(当0x7时) (当x7时),算法分析:,第一步:输入每月用水量x; 第二步:判断x是否不超过7.若是,则y=1.2x;若否,则y=1.9x-4.9. 第三步:输出应交纳的水费y.,开始,输入x,0x7?,是,y=1.2x,否,y=1.9x-4.9,输出y,结束,程序框图,例4.画程序框图,对于输入的x值,输出相应的y值.,开始,程序框图,x0?,是,y=0,否,0x1?,是,y=1,否,y=x,输出y,结束,输入x,是,例5.设计一个求任意数的绝对值的算法,并画出程序框图.,算法分析:,第一步:输入数x; 第二步:判断x0是否成立?若是,则|x|=x;若否,则|x|=-x.,程序框图:,开始,输入x,x0?,输出x,否,输出-x,结束,返回,作业: P20页A组T1; (画出程序框图),