《程序框图和算法的逻辑结构.ppt》由会员分享,可在线阅读,更多相关《程序框图和算法的逻辑结构.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1.2 程序框图与算法的程序框图与算法的基本逻辑结构基本逻辑结构(1)树德协进中学树德协进中学 何军何军1.算法的概念:算法的概念:在数学中在数学中“算法算法”通常是指按照一定的规则来通常是指按照一定的规则来解决的某一类问题的解决的某一类问题的明确和有限的步骤明确和有限的步骤,这些,这些步骤必须是步骤必须是明确明确和和有效有效的,而且能够在的,而且能够在有限步有限步之内完成。之内完成。3.算法的基本思想与特征算法的基本思想与特征:2.算法的表示方法:算法的表示方法:自然语言、程序框图、程序自然语言、程序框图、程序(1)解决某一类问题解决某一类问题(2)在在有限步有限步之内完成之内完成(3)
2、每一步的明确性和有效性每一步的明确性和有效性(4)每一步具有顺序性每一步具有顺序性(一般性一般性)(有限性有限性)(确定与可行性确定与可行性)(顺序性顺序性) 算法的程序框图算法的程序框图“判断整数判断整数n n(n2n2)是否为质数)是否为质数”的算法步骤的算法步骤第一步,第一步,给定一个大于给定一个大于2的整数的整数n; 第二步,第二步,令令i=2; 第三步,第三步,用用i 除除n,得到余数,得到余数r; 第四步,第四步,判断判断“r=0”是否成立是否成立.若是,则若是,则n不是质数,结束算不是质数,结束算法;否则,将法;否则,将i的值增加的值增加1,仍用,仍用i表示;表示; 第五步,第五
3、步,判断判断“i(n-1)”是否成立,若是是否成立,若是,则则n是质数,结束是质数,结束算法;否则,返回第三步算法;否则,返回第三步. 我们可以将上述算法用右边的图形表示我们可以将上述算法用右边的图形表示开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?上述表示算法的图形称为算法的上述表示算法的图形称为算法的程序框图,程序框图,又称又称流程流程图图,其中的多边形叫做,其中的多边形叫做程序框程序框,带方向箭头的线叫做,带方向箭头的线
4、叫做流程流程线线,你能指出程序框图的含义吗?,你能指出程序框图的含义吗?用程序框、流程线及文字说明来表示算法的图形用程序框、流程线及文字说明来表示算法的图形. . 开始开始r=0?输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示in-1n-1或或r=0r=0?是是是是结束结束否否否否输出输出“n是质数是质数”思考思考1:1:在上述程序框图中,有在上述程序框图中,有4 4种程序框,种程序框,2 2种流程线,它们分别有何种流程线,它们分别有何特定的名称和功能?特定的名称和功能? 开始开始r=0?输出输出“n是质数是质数”输出输出
5、“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?终端框(起止框)终端框(起止框)终端框(起终端框(起止框)表示止框)表示一个算法的一个算法的起始和结束起始和结束.开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?输入、输出框输入、输出框输入、输出输入、输出框表示一个框表示一个算法输入和算法输入和输出的信息输出的信息
6、开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?处理框(执行框)处理框(执行框)处理框处理框(执行框)(执行框)赋值、计赋值、计算算开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?判断框判断框判断框判断框判断某一条件是否判断某一条件是否成立,成立时在出成立,成立时
7、在出口处标明口处标明“是是”或或“Y”Y”;不成立时;不成立时标明标明“否否”或或“N”.N”.流程线流程线连接点连接点开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否in-1n-1或或r=0r=0?图形符号图形符号 名名 称称 功功 能能 终端框终端框 (起止框)(起止框) 输入、输出框输入、输出框 处理框处理框 (执行框)(执行框) 判断框判断框 流程线流程线 表示一个算法的起始和结束表示一个算法的起始和结束 表示一个算法输入和输出的信息表示一个算法输入和
8、输出的信息 赋值、计算赋值、计算 判断某一条件是否成立,成立时判断某一条件是否成立,成立时在出口处标明在出口处标明“是是”或或“Y”Y”;不;不成立时标明成立时标明“否否”或或“N” N” 连接程序框连接程序框提升总结:基本的程序框、流程线及其功能提升总结:基本的程序框、流程线及其功能连接点连接点 连接程序框图的两部分连接程序框图的两部分记忆口诀记忆口诀 起止两头圆,起止两头圆, 判断两头尖,判断两头尖, 执行需方正,执行需方正, 出入平四边。出入平四边。2.对程序框对程序框 表示的功能描述正确的一项表示的功能描述正确的一项是是:( ).A.表示算法的起始和结束表示算法的起始和结束.B.表示算
9、法输入和输出的信息表示算法输入和输出的信息.C.赋值、计算赋值、计算.D. 按照算法顺序连接程序图框按照算法顺序连接程序图框.1.流程图的功能是流程图的功能是:.( ).A.表示算法的起始和结束表示算法的起始和结束.B.表示算法的输入和输出信息表示算法的输入和输出信息.C.赋值、运算赋值、运算.D.按照算法顺序连接程序图框按照算法顺序连接程序图框.答案答案:D,B练习:练习:思考思考: :在逻辑结构上,在逻辑结构上,“判断整数判断整数n n(n2n2)是否为质数)是否为质数”的程序框图的程序框图由几种组成?由几种组成?循环结构循环结构顺序结构顺序结构条件结构条件结构开始开始输出输出“n不是质数
10、不是质数”求求n除以除以i的余数的余数ri=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示是是是是结束结束否否否否输出输出“n是质数是质数”in-1n-1或或r=0r=0?r=0?i=i+1in-1或或r=0?否否是是求求n除以除以i的余数的余数输入输入ni=2n不是质数不是质数r=0?n是质数是质数是是否否 尽管不同的算法千差万别尽管不同的算法千差万别, ,但它们都是由但它们都是由三种基本的逻辑结构构成的。三种基本的逻辑结构构成的。程序框图有以下三种不同的逻辑结构:程序框图有以下三种不同的逻辑结构:顺序结构顺序结构条件结构条件结构循环结构循环结构 步骤步骤n步骤步骤n+1一、顺序结构
11、一、顺序结构1、含义:、含义:顺序结构顺序结构是由若干个依次执行的步是由若干个依次执行的步骤组成,是最简单的算法结构,框与框之间骤组成,是最简单的算法结构,框与框之间从上到下进行。任何算法都离不开顺序结构。从上到下进行。任何算法都离不开顺序结构。2、框图表示、框图表示例例1 1:已知一个三角形的三条边的:已知一个三角形的三条边的边边长分别为长分别为a a,b b,c c,令令 ,则三角形的面积,则三角形的面积你能利用这个公式设计一个计算三角形面积的算法步骤你能利用这个公式设计一个计算三角形面积的算法步骤吗?吗?第一步,第一步,输入三角形三条边的边长输入三角形三条边的边长a a,b b,c. c
12、. 第二步,第二步,计算计算第三步,第三步,计算计算第四步,第四步,输出输出S. S. a+ b+ cp=2S=p(p-a)(p-b)(p-c).a+ b+ cp=.2S=p(p-a)(p-b)(p-c).上述算法的程序框图如何表示?上述算法的程序框图如何表示?开始开始结束结束输出输出S输入输入a,b,c2abcp+=()()()Sp pa pb pc=-程序框图程序框图问题引入问题引入: :北京获得了北京获得了20082008年第年第2929届奥林匹克运届奥林匹克运动会主办权动会主办权. .你知道在申办奥运会的最后阶段你知道在申办奥运会的最后阶段, ,国际奥委会是如何通过投票决定主办权归属的
13、国际奥委会是如何通过投票决定主办权归属的吗吗? ?用怎样的算法结构表述上面的操作过程用怎样的算法结构表述上面的操作过程?S1: 投票投票;S2:统计票数统计票数,如果有一个城市得票超过总如果有一个城市得票超过总票数的一半票数的一半,那么该城市就获得主办权那么该城市就获得主办权,执行执行S3,否则淘汰得票数最少的城市否则淘汰得票数最少的城市,返回返回S1;S3: 宣布主办城市宣布主办城市.开始开始投票投票有一个城市有一个城市得票数超过总票得票数超过总票 数的一半数的一半输出该城市输出该城市结束结束淘汰得票数淘汰得票数最少的城市最少的城市YN 在许多算法中在许多算法中, ,需要需要对问题的条件作出
14、逻辑判对问题的条件作出逻辑判断断, ,判断后依据条件是否判断后依据条件是否成立而进行不同的处理方成立而进行不同的处理方式式, ,这就需要用条件结构这就需要用条件结构来实现算法来实现算法. .二、条件结构二、条件结构 常见的条件结构可以用程序框图表示为下面常见的条件结构可以用程序框图表示为下面两种形式:两种形式: 条件结构是指在算法中通过对条件的判断条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构根据条件是否成立而选择不同流向的算法结构。满足条件满足条件?步骤步骤B否否是是步骤步骤A满足条件满足条件?否否是是步骤步骤ACx2? 2log x例例4.任意给定任意给定3
15、个正实数个正实数,设计一个算法设计一个算法,判断分判断分别以这三个数为三边边长的三角形是否存在别以这三个数为三边边长的三角形是否存在.画画出这个算法的程序框图出这个算法的程序框图.第一步:输入第一步:输入3个正实数个正实数a,b,c.第二步:判断第二步:判断a+bc,b+ca,a+cb,是否同时成立是否同时成立.若是,则存在这样的三角形;否则不存在这样的三角形若是,则存在这样的三角形;否则不存在这样的三角形.算法分析:算法分析:开始开始 输入输入a、b、c a+bc,a+cb,b+ca是否同时成立是否同时成立 存在这样的三角形存在这样的三角形结束结束 否否是是 不存在这样的三角形不存在这样的三角形程序框图为:程序框图为:例例5.5.设计算法设计算法, ,求一元二次方求一元二次方程程ax2+bx+c=0(a0)的根的根, ,画出相应的流程图画出相应的流程图 输出输出x1 1, ,x2 2 输入输入系数系数a, ,b b,c,c01222bbx,xaa 否否是是输出无实数解输出无实数解计算计算acb42开始开始 结束结束 (4)
限制150内