收藏 分享(赏)

修改过 _算法与程序框图_ppt...ppt

上传人:hyngb9260 文档编号:7067723 上传时间:2019-05-04 格式:PPT 页数:45 大小:625KB
下载 相关 举报
修改过  _算法与程序框图_ppt...ppt_第1页
第1页 / 共45页
修改过  _算法与程序框图_ppt...ppt_第2页
第2页 / 共45页
修改过  _算法与程序框图_ppt...ppt_第3页
第3页 / 共45页
修改过  _算法与程序框图_ppt...ppt_第4页
第4页 / 共45页
修改过  _算法与程序框图_ppt...ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、算法与程序框图,问题的提出,有一个农夫带一条狼狗、一只羊和一筐白菜过河。如果没有农夫看管,则狼狗要吃羊,羊要吃白菜。但是船很小,只够农夫带一样东西过河。问农夫该如何解此难题?,方法和过程:,1、带羊到对岸,返回;,2、带菜到对岸,并把羊带回;,3、带狼狗到对岸,返回;,4、带羊到对岸。,1.1.1 算法的概念,第一步: +2得: 5x=1 ,第二步: 解得:,第三步: - 2,得 5y=3 ,第四步:解 ,得,第五步:得方程组的解,你能写出解一般的二元一次方程组的步骤吗?,第一步,第二步,解(3)得,思考,第四步,解(4)得,第三步,第五步,得到方程组的解为,现在你对算法有了新的认识了吗?,这

2、些步骤就构成了解二元一次方程组的算法,我们可以根据这一算法编制计算机程序,让计算机来解二元一次方程组.,算法的概念与特征,算法(algorithm)这个词出现于12世纪,指的是用阿拉伯数字进行算术运算的过程.,在数学上,现代意义上的“算法”通常是指可以用计算机按照一定规则解决某一类问题的明确和有限的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.,算法的概念:,算法是指解决给定问题的有穷操作步骤的描述,简单的说,算法就是解决问题的步骤和方法。,(1)事实上算法并没有精确化的定义. (2)算法虽然没有一个明确的定义,但其特点是鲜明的,不仅要注意算法的程序性、有限性、构造性

3、、精确性的特点,还应该充分理解算法问题的指向性,即算法往往指向解决某一类问题,泛泛地谈算法是没有意义的。,例题1.(1)设计一个算法判断7是否为质数.,第一步, 用2除7,得到余数1.因为余数不为0,所以2不能整除7.,第二步, 用3除7,得到余数1.因为余数不为0,所以3不能整除7.,第三步, 用4除7,得到余数3.因为余数不为0,所以4不能整除7.,第五步, 用6除7,得到余数1.因为余数不为0,所以6不能整除7.因此,7是质数.,算法分析:根据质数的定义,可以这样判断:依次用2-6除7,如果他们中有一个能整除7,则7不是质数,否则7是质数。具体算法如下;,第四步, 用5除7,得到余数2.

4、因为余数不为0,所以5不能整除7.,例题.(2)设计一个算法判断35是否为质数.,算法分析:第一步, 用2除35,得到余数1.因为余数不为0,所以2不能整除35.,第二步, 用3除35,得到余数2.因为余数不为0,所以3不能整除35.,第三步, 用4除35,得到余数3.因为余数不为0,所以4不能整除7.,第四步, 用5除35,得到余数0.因为余数为0,所以5能整除35.因 此,35不是质数.,题后小结:用语言描述一个算法,最便捷的方式就是按解决问题的步骤进行描述.每一步做一件事情.,任意给定一个整数n(n2),试设计一个程序或步骤对n是否为质数做出判定。,第一步,给定大于2的整数n。,第二步,

