1、1.1.2 1.1.2 程序框图程序框图算法初步复习1、算法的概念2、算法的特点3、常见的几个例子4、判断一个正整数是否是质数的算法算法的概念算法是指解决给定问题的有穷操作步骤的描述,简单的说,算法就是解决问题的步骤和方法。算法的基本特点1、有穷性一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。2、确定性算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。3、可行性算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果。判断一个正整数是否是质数的算法自然语言描述图形描述第一步:判断第一步:判断n是否是否等于等于2?若?若n=2,则,
2、则n是质数,否则,执行是质数,否则,执行第二步;第二步;第二步:依次从第二步:依次从2(n-1)检验是不是)检验是不是n的因数,即能整除的因数,即能整除n的数,若有这样的的数,若有这样的数,则数,则n不是质数;不是质数;若没有,则若没有,则n是质数。是质数。开始开始输入输入nn=2?d=2flag=0d=d+1d整除整除n?d=n-1且且flag=1?flag=1?n是质数是质数n不是质数不是质数结束结束是否否是否是否是判断一个正整数是否是质数的算法图形描述开始开始输入输入nn=2?d=2flag=0d=d+1d整除整除n?d=n-1且且flag=1?flag=1?n是质数是质数n不是质数不是
3、质数结束结束是否否是否是否思考:思考:1、flag的作用是的作用是什么?什么?2、d=d+1是什么是什么意思?意思?3、整个图形中有哪、整个图形中有哪些基本的图形,各些基本的图形,各自的意义和作用是自的意义和作用是什么?什么?是程序框图又称流程图,是一种用规定的图形,指向线及程序框图又称流程图,是一种用规定的图形,指向线及文字说明来准确、直观地表示算法的图形。文字说明来准确、直观地表示算法的图形。程序框名称功能终端框(起止框)表示一个算法的起始和结束输入、输出框表示算法的输入和输出的信息处理框(执行框)赋值、计算判断框判断一个条件是否成立,用“是”、“否”或“Y”、“N”标明例1 设计一算法:
4、输入圆的半径,输出圆的面积,并画出流程图算法分析:第一步:输入圆的半径输入圆的半径第二步:利用公式利用公式“圆的面圆的面积积=圆周率圆周率(半径的平方)(半径的平方)”计算圆的面积;计算圆的面积;第三步:输出圆的面积。输出圆的面积。开始结束输入半径R计算S=Pi*R*R输出面积S定义Pi=3.14思考:整个程序框图有什么特点?例2 已知一个三角形的三边长确分别为2,3,4,利用海伧-秦九 韶公式设计一个算法,求出它的p=(2+3+4)/2s=SQR(p*(p2)*(p 3)*(p-4)输出s结束开始面积,画出算法的程序框图.例3 设计房租收费的算法,其要求是:住房面积80平方米以内,每平方米收
5、费3元,住房面积超过80平方米时,超过部分,每平方米收费5元.输入住房面积数,输出应付的房租.算法分析:第一步:输入住房面积输入住房面积S第二步:根据面积选择计费根据面积选择计费方式:如果方式:如果S小于或等于小于或等于80,则租金为则租金为M=s3,否则为,否则为M=240+(S-80)5第三步:输出房租输出房租M的值的值。开始结束输入面积S输出租金MS=80M=3*SM=240+5*(S-8)否是思考:整个程序框图有什么特点?例4 任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.开始输入a,b,ca+bc,a+c b,b+c a是否同
6、时成立?存在这样的三角形不存在这样的三角形结束否否是是例5 设计一个计算12的值的算法,并画出程序框图开始i=1sum=0i=i+1sum=sum+1i100?输出sum结束否是练习巩固看下面的程序框图,分析算法的作用(1)开始结束输入xy=3*x*x+4*x+5输出y(2)开始结束输入a,ba=60?credit=2credit=0否是S=(a+b)*0.5输出credit课堂作业开始输入aa 0输出|a|=a输出|a|=-a结束NY练习开始X1=1X2=2m=(x1+x2)/2x2=mx1=mm*m 30|x1 x2|0.005(x1*x1 3)*(m*m 3)0输出所求的近似值m结束m=(x1+x2)/2NyyN练习开始输入nflag=1d=2flag=0d=d+1n2d整除n?d=n1且flag=1?flag=1?n是质数n不是质数结束是否否是否是否是顺序结构输入nflag=1条件结构flag=1?n是质数n不是质数结束是是否否循环结构flag=0d=d+1d整除n?d=n1且flag=1?否是否是小结:1、程序框图的概念2、程序框图图例的名称和意义(作用)3、如何用程序框图表示顺序结构、选择结构与循环结构的算法作业巩固:P11 习题1.1A组 3B组 2