1、1.1.2 1.1.2 程序框图与算法程序框图与算法 的基本逻辑结构的基本逻辑结构 第一课时第一课时问题提出问题提出1.1.算法的含义是什么?算法的含义是什么? 在数学中,按照一定规则解决某一在数学中,按照一定规则解决某一类问题的明确和有限的步骤类问题的明确和有限的步骤称为算法称为算法. . 2.2.算法所使用的语言算法所使用的语言 (1 1):自然语言):自然语言 (2 2):框图语言):框图语言 (3 3):程序设计语言):程序设计语言复习判断一个正整数n(n2)是否为质数的算法 判断一个正整数n(n2)是否为质数的算法自然语言描述第一步:给定大于第一步:给定大于2的整数的整数n。第二步:
2、令第二步:令i 2。第三步:用第三步:用i 除除n,得到余数,得到余数r。第四步:判断第四步:判断“r0”是否成立。是否成立。若是,则若是,则n不是质数,结束算法不是质数,结束算法;否则,将否则,将i的值增加的值增加1,仍用,仍用i表表示。示。第五步:判断第五步:判断“i(n-1)”是否成是否成立。若是,则立。若是,则n是质数,结束算是质数,结束算法;否则返回第三步。法;否则返回第三步。下面我们尝试用程序框图的语言来描述这一算法判断一个正整数n(n2)是否为质数的算法自然语言描述图形描述第一步:给定大于第一步:给定大于2的整数的整数n。第二步:令第二步:令i 2。开始开始输入输入ni =2输出
3、输出“n不是质数不是质数”输出输出“n是质数是质数”结束结束是求求n除以除以i 的余数的余数ri 的值增加的值增加1,仍用仍用i 表示表示i n-1或或r =0?r =0?否是否第三步:用第三步:用i 除除n,得到余数,得到余数r。第四步:判断第四步:判断“r0”是否成立。是否成立。若是,则若是,则n不是质数,结束算法不是质数,结束算法;否则,将否则,将i的值增加的值增加1,仍用,仍用i表表示。示。第五步:判断第五步:判断“i(n-1)”是否成是否成立。若是,则立。若是,则n是质数,结束算是质数,结束算法;否则返回第三步。法;否则返回第三步。判断一个正整数n(n2)是否为质数的算法输出输出“n
4、不是质数不是质数”输出输出“n是质数是质数”i n-1或或r =0?开始开始输入输入ni =2结束结束是求求n除以除以i 的余数的余数ri=i+1r =0?否是否整个图形中有哪些整个图形中有哪些基本的图形,各自基本的图形,各自的意义和作用是什的意义和作用是什么?么?上述表示算法的图形称为算法的上述表示算法的图形称为算法的程序框程序框图图又称又称流程图流程图,其中的多边形叫做,其中的多边形叫做程序程序框框,带方向箭头的线叫做,带方向箭头的线叫做流程线流程线,你能,你能指出程序框图的含义吗?指出程序框图的含义吗? 用程序框、流程线及文字说明来表示用程序框、流程线及文字说明来表示算法的图形算法的图形
5、. 图形符号图形符号 名名 称称 功功 能能 终端框终端框 (起止框)(起止框) 输入、输出输入、输出框框 处理框处理框 (执行框)(执行框) 判断框判断框 流程线流程线 表示一个算法的起始和结束表示一个算法的起始和结束 表示一个算法输入和输出的表示一个算法输入和输出的信息信息 赋值、计算赋值、计算 判断某一条件是否成立,成立时在判断某一条件是否成立,成立时在出口处标明出口处标明“是是”或或“Y”Y”;不成立;不成立时标明时标明“否否”或或“N” N” 连接程序框,表示算法步骤的连接程序框,表示算法步骤的执行顺序执行顺序 判断一个正整数n(n2)是否为质数的算法输出输出“n不是质数不是质数”输
6、出输出“n是质数是质数”i n-1或或r =0?开始开始输入输入ni =2结束结束是求求n除以除以i 的余数的余数ri=i+1r =0?否是否我们一起来了解这我们一起来了解这个程序框图的意义个程序框图的意义吧吧1.算法用自然语言表述一个算法,算法用自然语言表述一个算法,但往往过程复杂,缺乏简洁性但往往过程复杂,缺乏简洁性.2.程序框图表示算法,直观、结程序框图表示算法,直观、结构清晰、条理分明、通俗易懂、构清晰、条理分明、通俗易懂、便于检查和修改及交流。(一便于检查和修改及交流。(一图胜万言)图胜万言)思考思考4:4:在逻辑结构上,在逻辑结构上,“判断整数判断整数n n(n n2 2)是否)是
7、否为质数为质数”的程序框图由几部分组成?的程序框图由几部分组成?开始开始r=0?输出输出“n不是质数不是质数”求求n除以除以i的余数的余数i=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示i in-1n-1或或r=0r=0?是是是是结束结束否否否否输出输出“n是质数是质数”顺序结构循环结构条件结构输入输入ni =2输出输出“n不是质数不是质数”输出输出“n是质数是质数”是求求n除以除以i 的余数的余数ri =i+1i n-1或或r =0?r =0?否是否顺序结构顺序结构条件结构条件结构循环结构循环结构观察、研究下面三个分解框图,你能总结出各有什么特点?观察、研究下面三个分解框图,你能总
8、结出各有什么特点?在顺序结构中可能在顺序结构中可能会用到哪几种程序会用到哪几种程序框和流程线?框和流程线??(1)顺序结构 由若干个依次执行的处理步骤组成的结构.它是任何一个算法都离不开的结构.步骤n步骤n1画顺序结构程序框图时注意事项(1)在程序框图中,开始框和结束框不可少;(2)在算法过程中,第一步输入语句是必不可少的;(3)顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.例例1 1:已知一个三角形三条边的边长分别为:已知一个三角形三条边的边长分别为a,b,ca,b,c,利用海伦秦九韶公式设计一个计算,利用海伦秦九韶公式设计一个计算三角形面积的算法,并
9、画出程序框图表示三角形面积的算法,并画出程序框图表示第一步:输入三角形三条边的边长第一步:输入三角形三条边的边长a,b,c.第四步:输出第四步:输出第三步:计算第三步:计算()()()Sp papbpc第二步:计算第二步:计算1()2pabc输出输出s结束结束开始开始1()2pabc()()()Sp papbpc输入输入a,b,c思考:整个程序框图有什么特点?思考:整个程序框图有什么特点?()()()Sp papbpc1()2pabc练习练习1:1:写出以三个正数写出以三个正数a,b,ca,b,c为边长的长方体的体积的算法为边长的长方体的体积的算法, ,并画出程序框图并画出程序框图. .练习练
10、习2:2:看下面的程序框图,分析算法的作用看下面的程序框图,分析算法的作用(1)开始开始结束结束输入输入xy=3*x*x+4*x+5输出输出y(2)开始开始结束结束输入输入a,bsum=a+b输出输出sum 例例1 1 一个笼子里装有鸡和兔共一个笼子里装有鸡和兔共m m只,且只,且鸡和兔共鸡和兔共n n只脚,设计一个计算鸡和兔各有多只脚,设计一个计算鸡和兔各有多少只的算法,并画出程序框图表示少只的算法,并画出程序框图表示. .理论迁移理论迁移算法分析:算法分析: 第一步,输入第一步,输入m m,n.n.第二步,计算鸡的只数第二步,计算鸡的只数 . .42mnx-=第三步,计算兔的只数第三步,计
11、算兔的只数y=m-x.y=m-x.第四步,输出第四步,输出x x,y.y.开始开始结束结束输出输出x,y输入输入m,n42mnx-=y y= m-xm-x程序框图:程序框图: 例例2 2 已知下图是已知下图是“求一个正奇数的平方求一个正奇数的平方加加5 5的值的值”的程序框图,若输出的数是的程序框图,若输出的数是3030,求,求输入的数输入的数n n的值的值. .开始开始结束结束输入正整数输入正整数n输出输出yy=x2+5x=2n- -1顺序结构的程序框图的基本特征:顺序结构的程序框图的基本特征:小结作业小结作业(2 2)各程序框从上到下用流程线依次)各程序框从上到下用流程线依次连接连接. .(1 1)必须有两个起止框,穿插输入、输)必须有两个起止框,穿插输入、输出框和处理框,没有判断框出框和处理框,没有判断框. .(3 3)处理框按计算机执行顺序沿流程线)处理框按计算机执行顺序沿流程线依次排列依次排列. .作业作业: :P P2020习题习题1.1B1.1B组:组:1.1.知识回忆1、程序框图有哪些组成部分?2、基本逻辑结构顺序结构和条件结构的特点