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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

问题的提出有一个农夫带一条狼狗、一只羊和一筐白菜过河。如果没有农夫看管,则狼狗要吃羊,羊要吃白菜。但是船很小,只够农夫带一样东西过河。问农夫该如何解此难题?方法和过程:1、带羊到对岸,返回;2、带菜到对岸,并把羊带回;3、带狼狗到对岸,返回;4、带羊到对岸。1.1.1算法的概念[问题]请你写出解二元一次方程组的详细求解过程.2121xyxy①②第一步:①+②×2得:5x=1③第二步:解③得:15x第三步:②-①×2,得5y=3④第四步:解④,得53y第五步:得方程组的解5351yx你能写出解一般的二元一次方程组的步骤吗?第一步,第二步,解(3)得12211221.cbcbxabab思考21122112.acacyabab第四步,解(4)得21(1)(2)aa得:第三步,21122112.ababyacac(4)第五步,得到方程组的解为现在你对算法有了新的认识了吗?这些步骤就构成了解二元一次方程组的算法,我们可以根据这一算法编制计算机程序,让计算机来解二元一次方程组.算法的概念与特征算法(algorithm)这个词出现于12世纪,指的是用阿拉伯数字进行算术运算的过程.在数学上,现代意义上的“算法”通常是指可以用计算机按照一定规则解决某一类问题的明确和有限的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.算法的概念:算法是指解决给定问题的有穷操作步骤的描述,简单的说,算法就是解决问题的步骤和方法。(1)事实上算法并没有精确化的定义.(2)算法虽然没有一个明确的定义,但其特点是鲜明的,不仅要注意算法的程序性、有限性、构造性、精确性的特点,还应该充分理解算法问题的指向性,即算法往往指向解决某一类问题,泛泛地谈算法是没有意义的。说明例题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.因为余数不为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。第二步,令i=2探究第三步,用i除n,得到余数r.第四步,判断“r=0”是否成立,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示。第五步,判断“i(n-1)”是否成立,若是,则n是质数,结束算法;否则,返回第三步。例2.用二分法设计一个求方程的近似根的算法.二分法对于区间[a,b]上连续不断、且f(a)f(b)0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点或其近似值的方法叫做二分法.第二步,给定区间[a,b],满足f(a)·f(b)<0.算法步骤:第一步,令,给定精确度d.2()2fxx第四步,若f(a)·f(m)0,则含零点的区间为[a,m];第三步,取中间点.2abm将新得到的含零点的仍然记为[a,b].第五步,判断f(m)是否等于0或者[a,b]的长度是否小于d,若是,则m是方程的近似解;否则,返回第三步.当d=0.005时,按照以上算法,可得下面表和图.ab|a-b|12111.50.51.251.50.251.3751.50.1251.3751.43750.06251.406251.43750.031251.406251.4218750.0156251.4146251.4218750.00781251.41406251.417968750.00390625y=x2-2121.51.3751.25于是,开区间(1.4140625,1.41796875)中的实数都是当精确度为0.005时的原方程的近似解.算法的基本特点1、有穷性一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。2、确定性算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。3、可行性算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果。注:与一般的解决问题的过程比较,算法有以下特征:①设计一个具体问题的算法时,与过去熟悉地解数学题的过程有直接的联系,但这个过程必须被分解成若干个明确的步骤,而且这些步骤必须是有效的.②算法要“面面俱到”,不能省略任何一个细小的步骤,只有这样,才能在人设计出算法后,把具体的执行过程交给计算机完成.计算机解决任何问题都要依赖于算法.只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.练习一:任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.算法分析:第一步:输入任意一个正实数r;第二步:计算以r为半径的圆的面积S=πr2;第三步:输出圆的面积.练习二:任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.算法分析:第一步:依次从2~(n-1)为除数去除n,判断余数是否为0,若是,则是n的因数;若不是,则不是n的因数.第二步:在n的因数中加入1和n;第三步:输出n的所有因数.•算法步骤有明确的顺序性,可以用自然语言来描述,但通常缺乏简便性。•为了使算法的程序或步骤表达得更为直观、准确,我们更经常地用图形方式来表示它。N不是质数是否判断整数n(n2)是否为质数1.程序框图开始输入ni=2求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?r=0?N是质数结束是否一般用i=i+1表示---图形符号名称功能终端框(起止框)一个算法的起始和结束输入、输出框一个算法输入和输出的信息处理框(执行框)赋值、计算判断框判断某一条件是否成立,出口成立标“是”不成立标“否”流程线连接程序框连接点连接程序框图的两部分或构成程序框的图形符号及其作用开始输入ni=2求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?r=0?N不是质数N是质数结束是否是否开始结束求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2顺序结构循环结构条件结构求n除以i的余数ri的值增加1,仍用i表示in-1或r=0?是否r=0?N不是质数N是质数是否输入ni=2顺序结构循环结构条件结构2.程序框图的基本逻辑结构你能说出这三种基本逻辑结构的特点吗?(1)顺序结构是由若干个依次执行的步骤组成的——顺序进行流程线将程序框自上而下地连接,按顺序执行算法步骤。步骤n步骤n+1例3、已知一个三角形的三边分别为a、b、c,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。开始输入a,b,c结束p=a+b+c2S=.p(p-a)(p-b)(p-c)输出S练习1、已知摄氏温度C与华氏温度F之间的关系为F=1.8C+32。设计一个由摄氏温度求华氏温度的算法,并画出相应的程序框图。算法步骤:第一步:输入摄氏温度C;第二步:计算1.8C+32,并将这个值记为华氏温度F;第三步:输出华氏温度F。(2)条件结构——表示分类判断条件是否成立,以此决定算法的流向步骤A步骤B满足条件?否是步骤A满足条件?否是例4任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.条件结构算法步骤如下:第一步,输入3个正实数a,b,c.第二步,判断a+b>c,a+c>b,b+c>a是否同时成立.若是,则存在这样的三角形;否则,不存这样的三角形.条件结构例5设计一个求解一元二次方程的算法,并画出程序框图表示.02cbxax开始输入a,b,cΔ=-4acΔ≥0?Δ=0?输出,结束方程无实数根输出x1x2b2ba22bxa1x2x2bxa否是是否例5程序框图也可设计为例6、设计一个算法计算分段函数,的函数值,并画出程序框图。)1()10(1)0(0xxxxy第一步、输入x第二步、判断“x0”是否成立,若是,则输出y=0,否则执行第三步;第三步、判断“x1”是否成立,若是,则输出y=1,否则输出y=x。小结•除起止框外,任意一个程序都只有一条流程线“流进”。•输入输出框,处理框只一条线“流出”;判断框必有两条线“流出”。练习1、下列关于程序框图的说法正确的是()A、程序框图是描述算法的语言B、程序框图可以没有输出框,但必须要有输入框给变量赋值C、程序框图可以描述算法,但不如自然语言描述算法直观D、程序框图和流程图不是一个概念2、下列功能“”没有功能的是()A、赋值B、计算C、判断D、以上都不对3、已知函数,设计一个算法求相应的函数值,并画出程序框图。3-xy•P.20习题A组第3题P.20习题1.1B组第1题输入x开始x>3?y=1.2x+1.4y=5输出y结束NYP.20习题A组第3题算法步骤:第一步,输入人数x,设收取的卫生费为y元.第二步,判断x与3的大小,若x3,则费用为m=5+(x-3)×1.2=1.2x+1.4;若x≤3,则费用为m=5.第三步,输出m.开始输入a1,b1,c1,a2。b2,c2输出“x=”;,“y=”;a1b2-a2b1≠0?x=(c2b1-c1b2)/(a1b2-a2b1)y=(c2b1-c1b2)/(a1b2-a2b1)结束NY输出“输入数据不合题意P.20习题1.1B组第1题算法步骤:第一步,输入a1,b1,c1,a2,b2,c2.第二步,计算x=(c2b1-c1b2)/(a1b2-a2b1)y=(c2b1-c1b2)/(a1b2-a2b1)第三步,输出x,y

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功