5、令i=2,探究,第三步,用i除n,得到余数r.,第四步,判断“r=0”是否成立,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示。,第五步,判断“i(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步。,二分法,对于区间a,b 上连续不断、且 f(a)f(b)0的函数y=f(x),通过不断地 把函数f(x)的零点所在的区间一分 为二,使区间的两个端点逐步逼近 零点,进而得到零点或其近似值的 方法叫做二分法.,第二步, 给定区间a,b,满足f(a) f(b)0,算法步骤: 第一步, 令 ,给定精确度d.,第四步, 若f(a) f(m) 0,则含零点的区间为a,m;,第

6、三步, 取中间点 ,将新得到的含零点的仍然记为a,b.,第五步,判断f(m)是否等于或者a,b的长度是否小于d,若是,则m是方程的近似解;否则,返回第三步,当d=0.005时,按照以上算法,可得下面表和图.,于是,开区间(1.4140625,1.41796875)中的实数都是当精确度为0.005时的原方程的近似解.,算法的基本特点,1、有穷性,一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。,2、确定性,算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。,3、可行性,算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果 。,注:

7、与一般的解决问题的过程比较,算法有以下特征: 设计一个具体问题的算法时,与过去熟悉地解数学题的过程有直接的联系,但这个过程必须被分解成若干个明确的步骤,而且这些步骤必须是有效的. 算法要“面面俱到”,不能省略任何一个细小的步骤,只有这样,才能在人设计出算法后,把具体的执行过程交给计算机完成.,计算机解决任何问题都要依赖于算法.只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.,练习一:任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.,算法分析:,第一步:输入任意一个正实数r; 第二步:计算以r为半径的圆的面积S=r

8、2; 第三步:输出圆的面积.,练习二:任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.,算法分析:,第一步:依次从2(n-1)为除数去除n,判断余数是否为0,若是,则是n的因数;若不是,则不是n的因数. 第二步:在n的因数中加入1和n; 第三步:输出n的所有因数.,1.1.2 程序框图 与算法的基本逻辑结构,算法步骤有明确的顺序性,可以用自然语言来描述,但通常缺乏简便性。 为了使算法的程序或步骤表达得更为直观、准确,我们更经常地用图形方式来表示它。,N不是质数,否,判断整数n(n2)是否为质数,1.程序框图,开始,输入n,i=2,求n除以i的余数r,i的值增加1,仍用i表示,in-

9、1或r=0?,r=0?,N是质数,结束,是,否,一般用i=i+1表示-,构成程序框的图形符号及其作用,开始,结束,否,顺序结构,循环结构,条件结构,否,顺序结构,循环结构,条件结构,2.程序框图的基本逻辑结构,你能说出这三种基本逻辑结构的特点吗?,(1)顺序结构 是由若干个依次执行的 步骤组成的 顺序进行流程线将程序框自上而下地连接,按顺序执行算法 步骤。,步骤n,步骤n1,例3、已知一个三角形的三边分别为a、b、c,利用 海伦公式设计一个算法,求出它的面积,并画出算法的 程序框图。,练 习,1、已知摄氏温度C与华氏温度F之间的关系为F=1.8C+32。设计一个由摄氏温度求华氏温度的算法,并画

10、出相应的程序框图。,算法步骤:第一步:输入摄氏温度C;第二步:计算1.8C+32,并 将这个值记为华氏温度F;第三步:输出华氏温度F。,(2)条件结构表示分类判断条件是否成立,以此决定算法的流向,步骤A,步骤B,满足条件?,否,是,步骤A,满足条件?,否,是,例4 任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.,条件结构,算法步骤如下: 第一步,输入3个正实数a,b,c. 第二步,判断a+bc,a+cb,b+ca是否同时成立. 若是,则存在这样的三角形; 否则,不存这样的三角形.,条件结构,例5 设计一个求解一元二次方程,的算法,并画出

11、程序框图表示.,开 始,输入a,b,c,= 4ac,0?,0?,输出 ,结 束,方程无实数根,输出x,否,是,是,否,例5程序框图也可设计为,例6、设计一个算法计算分段函数 , 的函数值,并画出程序框图。,第一步、输入x 第二步、判断“x0”是否成立,若 是,则输出y=0,否则执行第三步; 第三步、判断“x1”是否成立,若 是,则输出y=1,否则输出y=x。,小 结,除起止框外,任意一个程序都只有一条流程线“流进”。 输入输出框,处理框只一条线“流出”;判断框必有两条线“流出”。,练 习,1、下列关于程序框图的说法正确的是 ( ) A、程序框图是描述算法的语言 B、程序框图可以没有输出框,但必

12、须要有输入框给变量赋值 C、程序框图可以描述算法,但不如自然语言描述算法直观 D、程序框图和流程图不是一个概念 2、下列功能“ ”没有功能的是 ( ) A、赋值 B、计算 C、判断 D、 以上都不对,3、已知函数 ,设计一个算法求相应的函数值,并画出程序框图。,P.20 习题A组第3题,P.20 习题1.1B组第1题,输入x,开始,x3?,y=1.2x+1.4,y=5,输出y,结束,N,Y,P.20 习题A组第3题,算法步骤:第一步,输入人数x,设收取的卫生费 为y元.第二步,判断x与3的大小,若x3,则 费用为m= 5(x-3)1.2=1.2x+1.4; 若x3,则费用为m5.第三步,输出m.,开始,输入a1,b1,c1, a2 。b2, c2,输出“x= ”; ,“y= ”;,a1b2a2b10?,x=(c2b1 c1b2)/(a1b2 a2b1),y=(c2b1 c1b2)/(a1b2 a2b1),结束,N,Y,输出“输入数据不合题意,P.20 习题1.1B组第1题,算法步骤: 第一步,输入a1,b1,c1,a2,b2,c2. 第二步,计算 x=(c2b1 c1b2)/(a1b2 a2b1) y=(c2b1 c1b2)/(a1b2 a2b1) 第三步,输出x,y,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 数据结构与算法

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报