《112_程序框图与算法的基本逻辑结构.ppt》由会员分享,可在线阅读,更多相关《112_程序框图与算法的基本逻辑结构.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1.1.2 1.1.2 程序框图与算法程序框图与算法 的基本逻辑结构的基本逻辑结构 问题提出问题提出1.1.算法的含义是什么?算法的含义是什么? 在数学中,按照一定规则解决某一在数学中,按照一定规则解决某一类问题的明确和有限的步骤类问题的明确和有限的步骤称为算法称为算法. . 2.2.算法是由一系列明确和有限的计算步算法是由一系列明确和有限的计算步骤组成的,我们可以用自然语言表述一骤组成的,我们可以用自然语言表述一个算法,但往往过程复杂,缺乏简洁性,个算法,但往往过程复杂,缺乏简洁性,因此,我们有必要探究使算法表达得更因此,我们有必要探究使算法表达得更加直观、准确的方法,这个想法可以通加直观、
2、准确的方法,这个想法可以通过过程序框图程序框图来实现来实现. .知识探究(一):算法的程序框图知识探究(一):算法的程序框图“判断整数判断整数n n(n n2 2)是否为质数)是否为质数”的算法步骤的算法步骤第一步第一步,给定一个大于,给定一个大于2 2的整数的整数n n; 第二步第二步,令,令i=2i=2; 第三步第三步,用,用i i除除n n,得到余数,得到余数r r; 第四步第四步,判断,判断“r=0”“r=0”是否成立是否成立. .若是,则若是,则n n 不是质数,结束算法;否则,将不是质数,结束算法;否则,将i i 的值增加的值增加1 1,仍用,仍用i i表示;表示; 第五步第五步,
3、判断,判断“i“i(n-1)”(n-1)”是否成立,若是,是否成立,若是, 则则n n是质数,结束算法;否则,返回是质数,结束算法;否则,返回 第三步第三步. . 我们可以将上述算法用下面的图形表示:我们可以将上述算法用下面的图形表示:开始开始r=0?输出输出“n是质数是质数”输出输出“n不是质数不是质数”求求n除以除以i的余数的余数i=2输入输入ni的值增加的值增加1,仍用,仍用i表示表示i in-1n-1或或r=0r=0?是是是是结束结束否否否否上述表示算法的图形称为算法的上述表示算法的图形称为算法的程序框程序框图图又称又称流程图流程图,其中的多边形叫做,其中的多边形叫做程序程序框框,带方
4、向箭头的线叫做,带方向箭头的线叫做流程线流程线,你能,你能指出程序框图的含义吗?指出程序框图的含义吗? 用程序框、流程线及文字说明来表示用程序框、流程线及文字说明来表示算法的图形算法的图形. 结束结束开始开始输入输入ni=2n除以除以i的余数的余数ri=i+1in-1或或r=0?n不是质数不是质数n是质数是质数否否是是是否否r=0?终端框(起止框),终端框(起止框),表示一个算法的起始表示一个算法的起始和结束和结束结束结束开始输入ni=2n除以i的余数ri=i+1in-1或r=0?n不是质数n是质数否是是否r=0?输入、输出框输入、输出框表示一个算法输入和表示一个算法输入和输出的信息输出的信息
5、结束结束开始输入ni=2n除以i的余数ri=i+1in-1或r=0?n不是质数n是质数否是是否r=0?处理框(执行框)处理框(执行框)赋值、计算赋值、计算结束结束开始输入ni=2n除以i的余数ri=i+1in-1或r=0?n不是质数n是质数否是是否r=0?判断框判断框判断某一条件是否成立,成判断某一条件是否成立,成立时在出口处标明立时在出口处标明“是是”;不成立时标明不成立时标明“否否”结束结束开始输入ni=2n除以i的余数ri=i+1in-1或r=0?n不是质数n是质数否是是否r=0?流程线流程线连接点连接点名称名称终端框或起止框终端框或起止框名称名称输入、输出框输入、输出框名称名称处理框或
6、执行框处理框或执行框作用作用作用作用作用作用判断框判断框作用作用表示算法的表示算法的起始和结束起始和结束表示算法的输入表示算法的输入和输出的信息和输出的信息赋值、计算赋值、计算判断某一条件是否成立,判断某一条件是否成立,成立在出口处标明成立在出口处标明“是是”或或“Y”不成立标明不成立标明“否否”或或“N”名称名称程序框图程序框图:又称流程图又称流程图,是一种用规定的图形、指向线及文字说明来准确、是一种用规定的图形、指向线及文字说明来准确、 直观的表示算法的图形直观的表示算法的图形图形符号图形符号 名名 称称 功功 能能 终端框终端框 (起止框)(起止框) 输入、输出输入、输出框框 处理框处理
7、框 (执行框)(执行框) 判断框判断框 流程线流程线 表示一个算法的起始和结束表示一个算法的起始和结束 表示一个算法输入和输出的表示一个算法输入和输出的信息信息 赋值、计算赋值、计算 判断某一条件是否成立,成立时在判断某一条件是否成立,成立时在出口处标明出口处标明“是是”或或“Y”“Y”;不成立;不成立时标明时标明“否否”或或“N” “N” 连接程序框,表示算法步骤的连接程序框,表示算法步骤的执行顺序执行顺序 结束结束开始开始输入输入ni=2n除以除以i的余数的余数ri=i+1in-1或或r=0?n不是质数不是质数n是质数是质数否否是是否否r=0?顺序结构顺序结构循环结构循环结构条件结构条件结
8、构 顺序结构及框图表示顺序结构及框图表示1.顺序结构顺序结构:按照步骤按照步骤依次执行依次执行的一个算法的一个算法语句语句A语句语句B2.顺序结构的流程图顺序结构的流程图例例1(1)(1)写出图中程序框图的运行结果:写出图中程序框图的运行结果: 开始开始输入输入a,ba2b4Sa/bb/a 输出输出S结束结束图中输出图中输出S ;5/2(2)(2)写出下列算法的功能。写出下列算法的功能。 开始开始输入输入a,bda2b2c输出输出c结束结束d左图算法的功能左图算法的功能是是 ; 求两数平方和的算术平方根求两数平方和的算术平方根例例2 设计一算法:设计一算法:输入圆的半径输入圆的半径, ,输出圆
9、的面积,并画出流程图输出圆的面积,并画出流程图算法分析:第一步:输入圆的半径输入圆的半径第二步:利用公式利用公式“圆的面圆的面积积=圆周率(半径的平方)圆周率(半径的平方)”计算圆的面积;计算圆的面积;第三步:输出圆的面积。输出圆的面积。开始结束输入半径R计算S=*R*R输出面积S(1)在程序框图中在程序框图中,开始框和结束框不可少;开始框和结束框不可少;(2)在算法过程中,在算法过程中,输出语句是必不可少的输出语句是必不可少的;例例3 3:若一个三角形的三条边长分别为:若一个三角形的三条边长分别为a a,b b,c c,令,令 ,则三角形的面积,则三角形的面积 . .你能利用这个公式你能利用
10、这个公式设计一个计算三角形面积的算法步骤吗?设计一个计算三角形面积的算法步骤吗?2abcp+=()()()Sp papb pc=-第一步,输入三角形三条边的边长第一步,输入三角形三条边的边长 a a,b b,c.c. 第二步,计算第二步,计算 . . 2abcp+=第三步,计算第三步,计算 . .()()()Sp pa pb pc=-第四步,输出第四步,输出S. S. 上述算法的程序框图如何表示?上述算法的程序框图如何表示?开始开始结束结束输出输出S输入输入a,b,c2abcp+=()()()Sp pa pb pc=- 练习:一个笼子里装有鸡和兔共练习:一个笼子里装有鸡和兔共m m只,且只,且
11、鸡和兔共鸡和兔共n n只脚,设计一个计算鸡和兔各有多只脚,设计一个计算鸡和兔各有多少只的算法,并画出程序框图表示少只的算法,并画出程序框图表示. .算法分析:算法分析: 第一步,输入第一步,输入m,n. .第二步,计算鸡的只数第二步,计算鸡的只数 . .42mnx-=第三步,计算兔的只数第三步,计算兔的只数y= =m-x. .第四步,输出第四步,输出x,y. .开始开始结束结束输出输出x,y输入输入m,n42mnx-=y= m-x程序框图:程序框图: 算法的条件结构算法的条件结构 在某些问题的算法中,有些步骤只在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流有在一定条件下才会被
12、执行,算法的流程因条件是否成立而变化程因条件是否成立而变化. .在算法的程序在算法的程序框图中,由若干个在一定条件下才会被框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为执行的步骤组成的逻辑结构,称为条件条件结构结构,用程序框图可以表示为下面两种,用程序框图可以表示为下面两种形式:形式:满足条件?满足条件?步骤步骤A步骤步骤B是是否否满足条件?满足条件?步骤步骤A是是否否你如何理解这两种程序框图的共性你如何理解这两种程序框图的共性和个性?和个性? 条件结构 在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.符合条件就执行A,否则执行B符合条件就执行
13、A,否则执行条件结构后的步骤满足条件?步骤A步骤B是否步骤A满足条件?是否例例4 4:判断:判断“以任意给定的以任意给定的3 3个正实数为个正实数为三条边边长的三角形是否存在三条边边长的三角形是否存在”的算法的算法步骤如何设计?步骤如何设计?第二步,判断第二步,判断a+bca+bc,b+cab+ca,c+abc+ab是是否同时成立否同时成立. .若是,则存在这样的三角若是,则存在这样的三角形;否则,不存在这样的三角形形;否则,不存在这样的三角形. .第一步,输入三个正实数第一步,输入三个正实数a a,b b,c.c. 你能画出这个算法的程序框图吗?你能画出这个算法的程序框图吗? 开始开始输入输
14、入a,b,ca+bc,b+ca,c+ab是否是否同时成立?同时成立?是是存在这样的三角形存在这样的三角形结束结束否否不存在这样的三角不存在这样的三角形形本题的编制程序让计算机执行时比较困难.开始输入, ,a b c结束?abc?bca是存在这样的三角形?cab是是不存在这样的三角形否否否练习:练习:1.就逻辑结构,说出其算法功能开始结束输入xx3?y=x-2输出yy=4-x否否是是开始max=a输入bmaxb?输出max结束max=b是是否否2.此为某一函数的求值程序图,则满足该流程图的函数解析式为( )(不能写成分段函数)答案答案:1.求两个数中的最大值求两个数中的最大值.答案答案:2. y
15、=|x-3|+1.例5.设计一个求解一元二次方程 的算法,并画出程序框图表示.20axbxc 0 有两个不相等的实数根0 有两个相等的实数根0 没有实数根242bbacxa 22baa 算 法第一步:输入三个系数, ,a b c第二步:计算24bac 0 第四步:判断是否成立.若是,则输出12xxp否则,计算12,xpq xpq并输出12,.xx第三步:判断0 是否成立.若是,则计算,22bpqaa 否则,输出“方程没有实数根”,结束算法.程序框图开始输入, ,a b c2qa 0? 24bac 0? 2xpq12,xx输出结束2bpa 是输出p是方程没有实数根否1xpq否开始输入, ,a b
16、 c24bac 0? 0? 12bxa 12bxa 输出12,xx结束输出“方程无实数根”2bxa 输出x是是否否程序框图循环结构 有些算法中有些算法中,也经常出现从某处开始也经常出现从某处开始,按按照一定条件照一定条件,反复执行某些步骤的情况反复执行某些步骤的情况.这就这就是是循环结构循环结构.反复执行的步骤称为反复执行的步骤称为循环体循环体.循环结构分为当型循环结构和直到型循环结构差异:循环终止条件不同,检验条件是否成立的先后次序也不同.当型循环结构:先判断后执行循环体.直到型循环结构:先执行循环体后判断条件是否成立.循环体满足条件?否是直到型循环结构当型循环结构循环体满足条件?是否第一步
17、:从1开始将自然数1,2,3,100逐个相加第二步:输出累加结果1.上边的式子有怎样的规律呢?2.怎么用程序框图表示呢?S=S+iS=0S=S+1S=S+2S=S+3S=S+100思考设计一算法,求1+2+3+ +100.循环结构 求1+2+3+ +100的值。第一步:令1,0iS第二步:若 成立,则执行第三步;否则,输出S,结束算法.100i 第三步:SSi第四步:1ii ,返回第二步.开始1i 0S 100?i N输出S结束1ii SSiY计数变量:用于记录循环次数,同时还用于判断循环是否终止.累加变量:用于输出结果,一般与计数变量同步执行,累加一次,计数一次.循环终止条件循环体循环结构的
18、设计步骤(1)确定循环结构的循环变量和初始条件;(2)确定算法中需要反复执行的部分,即循环体;(3)确定循环的终止条件.循环结构的三要素循环变量,循环体、循环的终止条件. 循环结构一定包含条件结构,用以控制循环过程,避免出现“死循环”.判断框内写上条件,两个出口分别对应终止条件成立与否,其中一个指向循环体,经过循环体回到判断框的入口处.当型循环结构开始1i 0S 100?i N输出S结束1ii SSiY开始1i 0S 100?i Y输出S结束N直到型循环结构1ii SSi第三步:求1+2+3+ +100第一步:令1,0iS第四步:若 成立,则输出S,结束算法.否则,返回第二步.100i 第二步
19、:SSi1ii 当型循环结构开始1i 0S 100?i N输出S结束1ii SSiY开始1i 0S 100?i Y输出S结束N1ii SSi直到型循环结构输入n的值,求1+2+3+ +n?开始1i 0S ?in Y输出S结束N1ii SSi输入n直到型循环结构算法第一步:输入2005年的年生产总值.第二步:计算下一年的年生产总值.第三步:判断所得结果是否大于300.若是,输出该年年份;否则,返回第二步.0.05aa 例7.某工厂2005年的生产总值为200万元,技术革新后预计以后设计一个程序框图,输出预计年生产总值超过300万元的最早年份. 例7.某工厂2005年的生产总值为200万元,技术革
20、新后预计以后设计一个程序框图,输出预计年生产总值超过300万元的最早年份.循环结构的设计步骤(1)确定循环结构的循环变量和初始条件;(2)确定算法中需要反复执行的部分,即循环体;(3)确定循环的终止条件.,a n200,2005an0.051taaatnn 300?a 直到型循环结构300?a 当型循环结构开始2005n 200a 0.05ta aat 1nn300?a 否结束输出n是开始2005n 200a 300?a 结束输出n否当型循环结构直到型循环结构0.05ta aat1nn是3.程序框图的画法 通过以上两个知识点可以看出,画出一个算法的程序框图很有必要.我们可以借助三种基本逻辑结构
21、来表示这样的算法,使得算法清楚、简练,便于阅读和交流.一般地,一个算法的程序框图有以下几个步骤:第一步:用自然语言表述算法步骤.第二步:确定每一个算法步骤所包含的逻辑结构,并用相应的程序框图表示,得到该步骤的程序框图.第三步:将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图.【例2】写出用“二分法”求方程 近似解的算法)0(022 xx第一步:令, 2)(2 xxf给定精确度d第三步:取区间中点2bam .,ba含零点的区间为.,bm第四步:若( )()0,f af m则含零点的区间为;,ma否则,将新得到的含零点的区间仍记为第二步:确定区间满足0)()( bfa
22、f,ba第五步:判断,ba的长度是否小于d或f(m)是否等于0若是,则m是方程的近似值;否则,返回第三步顺序结构条件结构循环结构第一步:令, 2)(2 xxf给定精确度d第三步:取区间中点2bam 第二步:确定区间满足0)()( bfaf,ba顺序结构2( )2f xx输入精确度d和初始值,a b2abm .,ba含零点的区间为.,bm第四步:若( )()0,f af m则含零点的区间为;,ma否则,将新得到的含零点的区间仍记为条件结构( ) ()0?f a f m am 否bm 是|abd或()0?f m 第四步第三步否输出m是2bam 否则,第三步:取区间中点.,ba含零点的区间为.,bm
23、第四步:若( )()0,f af m则含零点的区间为;,ma将新得到的含零点的区间仍记为第五步:判断,ba的长度是否小于d或f(m)是否等于0若是,则m是方程的近似值;否则,返回第三步循环结构例3:为了加强居民的节水意识,某市制订了以下生活用水收费标准:每户每月用水未超过7m3时,每立方米收费1.0元,并加收0.2元的城市污水处理费;超过7m3的部分,每立方米收费1.5元,并加收0.4元的城市污水处理费,请你写出某户居民每月应交纳的水费y(元)与用水量x(m3)之间的函数关系,然后设计一个求该函数值的算法,并画出程序框图.解:y与x之间的函数关系为:1.2 ,1.94.9xyx(当0 x7时)
24、(当x7时)解:y与x之间的函数关系为:1.2 ,1.94.9xyx(当0 x7时)(当x7时)算法分析:第一步:输入每月用水量x;第二步:判断x是否不超过7.若是,则y=1.2x;若否,则y=1.9x-4.9.第三步:输出应交纳的水费y.开始输入x0 x7?是y=1.2x否y=1.9x-4.9输出y结束程序框图例4.画程序框图,对于输入的x值,输出相应的y值.0(0)1(01)(1)xyxx x开始程序框图x0?是y=0否0 x1?是y=1否y=x输出y结束输入x是例5.设计一个求任意数的绝对值的算法,并画出程序框图.(0)|(xxxxx当时当 0时)算法分析:第一步:输入数x;第二步:判断x0是否成立?若是,则|x|=x;若否,则|x|=-x.程序框图:开始输入xx0?输出x否输出-x结束返回