1、程序框图(一),狭义而言,算法是专指用计算机解决某一问题的方法和步骤.著名计算机科学家D.E.Knuth在其计算机程序设计技巧一书中为算法所下的定义是:“一个算法,就是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型问题的运算系列”.,算法的概念,复习回顾,广义而言,算法就是指按照一定规则解决某一类问题的明确和有限的步骤。,新课引入,算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表达它.,例如上一节“例1.任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定”的算法可以用以下形式来表达.,开始,输入n,i=2,i=i+1,i
2、n或r=0?,n不是质数,结束,r=0?,1,否,是,求n除以i 的余数,1,n是质数,是,否,尽管不同的算法千差万别,但它们都是由三种基本的逻辑结构构成的,这三种逻辑结构就是顺序结构、条件结构、循环结构.下面分别介绍这三种结构,从上面的程序框图中,不难看出以下三种不同的逻辑结构.,程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.,讲授新课,1.程序框图的概念,2.常见的程序框图(ANSI,美国国家标准化协会),流程线,连接程序框,连结点,连接程序框图的两部分,一、程序框图,终端框 (起止框),输入、 输出框,处理框 (执行框),判断框,表示一个算法的 起
3、始和结束,表示一个算法输 入和输出的信息,赋值、计算,判断某一条件是否成立,成立时在出口处标明“是”或“Y”,不成立时标明“否”或“N”.,(1)起止框:框内填写开始、结束,任何程序框图中,起止框是必不可少的;,(2)输入、输出框:框内填写输入、输出的字母、符号等;,(3)处理框(执行框):算法中需要的算式、 公式、对变量进行赋值等要用执行框表示.,(4)判断框:当算法要求在不同的情况下执行不同的运算时,需要判断框.框内填写判断条件.,3.四种基本的及其功能用法:,为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则,下面对一些常用的规则作一简单的介绍.,(1)使用标准的框图符号.
4、 (2)框图一般按从上到下、从左到右的方向画. (3)除判断框外,大多数程序框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号. (4)一类判断框是“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果.,4.画流程图的规则,(5)在图形符号内描述的语言要非常简练清楚.,(7)一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要的文字说明,(6)起始框只允许一条流出线,终止框只允许一条流入线,输入框、输出框、处理框只有一条流入线和一条流出线,判断框有一条流入线和两条流出线,但任何时候只有一条流出线起作用.,二、顺序
5、结构及框图表示,1.顺序结构:按照步骤依次执行的一个算法,称为具有“顺序结构”的算法,或者称为算法的顺序结构.,步骤n,步骤n+1,2.顺序结构的流程图,顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.它是由若干个处理步骤组成的,这是任何一个算法都离不开的基本结构.,3.画顺序结构程序框图时注意事项,左图中,步骤n和步骤n+1是依次执行的,只有在执行完步骤n指定的操作后,才能接着执行步骤n+1所指定的操作,(1)在程序框图中,开始框和结束框不可少; (2)在算法过程中,第一步输入语句是必不可少的; (3)顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连
6、接起来,按顺序执行算法步骤,【例1】已知一个三角形的三边边长分别为a,b,c,利用海伦秦九韶公式设计一个算法,求出它的面积,画出算法的程序框图.,第一步,输入三角形三条边的边长a,b,c。,第四步,输出S。,【2】“鸡兔同笼”是我国隋朝时期的数学著作孙子算经中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何.” 请你设计一个这类问题的通用算法.并画出算法的程序框图.,设有X 只鸡,Y 只兔.则,解: 鸡兔同笼,设鸡兔总头数为H ,总脚数为F,求鸡兔各有多少只.算法分析如下:,解方程组,得,第一步:输入总头数H, 总脚数F; 第二步:计算鸡的个数 x=(4
7、H-F)/2; 第三步:计算兔的个数 y=(F-2H)/2; 第四步:输出 x , y,开始,输出X,Y,结束,X=(4H-F)/2,Y=(F-2H)/2,输入H和F,解:用数学语言,程序框图,第四步:计算 ;,【3】试描述求点(x0 , y0)到直线Ax+By+C=0的距离的算法,并画出算法的程序框图.,第一步:输入x0,y0,A,B,C;,第二步:计算Z1=Ax0+By0+C;,第三步:计算Z2=A2+B2;,第五步:输出d.,解:用数学语言,开始,输入x0,y0,A,B,C,Z1=Ax0+By0+C,Z2=A2+B2,输出d,结束,程序框图,1.条件结构:条件结构是指在算法中通过对条件的
8、判断,根据条件是否成立而选择不同流向的算法结构.它的一般形式是,三、条件结构及框图表示,【例1】任意给定3个正实数,设计一个算法,判断分别以这三个数为三边边长的三角形是否存在.画出这个算法的程序框图.,a+bc,a+cb, b+ca是否 同时成立?,开始,存在这样 的三角形,结束,不存在这样 的三角形,否,是,输入a,b,c,【例2】设计一个求解一元二次方程 的算法,并画出程序框图表示。,算法步骤如下:,第一步,输入3个系数a,b,c。,第二步,计算,第三步,判断 是否成立。若是,则计算;否则,则输出“方程没有实数根”,结束算法。,第四步,判断 是否成立。若是,则输出 ; 否则,计算 ,并输出
9、 。,开始,输入x,x0?,否,是,输出x,输出-x,结束,课堂练习,【1】设计一个求任意数的绝对值的算法,并画出程序框图.,第一步:输入x; 第二步:如果x ,则lxlx ;否则,lxl-x; 第三步:输出lxl,开始,输入x,X3?,否,是,结束,y=5+1.2(x-3),输出y,y=5,【2】卫生费:计费方法:3人和3人以下,每户收5元;超过3人的住户,每超过1人加收1.2元,设计一个算法,根据输入的人数,计算应收的卫生费,并画出程序框图.,开始,输出min,结束,min=a,输入a,b,c,bmin?,Y,N,min=b,【3】画出一个求3个实数中最小数的程序框图.,cmin?,min=c,N,Y,1,1,输出x,y,结束,D=0?,输出无法 求解信息,Y,N,【4】画出用公式法解二元一次方程组 的算法的程序框图.,开始,D=a1b2-a2b1,输入a1,b1, c1a2,b2,c2,1,1,开始,y=1,结束,输入x,X100?,否,是,X5000?,X100000?,y=x1%,y=50,是,是,否,否,【5】观察所给程序框图,说出它所表示的函数.,