第15讲算法的含义程序框图_第1页
第15讲算法的含义程序框图_第2页
第15讲算法的含义程序框图_第3页
第15讲算法的含义程序框图_第4页
第15讲算法的含义程序框图_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、普通高中课程标准实验教科书数学 人教版 高三新数学第一轮复习教案(讲座15)算法的含义、程序框图一课标要求:1通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;2通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。在具体问题的解决过程中(如,三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。二命题走向算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。预测2007年高考对本章的考察是:以选择题或填空题的形式出现,分值在5分左右,考察的热点是算法的概念。三要点精讲1算法的概念(1)算

2、法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。(2)算法的特征:确定性:算法的每一步都应当做到准确无误、“不重不漏”。“不重”是指不是可有可无的、甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务。逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣。分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续。有穷性:算法要有明确的开始和结束,当到达终止步骤时所

3、要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行。(3)算法的描述:自然语言、程序框图、程序语言。2程序框图(1)程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;(2)构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何算法程序框图不可缺少的。输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。处理框赋值、计算。算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内。判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成

4、立时在出口处标明则标明“否”或“N”。流程线算法进行的前进方向以及先后顺序循环框用来表达算法中重复操作以及运算连结点连接另一页或另一部分的框图注释框帮助编者或阅读者理解框图(3)程序框图的构成一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。3几种重要的结构(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构。AB示意图输入nflag=1见示意图和实例: 顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序

5、执行算法步骤。如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作。pABYN(2)条件结构如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P是否成立,选择不同的执行框(A框、B框)。无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行。A框或B框中可以有一个是空的,即不执行任何操作。见示意图(3)循环结构在一些算法中要求重复执行同一操作的结构称为循环结构。即从算法某处开始,按照一定条件重复执行某一处理过程。重复执行的处理步骤称为循环体。循环结构有两种形式:当型循环结

6、构和直到型循环结构。当型循环结构,如左下图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构。继续执行下面的框图。A成立不成立P当型循环结构 直到型循环结构成立不成立PA直到型循环结构,如右下图所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立。以次重复操作,直到某一次给定的判断条件P时成立为止,此时不再返回来执行A框,离开循环结构。继续执行下面的框图。见示

7、意图四典例解析题型1:算法概念例1下列说法正确的是( )A算法就是某个问题的解题过程;B算法执行后可以产生不同的结果;C解决某一个具体问题算法不同结果不同;D算法执行步骤的次数不可以为很大,否则无法实施。解析:答案为选项B;选项B,例如:判断一个整数是否为偶数,结果为“是偶数”和“不是偶数”两种;选项A ,算法不能等同于解法;选项C,解决某一个具体问题算法不同结果应该相同,否则算法构造的有问题;选项D,算法可以为很多次,但不可以无限次。点评:算法一般是机械的,有时需要进行大量的重复计算。只要按部就班去做,总能算出结果。通常把算法过程称为“数学机械化”。数学机械化的最大优点是它可以借助计算机来完

8、成;实际上处理任何问题都需要算法。如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续。例2下列语句中是算法的个数为( )从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;统筹法中“烧水泡茶”的故事;测量某棵树的高度,判断其是否是大树;已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积。A1 B2 C3 D4解析:正确选项为C,中我们对“树的大小”没有明确的标准,无法完成任务,不是有效的算法构造。中,勾画了从济南到巴黎的行程安排,完成了任务

9、;中,节约时间,烧水泡茶完成了任务;中,纯数学问题,借助正、余弦定理解三角形,进而求出三角形的面积。点评:算法过程要做到能一步一步的执行,每一步执行的操作,必须确切,不能含混不清,且在有限步后的必须得到问题的结果。题型2:经典算法例3一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊。该人如何将动物转移过河?请设计算法?解析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势,具体算法如下:

10、算法步骤:第一步:人带两只狼过河,并自己返回;第二步:人带一只狼过河,自己返回;第三步:人带两只羚羊过河,并带两只狼返回;第四步:人带一只羊过河,自己返回;第五步:人带两只狼过河。点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的。这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率。例4这是中国古代的一个著名算法案例

11、:一群小兔一群鸡,两群合到一群里,要数腿48,要数脑袋17,多少小兔多少鸡?解析:求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。第一步:设有小鸡x只,小兔y只,则有第二步:将方程组中的第一个方程两变乘2加到第二个方程中去,得到,得到y=7;第三步:将y=7代入(1)得x=10。点评:解决这些问题的基本思想并不复杂,很清晰,但叙述起来很烦琐,有的步骤非常多,有的计算量很大,有时候完全依靠人力完成这些工作很困难。但是这些恰恰是计算机的长处,它能不厌其烦的枯燥的、重复的、繁琐的工作。但算法也有优劣,我们要追求高效。题型3:顺序结构例5写出通过尺轨作图确

12、定线段AB一个5等分点的算法。解析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做就能完成任务。算法分析: 第一步:从已知线段的左端点A出发,任意作一条与AB不平行的射线AP;第二步:在射线上任取一个不同于端点A的点C,得到线段AC;第三步:在射线上延AC的方向截取线段CE=AC;第四步:在射线上延AC的方向截取线段EF=AC;第五步:在射线上延AC的方向截取线段FG=AC;第六步:在射线上延AC的方向截取线段GD=AC,那么线段AD=5AB;第七步:连接DB;第八步:过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点。开始从A点出发作一

13、条与AB不平行射线AC在射线上任取一个不同于端点A的点C,取AC为单位线段,再在AC上顺次取点E、F、G、D,满足CE=EF=FG=GD=AC连结BD过点C作BD的平行线交AB于点M,点M即为5等分点结束程序框图:点评:这个算法步骤具有一般性,对于任意自然数n,都可以按照这个算法的思想,设计出确定线段的n等分点的步骤,解决问题。例6有关专家建议,在未来几年内,中国的通货膨胀率保持在3%左右,这将对我国经济的稳定有利无害。所谓通货膨胀率为3%,指的是每年消费品的价格增长率为3%。在这种情况下,某种品牌的钢琴2004年的价格是10 000元,请用流程图描述这种钢琴今后四年的价格变化情况,并输出四年

14、后的价格。解析:用P表示钢琴的价格,不难看出如下算法步骤:2005年P=10000(1+3%)=10300;2006年P=10300(1+3%)=10609;2007年P=10609(1+3%)=10927.27;2008年P=10927.27(1+3%)=11255.09;因此,价格的变化情况表为:年份20042005200620072008钢琴的价格10000103001060910927.2711255.09程序框图为:开始P=10000P=100001.03=10300P=103001.03=10609P=106091.03=10927.27P=10927.271.03=11255.0

15、9结束输出P点评:顺序结构只须严格按照传统的解决数学问题的解题思路,将问题解决掉。最后将解题步骤 “细化”就可以。“细化”指的是写出算法步骤、画出程序框图。题型4:条件结构例7设计算法判断一元二次方程是否有实数根,并画出相应的程序框图。解析:算法步骤如下: 第一步:输入一元二次方程的系数:a,b,c;第二步:计算的值;第三步:判断0是否成立。若0成立,输出“方程有实根”;否则输出“方程无实根”。结束算法。相应的程序框图如下:YN结 束开始输入a,b,c0?输出无实根输出有实根=b24ac点评:根据一元二次方程的意义,需要计算判别式的值。再分成两种情况处理:(1)当0时,一元二次方程有实数根;(

16、2)当0时,一元二次方程无实数根。该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同。因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解。该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件结构。例8(1)设计算法,求的解,并画出流程图。解析:对于方程来讲,应该分情况讨论方程的解。我们要对一次项系数a和常数项b的取值情况进行分类,分类如下:(1)当a0时,方程有唯一的实数解是;(2)当a=0,b=0时,全体实数都是方程的解;(3)当a=0,b0时,方程无解。联想数学中的分类讨论的处理方式。可得如下算法步骤:第

17、一步:判断a是否不为零。若成立,输出结果“解为”;第二步:判断a=0,b=0是否同时成立。若成立,输出结果“解集为R”;第三步:判断a=0,b0是否同时成立。若成立,输出结果“方程无解”,结束。程序框图:Ya0?a=0,b=0?a=0,b0?开始输出解为输出解集为R输出方程无解结束YNNN输入a,bY(2)。设计算法,找出输入的三个不相等实数a、b、c中的最大值,并画出流程图。解析:算法步骤:第一步:输入a,b,c的值;第二步:判断ab是否成立,若成立,则执行第三步;否则执行第四步;第三步:判断ac是否成立,若成立,则输出a,并结束;否则输出c,并结束;第四步:判断bc是否成立,若成立,则输出

18、b,并结束;否则输出c,并结束。程序框图:开始a b?输出a结束Na c?Y输出cb c?输出b输出cYYNN输入a,b,c点评:条件结构嵌套与条件结构叠加的区别是:(1)条件结构叠加,程序执行时需依次对“条件1”、“条件2”、“条件3”都进行判断只有遇到能满足的条件才执行该条件对应的操作。(2)条件结构的嵌套中,“条件2”是“条件1”的一个分支,“条件3”是“条件2”的一个分支,依此类推,这些条件中很多在算法执行过程中根据所处的分支位置不同可能不被执行。(3)条件结构嵌套所涉及的“条件2”、“条件3”是在前面的所有条件依次一个一个的满足“分支条件成立”的情况下才能执行的此操作,是多个条件同时

19、成立的叠加和复合。题型5:循环结构例9设计一个算法,求的值,并划出程序框图。解析:算法步骤:第一步:sum=0;第二步:i=0;第三步:sum=sum+2i;第四步:i=i+1;第五步:判断i是否大于49,若成立,则输出sum,结束;否则返回第三步重新执行。程序框图:结 束开始i49?输出sumsum=0,i=0sum=sum+2ii=i+1NY点评:1如果算法问题里涉及的运算进行了许多次重复的操作,且先后参与运算的数之间有相同的规律,就可引入变量循环参与运算(我们称之为循环变量),应用于循环结构。在循环结构中,要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要求条件的表述要恰

20、当、精确。2累加变量的值初始值一般取成0,而累乘变量的初始值一般取成1。例10相传古代的印度国王要奖赏国际象棋的发明者,问他需要什么。发明者说:陛下,在国际象棋的第一个格子里面放1粒麦子,在第二个格子里面放2粒麦子,第三个格子放4粒麦子,以后每个格子中的麦粒数都是他前一个格子中麦粒数的二倍,依此类推(国际象棋棋盘共有64个格子)。请将这些麦子赏给我,我将感激不尽。国王想这还不容易,就让人扛了一袋小麦,但不到一会儿就没了,最后一算结果,全印度一年生产的粮食也不够。国王很奇怪,小小的“棋盘”,不足100个格子,如此计算怎么能放这么多麦子?试用程序框图表示一下算法过程。解析:将实际问题转化为数学模型,该问题就是来求的和结 束开始i64?输出sumsum=0,i=0sum=sum+2ii=i+1NY点评:对于开放探究问题,我们可以建立数学模型(上面的题目要与等比数列的定义、性质和公式联系起来)和过程模型来分析好算法,通过设计算法以及语言的描述选择一些成熟的办法进行处理。像上面应用到了等比数列的通项公式和前n项和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论