程序框图与算法的基本逻辑结构(3课时)ppt课件.ppt
1.1.2 程序框图与 算法的基本逻辑结构,“鸡兔同笼”是我国隋朝时期的数学著作孙子算经中的一个题目:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何.” 请您设计一个这类问题的通用算法.并画出算法的程序框图.,设有x只鸡,y只兔.则,解: 鸡兔同笼,设鸡兔总头数为H ,总脚数为F,求鸡兔各有多少只.算法分析如下:,解方程组,得,一、知识导入,第一步:输入总头数H,总脚数F 第二步:计算鸡的个数x=(4H-F)/2第三步:计算兔的个数y=(F-2H)/2 第四步:输出x,y,开始,输出x,y,结束,x=(4H-F)/2,y=(F-2H)/2,输入H和F,解:算 法,程序框图,二、知识探究,1.程序框图,算法的表现形态不仅有自然语言,还有程序框图与程序.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和循环,并且操作步骤较多时,就不那么直观清晰了.,又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.,程序框图,终端框(起止框),表示一个算法的起始和结束,输入、输出框,表示一个算法输入和 输出的信息,处理框(执行框),赋值、计算,判断框,判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”.,连接点,连接程序框图的两部分,流程线,连接程序框,四种基本框图的用法,例1.“判断整数n(n2)是否为质数”的算法,第一步:给定大于2的整数n.,第二步:令i=2,第三步:用i除n,得余数r.判断余数r是否为0,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示这个数.,第四步:判断i是否大于n-1,若是,若是,则n是质数;否则,返回第三步.,自然语言,(1)给定大于2的整数n.,(2)令i=2,(3)用i除n,得余数r.判断余数r是否为0,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示这个数.,(4)判断i是否大于n-1,若是,则n是质数;否则,返回第三步.,程序框图,2.算法的基本逻辑结构,尽管算法千差万别,但它们都是由三种基本的逻辑结构构成的,这三种逻辑结构就是顺序结构、条件结构、循环结构.,(1)顺序结构,由若干个依次执行的处理步骤组成的结构.它是任何一个算法都离不开的结构.,画顺序结构程序框图时注意事项,(1)在程序框图中,开始框和结束框不可少;(2)在算法过程中,第一步输入语句是必不可少的;(3)顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.,算 法,第二步:计算,第三步:计算,第四步:输出三角形的面积S,框 图,开始,第一步:输入 的值,例2.已知一个三角形的三边边长分别为 利用海伦-秦九韶公式,( , ),设计一个算法,求出它的面积,并画出算法的程序框图.,(2)条件结构,在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.,符合条件就执行A,否则执行B,符合条件就执行A,否则执行条件结构后的步骤,例3.任意给定3个正实数,设计一个算法,判断以这3个正实数为三条边边长的三角形是否存在,并画出这个算法的程序框图.,算 法,程序框图,否,是,本题的编制程序让计算机执行时比较困难.,例4.设计一个求解一元二次方程 的算法,并画出程序框图表示.,算 法,第一步:输入三个系数,第二步:计算,程序框图,是,是,否,否,(3)循环结构,有些算法中,也经常出现从某处开始,按照一定条件,反复执行某些步骤的情况.这就是循环结构.反复执行的步骤称为循环体.,求1+2+3+ +100,第一步:令,第二步:若 成立,则执行第三步;否则,输出S,结束算法.,第三步:,循环结构的设计步骤,(1)确定循环结构的循环变量和初始条件;(2)确定算法中需要反复执行的部分,即循环体;(3)确定循环的终止条件.,循环结构的三要素,循环变量,循环体、循环的终止条件.,循环结构一定包含条件结构,用以控制循环过程,避免出现“死循环”.判断框内写上条件,两个出口分别对应终止条件成立与否,其中一个指向循环体,经过循环体回到判断框的入口处.,循环结构分为当型循环结构和直到型循环结构,差异:循环终止条件不同,检验条件是否成立的先后次序也不同.,当型循环结构:先判断后执行循环体.,直到型循环结构:先执行循环体后判断条件是否成立.,例5.某工厂2005年的生产总值为200万元,技术革新后预计以后每年的生产总值比上一年增加5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.,算法,直到型循环结构,当型循环结构,当型循环结构,直到型循环结构,第三步:取区间中点,顺序结构,条件结构,循环结构,写出用“二分法”求方程 近似解的算法,三、随堂演练,四、小结作业,为了使大家彼此之间能够读懂各自画出的框图,必须遵守一些共同的规则.,(1)使用标准的框图符号.(2)框图一般按从上到下、从左到右的方向画.(3)流程线是带有方向箭头的线,用以连接框图,直观地表示算法的流程.在程序框图中,任意两个程序框之间都存在流程线.(4)在程序框图中,除起止框外,任意一个程序框都只有一条流程线“流进”,输入输出框、处理框都只有一条流程线“流出”,但判断框一定是至少有两条流程线“流出”.(5)一个完整的程序框图包括以下几部分:表示相应操作的程序框、带箭头的流程线、程序框外必要的文字说明.以起止框表示开始,以终止框表示结束.,1.画流程图的规则,2.程序框图的画法,通过对以上知识点的学习可以看出,画出一个算法的程序框图很有必要.我们可以借助三种基本逻辑结构来表示这样的算法,使得算法清楚、简练,便于阅读和交流.,一般地,一个算法的程序框图有以下几个步骤:,第一步:用自然语言表述算法步骤.,第二步:确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图.,第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图.,3.作业,P20 习题1.1 A组3 B组2,