人教版高中数学教案 96页

  • 106.00 KB
  • 2022-08-15 发布

人教版高中数学教案

  • 96页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
人教版高中数学必修3全册教案高中数学教案人教A版必修全套必修3教案|全套目录第一章算法初步1com程序框图与算法的基本逻辑结构7com输入语句输出语句和赋值语句29com条件语句36com句4413算法案例51第二章统计7521随机抽样76com简单随机抽样76com系统抽样81com分层抽样8522用样本估计总体89com用样本的频率分布估计总体分布89com用样本的数字特征估计总体的数字特征9723变量间的相关关系107com变量之间的相关关系107\ncom两个变量的线性相关107第三章概率11531随机事件的概率115com随机事件的概率115com概率的意义118com概率的基本性质121com古典概型124com整数值随机数randomnumbers的产生128com几何概型132com均匀随机数的产生136\n第一章算法初步本章教材分析算法是数学及其应用的重要组成部分是计算科学的重要基础算法的应用是学习数学的一个重要方面学生学习算法的应用目的就是利用已有的数学知识分析问题和解决问题通过算法的学习对完善数学的思想激发应用数学的意识培养分析问题解决问题的能力增强进行实践的能力等都有很大的帮助本章主要内容算法与程序框图基本算法语句算法案例和小结教材从学生最熟悉的算法入手通过研究程序框图与算法案例使算法得到充分的应用同时也展现了古老算法和现代计算机技术的密切关系算法案例不仅展示了数学方法的严谨性科学性也为计算机的应用提供了广阔的空间让学生进一步受到数学思想方法的熏陶激发学生的学习热情在算法初步这一章中让学生近距离接近社会生活从生活中学习数学使数学在社会生活中得到应用和提高让学生体会到数学是有用的从而培养学生的学习兴趣数学建模也是高考考查重点本章还是数学思想方法的载体学生在学习中会经常用到算法思想转化思想从而提高自己数学能力因此应从三个方面把握本章1知识间的联系2数学思想方法3认知规律本章教学时间约需12课时具体分配如下仅供参考\ncom算法的概念约1课时com程序框图与算法的基本逻辑结构约4课时com输入语句输出语句和赋值语句约1课时com条件语句约1课时com循环语句约1课时13算法案例约3课时本章复习约1课时11算法与程序框图com算法的概念整体设计教学分析算法在中学数学课程中是一个新的概念但没有一个精确化的定义教科书只对它作了如下描述在数学中算法通常是指按照一定规则解决某一类问题的明确有限的步骤为了让学生更好理解这一概念教科书先从分析一个具体的二元一次方程组的求解过程出发归纳出了二元一次方程组的求解步骤这些步骤就构成了解二元一次方程组的算法教学中应从学生非常熟悉的例子引出算法再通过例题加以巩固三维目标1正确理解算法的概念掌握算法的基本特点2通过例题教学使学生体会设计算法的基本思路3通过有趣的实例使学生了解算法这一概念的同时激发学生学习数学的兴趣重点难点教学重点算法的含义及应用教学难点写出解决一类问题的算法课时安排\n1课时教学过程导入新课思路1情境导入一个人带着三只狼和三只羚羊过河只有一条船同船可容纳一个人和两只动物没有人在的时候如果狼的数量不少于羚羊的数量狼就会吃羚羊该人如何将动物转移过河请同学们写出解决问题的步骤解决这一问题将要用到我们今天学习的内容算法思路2情境导入大家都看过赵本山与宋丹丹演的小品吧宋丹丹说了一个笑话把大象装进冰箱总共分几步答案分三步第一步把冰箱门打开第二步把大象装进去第三步把冰箱门关上上述步骤构成了把大象装进冰箱的算法今天我们开始学习算法的概念思路3直接导入算法不仅是数学及其应用的重要组成部分也是计算机科学的重要基础在现代社会里计算机已成为人们日常生活和工作中不可缺少的工具听音乐看电影玩游戏打字画卡通画处理数据计算机是怎样工作的呢要想弄清楚这个问题算法的学习是一个开始推进新课新知探究\n提出问题1解二元一次方程组有几种方法2结合教材实例总结用加减消元法解二元一次方程组的步骤3结合教材实例总结用代入消元法解二元一次方程组的步骤4请写出解一般二元一次方程组的步骤5根据上述实例谈谈你对算法的理解6请同学们总结算法的特征7请思考我们学习算法的意义讨论结果1代入消元法和加减消元法2回顾二元一次方程组的求解过程我们可以归纳出以下步骤第一步①②×2得5x1③第二步解③得x第三步②-①×2得5y3④第四步解④得y第五步得到方程组的解为3用代入消元法解二元一次方程组我们可以归纳出以下步骤第一步由①得x2y-1③第二步把③代入②得22y-1y1④第三步解④得y⑤第四步把⑤代入③得x2×-1\n第五步得到方程组的解为4对于一般的二元一次方程组其中a1b2-a2b1≠0可以写出类似的求解步骤第一步①×b2-②×b1得a1b2-a2b1xb2c1-b1c2③第二步解③得x第三步②×a1-①×a2得a1b2-a2b1ya1c2-a2c1④第四步解④得y第五步得到方程组的解为5算法的定义广义的算法是指完成某项工作的方法和步骤那么我们可以说洗衣机的使用说明书是操作洗衣机的算法菜谱是做菜的算法等等在数学中算法通常是指按照一定规则解决某一类问题的明确有限的步骤现在算法通常可以编成计算机程序让计算机执行并解决问题6算法的特征①确定性算法的每一步都应当做到准确无误不重不漏不重是指不是可有可无的甚至无用的步骤不漏是指缺少哪一步都无法完成任务②逻辑性算法从开始的第一步直到最后一步之间做到环环相扣分工明确前一步是后一步的前提后一步是前一步的继续③有穷性算法要有明确的开始和结束当到达终止步骤时所要解决的问题必须有明确的结果也就是说必须在有限步内完成任务不能无限制地持续进行\n7在解决某些问题时需要设计出一系列可操作或可计算的步骤来解决问题这些步骤称为解决这些问题的算法也就是说算法实际上就是解决问题的一种程序性方法算法一般是机械的有时需进行大量重复的计算它的优点是一种通法只要按部就班地去做总能得到结果因此算法是计算科学的重要基础应用示例思路1例11设计一个算法判断7是否为质数2设计一个算法判断35是否为质数算法分析1根据质数的定义可以这样判断依次用26除7如果它们中有一个能整除7则7不是质数否则7是质数算法如下1第一步用2除7得到余数1因为余数不为0所以2不能整除7第二步用3除7得到余数1因为余数不为0所以3不能整除7第三步用4除7得到余数3因为余数不为0所以4不能整除7第四步用5除7得到余数2因为余数不为0所以5不能整除7第五步用6除7得到余数1因为余数不为0所以6不能整除7因此7是质数2类似地可写出判断35是否为质数的算法第一步用2除35得到余数1因为余数不为0所以2不能整除35第二步用3除35得到余数2因为余数不为0所以3不能整除35\n第三步用4除35得到余数3因为余数不为0所以4不能整除35第四步用5除35得到余数0因为余数为0所以5能整除35因此35不是质数点评上述算法有很大的局限性用上述算法判断35是否为质数还可以如果判断1997是否为质数就麻烦了因此我们需要寻找普适性的算法步骤变式训练请写出判断nn2是否为质数的算法分析对于任意的整数nn2若用i表示2n-1中的任意整数则判断n是否为质数的算法包含下面的重复操作用i除n得到余数r判断余数r是否为0若是则不是质数否则将i的值增加1再执行同样的操作这个操作一直要进行到i的值等于n-1为止算法如下第一步给定大于2的整数n第二步令i2第三步用i除n得到余数r第四步判断r0是否成立若是则n不是质数结束算法否则将i的值增加1仍用i表示第五步判断i>n-1是否成立若是则n是质数结束算法否则返回第三步例2写出用二分法求方程x2-20x0的近似解的算法\n分析令fxx2-2则方程x2-20x0的解就是函数fx的零点二分法的基本思想是把函数fx的零点所在的区间〔ab〕满足fa·fb0一分为二得到〔am〕和〔mb〕根据fa·fm0是否成立取出零点所在的区间〔am〕或〔mb〕仍记为〔ab〕对所得的区间〔ab〕重复上述步骤直到包含零点的区间〔ab〕足够小则〔ab〕内的数可以作为方程的近似解解第一步令fxx2-2给定精确度d第二步确定区间〔ab〕满足fa·fb0第三步取区间中点m第四步若fa·fm0则含零点的区间为〔am〕否则含零点的区间为〔mb〕将新得到的含零点的区间仍记为〔ab〕第五步判断〔ab〕的长度是否小于d或fm是否等于0若是则m是方程的近似解否则返回第三步当d0005时按照以上算法可以得到下表aba-b121115051251502513751501251375143750062514062514375003125140625142187500156251414062514218750007812514140625141796875000390625于是开区间14140625141796875中的实数都是当精确度为0005时的原方程的近似解实际上上述步骤也是求的近似值的一个算法\n点评算法一般是机械的有时需要进行大量的重复计算只要按部就班地去做总能算出结果通常把算法过程称为数学机械化数学机械化的最大优点是它可以借助计算机来完成实际上处理任何问题都需要算法如中国象棋有中国象棋的棋谱走法胜负的评判准则而国际象棋有国际象棋的棋谱走法胜负的评判准则再比如申请出国有一系列的先后手续购买物品也有相关的手续思路2例1一个人带着三只狼和三只羚羊过河只有一条船同船可容纳一个人和两只动物没有人在的时候如果狼的数量不少于羚羊的数量就会吃羚羊该人如何将动物转移过河请设计算法分析任何动物同船不用考虑动物的争斗但需考虑承载的数量还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量故在算法的构造过程中尽可能保证船里面有狼这样才能使得两岸的羚羊数量占到优势解具体算法如下算法步骤第一步人带两只狼过河并自己返回第二步人带一只狼过河自己返回第三步人带两只羚羊过河并带两只狼返回第四步人带一只羊过河自己返回第五步人带两只狼过河\n点评算法是解决某一类问题的精确描述有些问题使用形式化程序化的刻画是最恰当的这就要求我们在写算法时应精练简练清晰地表达要善于分析任何可能出现的情况体现思维的严密性和完整性本题型解决问题的算法中某些步骤重复进行多次才能解决在现实生活中很多较复杂的情境经常遇到这样的问题设计算法的时候如果能够合适地利用某些步骤的重复不但可以使得问题变得简单而且可以提高工作效率例2喝一杯茶需要这样几个步骤洗刷水壶烧水洗刷茶具沏茶.问如何安排这几个步骤并给出两种算法再加以比较.分析本例主要为加深对算法概念的理解可结合生活常识对问题进行分析然后解决问题.解算法一第一步洗刷水壶第二步烧水第三步洗刷茶具第四步沏茶算法二第一步洗刷水壶第二步烧水烧水的过程当中洗刷茶具第三步沏茶点评解决一个问题可有多个算法可以选择其中最优的最简单的步骤尽量少的算法.上面的两种算法都符合题意但是算法二运用了统筹方法的原理因此这个算法要比算法一更科学.例3写出通过尺轨作图确定线段AB一个5等分点的算法\n分析我们借助于平行线定理把位置的比例关系变成已知的比例关系只要按照规则一步一步去做就能完成任务解算法分析第一步从已知线段的左端点A出发任意作一条与AB不平行的射线AP第二步在射线上任取一个不同于端点A的点C得到线段AC第三步在射线上沿AC的方向截取线段CEAC第四步在射线上沿AC的方向截取线段EFAC第五步在射线上沿AC的方向截取线段FGAC第六步在射线上沿AC的方向截取线段GDAC那么线段AD5AC第七步连结DB第八步过C作BD的平行线交线段AB于M这样点M就是线段AB的一个5等分点点评用算法解决几何问题能很好地训练学生的思维能力并能帮助我们得到解决几何问题的一般方法可谓一举多得应多加训练知能训练设计算法判断一元二次方程ax2bxc0是否有实数根解算法步骤如下第一步输入一元二次方程的系数abc第二步计算Δb2-4ac的值第三步判断Δ≥0是否成立若Δ≥0成立输出方程有实根否则输出方程无实根结束算法\n点评用算法解决问题的特点是具有很好的程序性是一种通法并且具有确定性逻辑性有穷性让我们结合例题仔细体会算法的特点拓展提升中国网通规定拨打市内电话时如果不超过3分钟则收取话费022元如果通话时间超过3分钟则超出部分按每分钟01元收取通话费不足一分钟按一分钟计算设通话时间为t分钟通话费用y元如何设计一个程序计算通话的费用解算法分析数学模型实际上为y关于t的分段函数关系式如下y其中〔t-3〕表示取不大于t-3的整数部分算法步骤如下第一步输入通话时间t第二步如果t≤3那么y022否则判断t∈Z是否成立若成立执行y0201×t-3否则执行y0201×〔t-3〕1第三步输出通话费用c课堂小结1正确理解算法这一概念2结合例题掌握算法的特点能够写出常见问题的算法作业课本本节练习12设计感想\n本节的引入精彩独特让学生在感兴趣的故事里进入本节的学习算法是本章的重点也是本章的基础是一个较难理解的概念为了让学生正确理解这一概念本节设置了大量学生熟悉的事例让学生仔细体会反复训练本节的事例有古老的经典算法有几何算法等因此这是一节很好的课例\ncom程序框图与算法的基本逻辑结构整体设计教学分析用自然语言表示的算法步骤有明确的顺序性但是对于在一定条件下才会被执行的步骤以及在一定条件下会被重复执行的步骤自然语言的表示就显得困难而且不直观不准确因此本节有必要探究使算法表达得更加直观准确的方法程序框图用图形的方式表达算法使算法的结构更清楚步骤更直观也更精确为了更好地学好程序框图我们需要掌握程序框的功能和作用需要熟练掌握三种基本逻辑结构三维目标1.熟悉各种程序框及流程线的功能和作用2.通过模仿操作探索经历通过设计程序框图表达解决问题的过程在具体问题的解决过程中理解程序框图的三种基本逻辑结构顺序结构条件结构循环结构3通过比较体会程序框图的直观性准确性重点难点数学重点程序框图的画法数学难点程序框图的画法课时安排4课时教学过程第1课时程序框图及顺序结构\n导入新课思路1情境导入我们都喜欢外出旅游优美的风景美不胜收如果迷了路就不好玩了问路有时还听不明白真是急死人有的同学说买张旅游图不就好了吗所以外出旅游先要准备好旅游图旅游图看起来直观准确本节将探究使算法表达得更加直观准确的方法今天我们开始学习程序框图思路2直接导入用自然语言表示的算法步骤有明确的顺序性但是对于在一定条件下才会被执行的步骤以及在一定条件下会被重复执行的步骤自然语言的表示就显得困难而且不直观不准确因此本节有必要探究使算法表达得更加直观准确的方法今天开始学习程序框图推进新课新知探究提出问题1什么是程序框图2说出终端框起止框的图形符号与功能3说出输入输出框的图形符号与功能4说出处理框执行框的图形符号与功能5说出判断框的图形符号与功能6说出流程线的图形符号与功能7说出连接点的图形符号与功能8总结几个基本的程序框流程线和它们表示的功能\n9什么是顺序结构讨论结果1程序框图又称流程图是一种用程序框流程线及文字说明来表示算法的图形在程序框图中一个或几个程序框的组合表示算法中的一个步骤带有方向箭头的流程线将程序框连接起来表示算法步骤的执行顺序2椭圆形框表示程序的开始和结束称为终端框起止框.表示开始时只有一个出口表示结束时只有一个入口.3平行四边形框表示一个算法输入和输出的信息又称为输入输出框它有一个入口和一个出口.4矩形框表示计算赋值等处理操作又称为处理框执行框它有一个入口和一个出口.5菱形框是用来判断给出的条件是否成立根据判断结果来决定程序的流向称为判断框它有一个入口和两个出口.6流程线表示程序的流向.7圆圈连接点.表示相关两框的连接处圆圈内的数字相同的含义表示相连接在一起.8总结如下表\n图形符号名称功能终端框起止框表示一个算法的起始和结束输入输出框表示一个算法输入和输出的信息处理框执行框赋值计算判断框判断某一条件是否成立成立时在出口处标明是或Y不成立时标明否或N流程线连接程序框连接点连接程序框图的两部分9很明显顺序结构是由若干个依次执行的步骤组成的这是任何一个算法都离不开的基本结构三种逻辑结构可以用如下程序框图表示顺序结构条件结构循环结构应用示例例1请用程序框图表示前面讲过的判断整数nn2是否为质数的算法解程序框图如下点评程序框图是用图形的方式表达算法使算法的结构更清楚步骤更直观也更精确这里只是让同学们初步了解程序框图的特点感受它的优点暂不要求掌握它的画法变式训练观察下面的程序框图指出该算法解决的问题解这是一个累加求和问题共99项相加该算法是求的值例2已知一个三角形三条边的边长分别为abc利用海伦秦九韶公式设计一个计算三角形面积的算法并画出程序框图表示已知三角形三边边长分别为abc则三角形的面积为S其中p这个公式被称为海伦秦九韶公式算法分析这是一个简单的问题只需先算出p的值再将它代入分式最后输出结果因此只用顺序结构应能表达出算法\n算法步骤如下第一步输入三角形三条边的边长abc第二步计算p第三步计算S第四步输出S程序框图如下点评很明显顺序结构是由若干个依次执行的步骤组成的它是最简单的逻辑结构它是任何一个算法都离不开的基本结构变式训练下图所示的是一个算法的流程图已知a13输出的b7求a2的值解根据题意7∵a13∴a211即a2的值为11例3写出通过尺轨作图确定线段AB的一个5等分点的程序框图解利用我们学过的顺序结构得程序框图如下点评这个算法步骤具有一般性对于任意自然数n都可以按照这个算法的思想设计出确定线段的n等分点的步骤解决问题通过本题学习可以巩固顺序结构的应用知能训练有关专家建议在未来几年内中国的通货膨胀率保持在3左右这将对我国经济的稳定有利无害所谓通货膨胀率为3指的是每年消费品的价格增长率为3\n在这种情况下某种品牌的钢琴2004年的价格是10000元请用流程图描述这种钢琴今后四年的价格变化情况并输出四年后的价格解用P表示钢琴的价格不难看出如下算法步骤2005年P10000×13103002006年P10300×13106092007年P10609×1310927272008年P1092727×131125509因此价格的变化情况表为年份20042005200620072008钢琴的价格10000103001060910927271125509程序框图如下点评顺序结构只需严格按照传统的解决数学问题的解题思路将问题解决掉最后将解题步骤细化就可以细化指的是写出算法步骤画出程序框图拓展提升如下给出的是计算的值的一个流程图其中判断框内应填入的条件是答案i10课堂小结1掌握程序框的画法和功能2了解什么是程序框图知道学习程序框图的意义3掌握顺序结构的应用并能解决与顺序结构有关的程序框图的画法\n作业习题11A1设计感想首先本节的引入新颖独特旅游图的故事阐明了学习程序框图的意义通过丰富有趣的事例让学生了解了什么是程序框图进而激发学生学习程序框图的兴趣本节设计题目难度适中逐步把学生带入知识的殿堂是一节好的课例第2课时条件结构导入新课思路1情境导入我们以前听过这样一个故事野兽与鸟发生了一场战争蝙蝠来了野兽们喊道你有牙齿是我们一伙的鸟们喊道你有翅膀是我们一伙的蝙蝠一时没了主意过了一会儿蝙蝠有了一个好办法如果野兽赢了就加入野兽这一伙否则加入另一伙事实上蝙蝠用了分类讨论思想在算法和程序框图中也经常用到这一思想方法今天我们开始学习新的逻辑结构条件结构思路2直接导入前面我们学习了顺序结构顺序结构像是一条没有分支的河流奔流到海不复回事实上多数河流是有分支的今天我们开始学习有分支的逻辑结构条件结构推进新课新知探究\n提出问题1举例说明什么是分类讨论思想2什么是条件结构3试用程序框图表示条件结构4指出条件结构的两种形式的区别讨论结果1例如解不等式ax8a≠0不等式两边需要同除a需要明确知道a的符号但条件没有给出因此需要进行分类讨论这就是分类讨论思想2在一个算法中经常会遇到一些条件的判断算法的流程根据条件是否成立有不同的流向条件结构就是处理这种过程的结构3用程序框图表示条件结构如下.条件结构先根据条件作出判断再决定执行哪一种操作的结构就称为条件结构或分支结构如图1所示执行过程如下条件成立则执行A框不成立则执行B框.图1图2注无论条件是否成立只能执行AB之一不可能两个框都执行.AB两个框中可以有一个是空的即不执行任何操作如图24一种是在两个分支中均包含算法的步骤符合条件就执行步骤A否则执行步骤B另一种是在一个分支中均包含算法的步骤A而在另一个分支上不包含算法的任何步骤符合条件就执行步骤A否则执行这个条件结构后的步骤\n应用示例例1任意给定3个正实数设计一个算法判断以这3个正实数为三边边长的三角形是否存在并画出这个算法的程序框图算法分析判断以3个任意给定的正实数为三条边边长的三角形是否存在只需验证这3个数中任意两个数的和是否大于第3个数这个验证需要用到条件结构算法步骤如下第一步输入3个正实数abc第二步判断abcbcacab是否同时成立若是则存在这样的三角形否则不存在这样的三角形程序框图如右图点评根据构成三角形的条件判断是否满足任意两边之和大于第三边如果满足则存在这样的三角形如果不满足则不存在这样的三角形这种分类讨论思想是高中的重点在画程序框图时常常遇到需要讨论的问题这时要用到条件结构例2设计一个求解一元二次方程ax2bxc0的算法并画出程序框图表示算法分析我们知道若判别式Δb2-4ac0则原方程有两个不相等的实数根x1x2若Δ0则原方程有两个相等的实数根x1x2若Δ\n0则原方程没有实数根也就是说在求解方程之前可以先判断判别式的符号根据判断的结果执行不同的步骤这个过程可以用条件结构实现又因为方程的两个根有相同的部分为了避免重复计算可以在计算x1和x2之前先计算pq解决这一问题的算法步骤如下第一步输入3个系数abc第二步计算Δb2-4ac第三步判断Δ≥0是否成立若是则计算pq否则输出方程没有实数根结束算法第四步判断Δ0是否成立若是则输出x1x2p否则计算x1pqx2p-q并输出x1x2程序框图如下例3设计算法判断一元二次方程ax2bxc0是否有实数根并画出相应的程序框图解算法步骤如下第一步输入3个系数abc第二步计算Δb2-4ac第三步判断Δ≥0是否成立若是则输出方程有实根否则输出方程无实根结束算法相应的程序框图如右点评根据一元二次方程的意义需要计算判别式Δb2-4ac的值再分成两种情况处理1当Δ≥0时一元二次方程有实数根\n2当Δ<0时一元二次方程无实数根该问题实际上是一个分类讨论问题根据一元二次方程系数的不同情况最后结果就不同因而当给出一个一元二次方程时必须先确定判别式的值然后再用判别式的值的取值情况确定方程是否有解该例仅用顺序结构是办不到的要对判别式的值进行判断需要用到条件结构例41设计算法求axb0的解并画出流程图解对于方程axb0来讲应该分情况讨论方程的解我们要对一次项系数a和常数项b的取值情况进行分类分类如下1当a≠0时方程有唯一的实数解是2当a0b0时全体实数都是方程的解3当a0b≠0时方程无解联想数学中的分类讨论的处理方式可得如下算法步骤第一步判断a≠0是否成立若成立输出结果解为第二步判断a0b0是否同时成立若成立输出结果解集为R第三步判断a0b≠0是否同时成立若成立输出结果方程无解结束算法程序框图如下点评这是条件结构叠加问题条件结构叠加程序执行时需依次对条件1条件2条件3都进行判断只有遇到能满足的条件才执行该条件对应的操作知能训练\n设计算法找出输入的三个不相等实数abc中的最大值并画出流程图解算法步骤第一步输入abc的值第二步判断ab是否成立若成立则执行第三步否则执行第四步第三步判断ac是否成立若成立则输出a并结束否则输出c并结束第四步判断bc是否成立若成立则输出b并结束否则输出c并结束程序框图如下点评条件结构嵌套与条件结构叠加的区别1条件结构叠加程序执行时需依次对条件1条件2条件3都进行判断只有遇到能满足的条件才执行该条件对应的操作2条件结构的嵌套中条件2是条件1的一个分支条件3是条件2的一个分支依此类推这些条件中很多在算法执行过程中根据所处的分支位置不同可能不被执行3条件结构嵌套所涉及的条件2条件3是在前面的所有条件依次一个一个的满足分支条件成立的情况下才能执行的此操作是多个条件同时成立的叠加和复合例5特快专递是目前人们经常使用的异地邮寄信函或托运物品的一种快捷方式某快递公司规定甲乙两地之间物品的托运费用根据下列方法计算\nf其中f单位元为托运费ω为托运物品的重量单位千克试画出计算费用f的程序框图分析这是一个实际问题根据数学模型可知求费用f的计算公式随物品重量ω的变化而有所不同因此计算时先看物品的重量在不同的条件下执行不同的指令这是条件结构的运用是二分支条件结构其中物品的重量通过输入的方式给出解算法程序框图如右图拓展提升有一城市市区为半径为15km的圆形区域近郊区为距中心1525km的范围内的环形地带距中心25km以外的为远郊区如右图所示.市区地价每公顷100万元近郊区地价每公顷60万元远郊区地价为每公顷20万元输入某一点的坐标为xy求该点的地价.分析由该点坐标xy求其与市中心的距离r确定是市区近郊区还是远郊区进而确定地价p.由题意知p解程序框图如下课堂小结1理解两种条件结构的特点和区别2能用学过的两种条件结构解决常见的算法问题作业习题11A组3设计感想\n本节采用引人入胜的方法引入正课选用的例题难度适中有的经典实用有的新颖独特每个例题都是很好的素材条件结构是逻辑结构的核心是培养学生逻辑推理的好素材本节设计符合新课标精神难度设计略高于教材第3课时循环结构导入新课思路1情境导入我们都想生活在一个优美的环境中希望看到的是碧水蓝天大家知道工厂的污水是怎样处理的吗污水进入处理装置后进行第一次处理如果达不到排放标准则需要再进入处理装置进行处理直到达到排放标准污水处理装置是一个循环系统对于处理需要反复操作的事情有很大的优势我们数学中有很多问题需要反复操作今天我们学习能够反复操作的逻辑结构循环结构思路2直接导入前面我们学习了顺序结构顺序结构像一条没有分支的河流奔流到海不复回上一节我们学习了条件结构条件结构像有分支的河流最后归入大海事实上很多水系是循环往复的今天我们开始学习循环往复的逻辑结构循环结构推进新课新知探究提出问题1请大家举出一些常见的需要反复计算的例子2什么是循环结构循环体\n3试用程序框图表示循环结构4指出两种循环结构的相同点和不同点讨论结果1例如用二分法求方程的近似解数列求和等2在一些算法中经常会出现从某处开始按照一定的条件反复执行某些步骤的情况这就是循环结构反复执行的步骤称为循环体3在一些算法中要求重复执行同一操作的结构称为循环结构即从算法某处开始按照一定条件重复执行某一处理的过程重复执行的处理步骤称为循环体循环结构有两种形式当型循环结构和直到型循环结构1°当型循环结构如图1所示它的功能是当给定的条件P成立时执行A框A框执行完毕后返回来再判断条件P是否成立如果仍然成立返回来再执行A框如此反复执行A框直到某一次返回来判断条件P不成立时为止此时不再执行A框离开循环结构继续执行下面的框图2°直到型循环结构如图2所示它的功能是先执行重复执行的A框然后判断给定的条件P是否成立如果P仍然不成立则返回来继续执行A框再判断条件P是否成立继续重复操作直到某一次给定的判断条件P时成立为止此时不再返回来执行A框离开循环结构继续执行下面的框图见示意图当型循环结构直到型循环结构4\n两种循环结构的不同点直到型循环结构是程序先进入循环体然后对条件进行判断如果条件不满足就继续执行循环体直到条件满足时终止循环当型循环结构是在每次执行循环体前先对条件进行判断当条件满足时执行循环体否则终止循环两种循环结构的相同点两种不同形式的循环结构可以看出循环结构中一定包含条件结构用于确定何时终止执行循环体应用示例思路1例1设计一个计算12100的值的算法并画出程序框图算法分析通常我们按照下列过程计算12100的值第1步011第2步123第3步336第4步6410第100步49501005050显然这个过程中包含重复操作的步骤可以用循环结构表示分析上述计算过程可以发现每一步都可以表示为第i-1步的结果i第i步的结果为了方便有效地表示上述过程我们用一个累加变量S来表示第一步的计算结果即把Si的结果仍记为S从而把第i步表示为SSi其中S的初始值为0i依次取12100由于i同时记录了循环的次数所以也称为计数变量解决这一问题的算法是第一步令i1S0\n第二步若i≤100成立则执行第三步否则输出S结束算法第三步SSi第四步ii1返回第二步程序框图如右上述程序框图用的是当型循环结构如果用直到型循环结构表示则程序框图如下点评这是一个典型的用循环结构解决求和的问题有典型的代表意义可把它作为一个范例仔细体会三种逻辑结构在程序框图中的作用学会画程序框图变式训练已知有一列数设计框图实现求该列数前20项的和.分析该列数中每一项的分母是分子数加1单独观察分子恰好是1234n因此可用循环结构实现设计数器i用ii1实现分子设累加器S用S可实现累加注意i只能加到20.解程序框图如下方法一方法二点评在数学计算中ii1不成立SSi只有在i0时才能成立.在计算机程序中它们被赋予了其他的功能不再是数学中的相等关系而是赋值关系.变量i用来作计数器ii1的含义是将变量i的值加1然后把计算结果再存贮到变量i中即计数器i在原值的基础上又增加了1.\n变量S作为累加器来计算所求数据之和.如累加器的初值为0当第一个数据送到变量i中时累加的动作为SSi即把S的值与变量i的值相加结果再送到累加器S中如此循环则可实现数的累加求和.例2某厂2005年的年生产总值为200万元技术革新后预计以后每年的年生产总值都比上一年增长5设计一个程序框图输出预计年生产总值超过300万元的最早年份算法分析先写出解决本例的算法步骤第一步输入2005年的年生产总值第二步计算下一年的年生产总值第三步判断所得的结果是否大于300若是则输出该年的年份算法结束否则返回第二步由于第二步是重复操作的步骤所以本例可以用循环结构来实现我们按照确定循环体初始化变量设定循环控制条件的顺序来构造循环结构1确定循环体设a为某年的年生产总值t为年生产总值的年增长量n为年份则循环体为t005aaatnn12初始化变量若将2005年的年生产总值看成计算的起始点则n的初始值为2005a的初始值为2003设定循环控制条件当年生产总值超过300万元时终止循环所以可通过判断a300是否成立来控制循环程序框图如下思路2例1设计框图实现1357131的算法.\n分析由于需加的数较多所以要引入循环结构来实现累加.观察所加的数是一组有规律的数每相临两数相差2那么可考虑在循环过程中设一个变量i用ii2来实现这些有规律的数设一个累加器sum用来实现数的累加在执行时每循环一次就产生一个需加的数然后加到累加器sum中.解算法如下第一步赋初值i1sum0第二步sumsumiii2第三步如果i≤131则反复执第二步否则执行下一步第四步输出sum第五步结束.程序框图如右图.点评1设计流程图要分步进行把一个大的流程图分割成几个小的部分按照三个基本结构即顺序条件循环结构来局部安排然后把流程图进行整合.2框图画完后要进行验证按设计的流程分析是否能实现所求的数的累加分析条件是否加到131就结束循环所以我们要注意初始值的设置循环条件的确定以及循环体内语句的先后顺序三者要有机地结合起来.最关键的是循环条件它决定循环次数可以想一想为什么条件不是i131或i131如果是i131那么会少执行一次循环131就加不上了.例2\n高中某班一共有40名学生设计算法流程图统计班级数学成绩良好分数80和优秀分数90的人数.分析用循环结构实现40个成绩的输入每循环一次就输入一个成绩s然后对s的值进行判断设两个计数器mn如果s90则mm1如果80s≤90则nn1设计数器i用来控制40个成绩的输入注意循环条件的确定.解程序框图如下图知能训练由相应的程序框图如右图补充完整一个计算123100的值的算法用循环结构第一步设i的值为第二步设sum的值为第三步如果i≤100执行第步否则转去执行第步第四步计算sum+i并将结果代替第五步计算并将结果代替i第六步转去执行第三步第七步输出sum的值并结束算法分析流程图各图框的内容语言和符号要与算法步骤相对应在流程图中算法执行的顺序应按箭头方向进行解第一步设i的值为1第二步设sum的值为0第三步如果i≤100执行第四步否则转去执行第七步第四步计算sum+i并将结果代替sum\n第五步计算i+1并将结果代替i第六步转去执行第三步第七步输出sum的值并结束算法拓展提升设计一个算法求124249的值并画出程序框图解算法步骤第一步sum0第二步i0第三步sumsum2i第四步ii1第五步判断i是否大于49若成立则输出sum结束否则返回第三步重新执行程序框图如右图点评1如果算法问题里涉及的运算进行了许多次重复的操作且先后参与运算的数之间有相同的规律就可引入变量循环参与运算我们称之为循环变量应用于循环结构在循环结构中要注意根据条件设计合理的计数变量累加和累乘变量及其个数等特别要求条件的表述要恰当精确2累加变量的初始值一般取0而累乘变量的初始值一般取1课堂小结1熟练掌握两种循环结构的特点及功能\n2能用两种循环结构画出求和等实际问题的程序框图进一步理解学习算法的意义作业习题11A组2设计感想本节的引入抓住了本节的特点利用计算机进行循环往复运算解决累加累乘等问题循环结构是逻辑结构中的难点它一定包含一个条件结构它能解决很多有趣的问题本节选用了大量精彩的例题对我们系统掌握程序框图有很大的帮助第4课时程序框图的画法导入新课思路1情境导入一条河流有时像顺序结构奔流到海不复回有时像条件结构分分合合向前进有时像循环结构虽有反复但最后流入大海一个程序框图就像一条河流包含三种逻辑结构今天我们系统学习程序框图的画法思路2直接导入前面我们学习了顺序结构条件结构循环结构今天我们系统学习程序框图的画法推进新课新知探究提出问题1请大家回忆顺序结构并用程序框图表示2请大家回忆条件结构并用程序框图表示3请大家回忆循环结构并用程序框图表示\n4总结画程序框图的基本步骤讨论结果1顺序结构是由若干个依次执行的步骤组成的这是任何一个算法都离不开的基本结构框图略2在一个算法中经常会遇到一些条件的判断算法的流程根据条件是否成立有不同的流向条件结构就是处理这种过程的结构框图略3在一些算法中要求重复执行同一操作的结构称为循环结构即从算法某处开始按照一定条件重复执行某一处理过程重复执行的处理步骤称为循环体循环结构有两种形式当型循环结构和直到型循环结构框图略4从前面的学习可以看出设计一个算法的程序框图通常要经过以下步骤第一步用自然语言表达算法步骤第二步确定每一个算法步骤所包含的逻辑结构并用相应的程序框表示得到该步骤的程序框图第三步将所有步骤的程序框图用流程线连接起来并加上终端框得到表示整个算法的程序框图应用示例例1结合前面学过的算法步骤利用三种基本逻辑结构画出程序框图表示用二分法求方程x2-20x0的近似解的算法算法分析1算法步骤中的第一步第二步和第三步可以用顺序结构来表示如下图\n2算法步骤中的第四步可以用条件结构来表示如下图在这个条件结构中否分支用am表示含零点的区间为〔mb〕并把这个区间仍记成〔ab〕是分支用bm表示含零点的区间为〔am〕同样把这个区间仍记成〔ab〕3算法步骤中的第五步包含一个条件结构这个条件结构与第三步第四步构成一个循环结构循环体由第三步和第四步组成终止循环的条件是a-b<d或fm0在第五步中还包含由循环结构与输出m组成的顺序结构如下图4将各步骤的程序框图连接起来并画出开始与结束两个终端框就得到了表示整个算法的程序框图如下图点评在用自然语言表述一个算法后可以画出程序框图用顺序结构条件结构和循环结构来表示这个算法这样表示的算法清楚简练便于阅读和交流例2相传古代的印度国王要奖赏国际象棋的发明者问他需要什么发明者说陛下在国际象棋的第一个格子里面放1粒麦子在第二个格子里面放2粒麦子第三个格子放4粒麦子以后每个格子中的麦粒数都是它前一个格子中麦粒数的二倍依此类推国际象棋棋盘共有64个格子请将这些麦子赏给我我将感激不尽国王想这还不容易就让人扛了一袋小麦但不到一会儿就没了最后一算结果全印度一年生产的粮食也不够国王很奇怪小小的棋盘不足100个格子如此计算怎么能放这么多麦子试用程序框图表示此算法过程解将实际问题转化为数学模型该问题就是要求124263的和\n程序框图如下点评对于开放式探究问题我们可以建立数学模型上面的题目可以与等比数列的定义性质和公式联系起来和过程模型来分析算法通过设计算法以及语言的描述选择一些成熟的办法进行处理例3乘坐火车时可以托运货物.从甲地到乙地规定每张火车客票托运费计算方法是行李质量不超过50kg时按0.25元kg超过50kg而不超过100kg时其超过部分按0.35元kg超过100kg时其超过部分按0.45元kg.编写程序输入行李质量计算出托运的费用.分析本题主要考查条件语句及其应用.先解决数学问题列出托运的费用关于行李质量的函数关系式.设行李质量为xkg应付运费为y元则运费公式为y整理得y要计算托运的费用必须对行李质量分类讨论因此要用条件语句来实现.解算法分析第一步输入行李质量x第二步当x≤50时计算y025x否则执行下一步第三步当x≤100计算y035x-5否则计算y045x-15第四步输出y.程序框图如下\n知能训练设计一个用有理数数幂逼近无理指数幂的算法画出算法的程序框图解算法步骤第一步给定精确度d令i1第二步取出的到小数点后第i位的不足近似值记为a取出的到小数点后第i位的过剩近似值记为b第三步计算m5b-5a第四步若md则得到的近似值为5a否则将i的值增加1返回第二步第五步得到的近似值为5a程序框图如下拓展提升求画出程序框图.分析如果采用逐步计算的方法利用顺序结构来实现则非常麻烦由于前后的运算需重复多次相同的运算所以应采用循环结构可用循环结构来实现其中的规律.观察原式中的变化的部分及不变项找出总体的规律是4要实现这个规律需设初值x4.解程序框图如下课堂小节1进一步熟悉三种逻辑结构的应用理解算法与程序框图的关系2根据算法步骤画出程序框图\n作业习题11B组12设计感想本节是前面内容的概括和总结在回忆前面内容的基础上选择经典的例题进行了详尽的剖析这样降低了学生学习的难度另外本节的练习难度适中并且多为学生感兴趣的问题这样为学生学好本节内容作好充分准备希望大家喜欢这一节课\n12基本算法语句com输入语句输出语句和赋值语句整体设计教学分析通过上一节的学习学生了解了算法的含义学习了用算法步骤和程序框图表示算法的方法本节介绍用程序设计语言表示算法的方法算法步骤和程序框图表示的算法计算机是不能理解的程序是算法的精确形式是计算机可以理解的算法本节的教学重点是通过实例使学生理解三种基本算法语句的结构和用法并在此基础上编写由算法语句组成的程序从而更细致地刻画算法进一步体会算法的基本思想三维目标1.理解学习基本算法语句的意义2.学会输入语句输出语句和赋值语句的基本用法3理解算法步骤程序框图和算法语句的关系学会算法语句的写法重点难点教学重点输入语句输出语句和赋值语句的基本用法教学难点算法语句的写法课时安排1课时教学过程导入新课\n思路1情境导入中国足球队在亚洲杯上的失利说明中国足球仍然需要请外国教练高水平的外国教练有先进的足球理念有系统科学的训练计划有先进的足球技术但由于语言不通不能直接传授给队员算法步骤程序框图虽然容易掌握但计算机不能理解因此我们需要学习算法语句思路2直接导入前面我们学习了程序框图的画法为了让计算机能够理解算法步骤程序框图我们开始学习算法语句推进新课新知探究提出问题1指出输入语句的格式功能要求2指出输出语句的格式功能要求3指出赋值语句的格式功能要求4利用框图总结三种语句的功能格式特点5指出三种语句与框图的对应关系讨论结果1输入语句的格式INPUT提示内容变量例如INPUTxx功能实现算法的输入变量信息数值或字符的功能要求1°输入语句要求输入的值是具体的常量\n2°提示内容提示用户输入的是什么信息必须加双引号提示内容原原本本的在计算机屏幕上显示提示内容与变量之间要用分号隔开3°一个输入语句可以给多个变量赋值中间用分隔形式如INPUTabcabc2输出语句的一般格式PRINT提示内容表达式例如PRINTSS功能实现算法输出信息表达式的功能要求1°表达式是指算法和程序要求输出的信息2°提示内容提示用户要输出的是什么信息提示内容必须加双引号提示内容要用分号和表达式分开3°如同输入语句一样输出语句可以一次完成输出多个表达式的功能不同的表达式之间可用分隔形式如PRINTabcabc3赋值语句的一般格式变量表达式赋值语句中的=称作赋值号功能将表达式所代表的值赋给变量要求1°赋值语句左边只能是变量名字而不是表达式右边表达式可以是一个常量变量或含变量的运算式如2x是错误的2°赋值号的左右两边不能对换赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量如ABBA的含义运行结果是不同的如x\n5是对的5x是错的ABC是错的CAB是对的3°不能利用赋值语句进行代数式的演算如化简因式分解解方程等如yx2-1x-1x1这是实现不了的在赋值号右边表达式中每一个变量的值必须事先赋给确定的值在一个赋值语句中只能给一个变量赋值不能出现两个或以上的但对于同一个变量可以多次赋值4三种语句的功能格式特点如下在QBASIC语言中输入语句是INPUT语句输出语句是PRINT语句赋值语句是LET语句LET可以省略下表列出了这三种语句的一般格式主要功能和相关说明供教师教学时参考不要求学生掌握INPUT语句PRINT语句赋值语句格式INPUT提示内容变量PRINT提示内容表达式LET变量表达式功能可对程序中的变量赋值可输出表达式的值计算可对程序中的变量赋值计算说明①又称键盘输入语句在程序运行过程中停机等候用户由键盘输入数据而不需要在写程序时指定②提示内容和它后面的可以省略③一个语句可以给多个变量赋值中间用分隔④无计算功能⑤用户由键盘输入的数据必须是常量输入多个数据时用分隔且个数要与变量的个数相同①又称打印语句将表达式的值在屏幕上显示出来②表达式可以是变量计算公式或系统信息③一个语句可以输出多个表达式不同的表达式之间可用分隔\n④有计算功能能直接输出计算公式的值①在程序运行过程中给变量赋值②LET可以省略的右侧必须是表达式左侧必须是变量③一个语句只能给一个变量赋值④有计算功能⑤将一个变量的值赋给另一个变量前一个变量的值保持不变可先后给一个变量赋多个不同的值但变量的取值总是最后被赋予的值5指出三种语句与框图的对应关系如下图应用示例思路1例1用描点法作函数yx33x2-24x30的图象时需要求出自变量和函数的一组对应值编写程序分别计算当x-5-4-3-2-1012345时的函数值算法分析根据题意对于每一个输入的自变量的值都要输出相应的函数值写成算法步骤如下第一步输入一个自变量的x的值第二步计算yx33x2-24x30第三步输出y程序框图如下图显然这是一个由顺序结构构成的算法按照程序框图中流程线的方向依次将程序框中的内容写成相应的算法语句就得相应的程序解程序\nINPUTxxyx33x2-24x30PRINTyEND点评前面我们学习了算法步骤程序框图我们对照程序框图与算法语句可以得到它们之间的对应关系例如在这个程序中第1行中的INPUT语句就是输入语句这个语句的一般格式是INPUT提示内容变量其中提示内容一般是提示用户输入什么样的信息每次运行例1中的程序时依次输入-5-4-3-2-1012345计算机每次都把新输入的值赋给变量x并按x新获得的值计算变量y的值例2给一个变量重复赋值解程序A10AA15PRINTAEND点评给一个变量重复赋值变量只保存最后一次赋值比如此程序的输出值是25例3编写程序计算一个学生数学语文英语三门课的平均成绩算法分析先写出解决本例的算法步骤第一步输入该学生数学语文英语三门课的成绩abc\n第二步计算y第三步输出y程序框图如下由于PRINT语句还可以用于输出数值计算的结果所以这个算法可以写成下列程序程序INPUTMathsaINPUTChinesebINPUTEnglishcPRINTTheaverageabc3END点评例3中的第4行的PRINT语句是输出语句它的一般形式是PRINT提示内容表达式PRINT语句可以在计算机的屏幕上输出常量变量的值和系统信息同输入语句一样这里的表达式前也可以有提示内容例4变换两个变量A和B的值并输出交换前后的值解程序INPUTABPRINTABxAAB\nBxPRINTABEND思路2例1写出求三个数abc的方差的程序分析方差是在初中统计内容中学习过的知识计算所有数的方差首先计算所有数的平均数通过公式s2来计算算法步骤第一步计算平均数第二步计算方差s2第三步得到的结果即为所求程序如下INPUTabcyabc3Sa-y2b-y2c-y23PRINTSEND点评套用公式求值问题是传统数学求值问题的一种它是一种典型的顺序结构也就是说只通过输入输出和赋值语句就可以完成任务解决这类问题的关键是先分析这种问题的解法即构造计算的过程再写出算法步骤和流程图再翻译成算法语句即可例2\n编写一个程序要求输入两个正数a和b的值输出ab和ba的值分析可以利用INPUT语句输入两个正数然后将ab和ba的值分别赋给两个变量输出即可也可以将ab和ba的底数和幂数进行交换故还可以利用赋值语句采用将两个变量的值互换的办法实现解程序1INPUTababAabBbaPRINTabAbaBEND程序2INPUTababAabPRINTabAxaabbxAabPRINTbaAEND点评交换ab的值可通过下面三个语句来实现ta\nabbt通过引进一个中间变量t实现变量a和b的值的交换因此只需用赋值语句即可实现算法在一些较为复杂的问题算法中经常需要对两个变量的值进行交换因此应熟练掌握这种方法知能训练1判断下列给出的输入语句输出语句和赋值语句是否正确为什么1输入语句INPUTabc2输出语句A=43赋值语句3=B4赋值语句A=B=-2解1错变量之间应用号隔开2错PRINT语句不能用赋值号3错赋值语句中号左右不能互换4错一个赋值语句只能给一个变量赋值点评输入语句输出语句和赋值语句基本上对应于算法中的顺序结构输入语句输出语句和赋值语句都不包括控制转移由它们组成的程序段必然是顺序结构2请写出下面运算输出的结果1a5b3\ncab2dccPRINTdd2a1b2cabbac-bPRINTabcabc3a10b20c30abbccaPRINTabcabc解116语句cab2是将ab和的一半赋值给变量c语句dcc是将c的平方赋值给d最后输出d的值2123语句cab是将ab的和赋值给c语句bac-b是将ac-b的值赋值给了b3203020经过语句ab后abc的值是202030经过语句bc后abc的值是203030经过语句ca后abc的值是203020\n点评语句的识别问题是一个逆向性思维一般我们认为我们的学习是从算法步骤自然语言至程序框图再到算法语言程序如果将程序摆在我们的面前时我们要先识别每个语句再整体把握并概括出程序的功能拓展提升已知某生某三科的成绩为807595分求三科的总分及平均分.分析将三科成绩赋给三个变量ABC然后对三个变量进行操作运算求其总分平均分.变量的起名规则由字母数字下划线组成但第一个字符必须是字母大小写皆可起名时尽量做到见名知义如本例中我们可用变量ZF表示总分PJF表示平均分.解程序框图如下图程序A80B75C95ZFABCPJFZF3PRINTZFPJFEND课堂小结1输入语句输出语句和赋值语句的基本用法2用输入语句输出语句和赋值语句编写算法语句作业习题12A组2\n设计感想本节的引入阐明了程序框图与算法语句的关系本节利用框图与语句的对应关系降低了本节的学习难度由于本节是算法语句的开始所以本节选用了大量难度较低的算法语句供学生练习让学生充分体会程序框图与算法语句的关系为今后的学习打好基础并树立信心\ncom条件语句整体设计教学分析通过上一节的学习学生学会了输入语句输出语句和赋值语句的基本用法本节介绍条件语句的用法程序中的条件语句与程序框图中的条件结构存在一一对应关系这种对应关系对于学生理解条件语句的结构进一步理解算法中的条件结构都是很有帮助的我们可以给出条件语句的一般格式让学生自己画出相应的程序框图也可以给出程序框图让学生写出算法语句三维目标1.理解学习基本算法语句的意义2.学会条件语句的基本用法3理解算法步骤程序框图和算法语句的关系学会算法语句的写法重点难点教学重点条件语句的基本用法教学难点算法语句的写法课时安排1课时教学过程导入新课思路1情境导入\n一位老农平整了一块良田种瓜好呢还是种豆好呢他面临着一个选择如果他选择种瓜他会得瓜如果他选择种豆他会得豆人的一生面临许多选择我们要做出正确的选择前面我们学习了条件结构今天我们学习条件语句思路2直接导入前面我们学习了程序框图的画法为了让计算机能够理解算法步骤程序框图上一节我们学习了输入语句输出语句赋值语句今天我们开始学习条件语句推进新课新知探究提出问题1回忆程序框图中的两种条件结构2指出条件语句的格式及功能3指出两种条件语句的相同点与不同点4揭示程序中的条件语句与程序框图中的条件结构存在一一对应关系讨论结果1一个算法中经常会遇到一些条件的判断算法的流程根据条件是否成立有不同的流向条件结构就是处理这种过程的结构用程序框图表示条件结构如下图2条件语句1°IFTHENELSE语句\n格式IF条件THEN语句体1ELSE语句体2ENDIF功能在IFTHENELSE语句中条件表示判断的条件语句体1表示满足条件时执行的操作内容语句体2表示不满足条件时执行的操作内容ENDIF表示条件语句的结束计算机在执行IFTHENELSE语句时首先对IF后的条件进行判断如果符合条件则执行THEN后面的语句1若不符合条件则执行ELSE后面的语句22°IFTHEN语句格式IF条件THEN语句体ENDIF功能条件表示判断的条件语句表示满足条件时执行的操作内容条件不满足时直接结束判断过程ENDIF表示条件语句的结束计算机在执行IFTHEN语句时首先对IF后的条件进行判断如果符合条件就执行THEN后边的语句若不符合条件则直接结束该条件语句转而执行其他后面的语句\n3相同点首先对IF后的条件进行判断如果符合条件就执行THEN后边的语句不同点对于IFTHENELSE语句若不符合条件则执行ELSE后面的语句体2对于IFTHEN语句若不符合条件则直接结束该条件语句转而执行其他后面的语句4程序中的条件语句与程序框图中的条件结构存在一一对应关系如下图应用示例思路1例1编写一个程序求实数x的绝对值算法分析首先我们来设计求实数x的绝对值的算法因为实数x的绝对值为x所以算法步骤可以写成第一步输入一个实数x第二步判断x的符号若x≥0则输出x否则输出-x显然第二步可以用条件结构来实现程序框图如下图程序INPUTxIFx>0THENPRINTx\nELSEPRINT-xENDIFEND点评通过本题我们看到算法步骤可以转化为程序框图程序框图可以转化为算法语句本题揭示了它们之间的内在联系只要理解了程序框图与算法语句的对应关系把程序框图转化为算法语句就很容易了变式训练阅读下面的程序你能得出什么结论INPUTxIFx<0THENx-xENDIFPRINTxEND解由程序得出该程序是输出x的绝对值例2把前面求解一元二次方程ax2bxc0的程序框图转化为程序解由程序框图可以发现其中包含着两个条件结构而且内层的条件结构是外层的条件结构的一个分支所以可以用IFTHENELSEENDIF来完成转化程序\nINPUTabcabcdb2-4acIFd>0THENp-b2aqSQRd2aIFd0THENPRINTx1x2pELSEPRINTx1x2pqp-qENDIFELSEPRINTNorealrootENDIFEND例3编写程序使任意输入的3个整数按从大到小的顺序输出算法分析用abc表示输入的3个整数为了节约变量把它们重新排列后仍用abc表示并使a≥b≥c具体操作步骤如下第一步输入3个整数abc第二步将a与b比较并把小者赋给b大者赋给a第三步将a与c比较并把小者赋给c大者赋给a此时a已是三者中最大的\n第四步将b与c比较并把小者赋给c大者赋给b此时abc已按从大到小的顺序排列好第五步按顺序输出abc如下图所示上述操作步骤可以用程序框图更直观地表达出来根据程序框图写出相应的计算机程序INPUTabcabcIFb>aTHENtaabbtENDIFIFc>aTHENtaacctENDIFIFc>bTHENtbbcctENDIFPRINTabcEND\n思路2例1编写程序输出两个不相等的实数ab的最大值分析要输出两个不相等的实数ab的最大值从而想到对ab的大小关系进行判断ab的大小关系有两种情况1ab2ba这也就用到了我们经常提及的分类讨论的方式找出两个数的最大值解算法一第一步输入ab的数值第二步判断ab的大小关系若ab则输出a的值否则输出b的值程序框图如下图程序如下IFTHENELSE语句INPUTababIFa>bTHENPRINTaELSEPRINTbENDIFEND算法二第一步输入ab的数值第二步判断ab的大小关系若ba则将b的值赋予a否则直接执行第三步第三步输出a的值结束\n程序框图如下图程序如下IFTHEN语句INPUTababIFb>aTHENabENDIFPRINTaEND点评设计一个好的算法需要在大量的算法设计中积累经验我们也可以先根据自己的思路设计算法再与成形的高效的优秀的算法比较改进思路改进算法以避免重复计算等问题提高算法设计的水平2我们在平常的训练中尽可能地少引用变量过多的变量不仅会使得算法和程序变得复杂而且不利于计算机的执行为此我们在练习中要尽可能少引入变量并且要积极思考才能少引入变量例2高等数学中经常用到符号函数符号函数的定义为y试编写程序输入x的值输出y的值解程序一嵌套结构程序框图下图程序如下INPUTxIFx0THENy1\nELSEIFx0THENy0ELSEy-1ENDIFENDIFPRINTyEND程序二叠加结构程序框图右图程序如下INPUTxIFx0THENy1ENDIFIFx0THENy0ENDIFIFx0THENy-1ENDIF\nPRINTyEND点评1条件结构的差异造成程序执行的不同当代入x的数值时程序一先判断外层的条件依次执行不同的分支随后再判断内层的条件而程序二中执行了对条件1的判断同时也对条件2进行判断是按程序中条件语句的先后依次判断所有的条件满足哪个条件就执行哪个语句2条件语句的嵌套可多于两层可以表达算法步骤中的多重限制条件知能训练中国网通规定拨打市内电话时如果不超过3分钟则收取话费022元如果通话时间超过3分钟则超出部分按每分钟01元收取通话费不足一分钟按以一分钟计算设通话时间为t分钟通话费用y元如何设计一个程序计算通话的费用解算法程序如下INPUT请输入通话时间tIFt3THENy022ELSEIFINTttTHENy02201t-3ELSE\ny02201INTt-31ENDIFENDIFPRINT通话费用为yEND拓展提升写出求函数的函数值的程序解INPUTxxIFx0andx4THENy2xELSEIFx8THENy8ELSEy212-xENDIFENDIFPRINTyEND课堂小结1条件语句的用法2利用条件语句编写算法语句作业习题12B组1\n设计感想条件语句是算法语句的基础和核心本节设计以条件结构和条件语句的对应关系为基础引导学生将程序框图转化为算法语句本节的难点是正确区分叠加结构和镶嵌结构并会应用它们编写算法语句本节选用大量精彩题目让学生反复训练使学生熟练掌握程序框图与算法语句的关系达到解决本节难点的目的\ncom句整体设计教学分析通过前面的学习学生学会了输入语句输出语句赋值语句和条件语句的基本用法本节将介绍循环语句的用法程序中的循环语句与程序框图中的循环结构存在一一对应关系这种对应关系对于学生理解循环语句的结构进一步理解算法中的循环结构都是很有帮助的我们可以给出循环语句的一般格式让学生自己画出相应的程序框图也可以给出程序框图让学生写出算法语句提高学生的应用能力三维目标1.理解学习基本算法语句的意义2.学会循环语句的基本用法3理解算法步骤程序框图和算法语句的关系学会算法语句的写法重点难点教学重点循环语句的基本用法教学难点循环语句的写法课时安排1课时教学过程导入新课思路1情境导入\n一位同学不小心违反了学校纪律班主任令其写检查他写完后交给班主任班主任看后说认识不深刻拿回去重写直到认识深刻为止这位同学一想这不是一个循环结构吗可惜我还没学循环语句不然可以写一个算法语句输入计算机了同学们今天我们开始学习循环语句思路2直接导入前面我们学习了程序框图的画法为了让计算机能够理解算法步骤程序框图上一节我们学习了输入语句输出语句赋值语句和条件语句今天我们开始学习循环语句推进新课新知探究提出问题1试用程序框图表示循环结构2指出循环语句的格式及功能3指出两种循环语句的相同点与不同点4揭示程序中的循环语句与程序框图中的条件结构存在一一对应关系讨论结果1循环结构循环结构有两种形式当型循环结构和直到型循环结构1°当型循环结构如图1所示2°直到型循环结构如图2所示1当型循环结构2直到型循环结构2循环语句\n1°当型循环语句当型WHILE型语句的一般格式为WHILE条件循环体WEND功能计算机执行此程序时遇到WHILE语句先判断条件是否成立如果成立则执行WHILE和WEND之间的循环体然后返回到WHILE语句再判断上述条件是否成立如果成立再执行循环体这个过程反复执行直到一次返回到WHILE语句判断上述条件不成立为止这时不再执行循环体而是跳到WEND语句后执行WEND后面的语句因此当型循环又称前测试型循环也就是我们经常讲的先测试后执行先判断后循环2°直到型循环语句直到型UNTIL型语句的一般格式为DO循环体LOOPUNTIL条件功能计算机执行UNTIL语句时先执行DO和LOOPUNTIL之间的循环体然后判断LOOPUNTIL后面的条件是否成立如果条件不成立返回DO语句处重新执行循环体这个过程反复执行直到一次判断LOOPUNTIL后面的条件成立为止这时不再返回执行循环体而是跳出循环体执行LOOPUNTIL条件下面的语句\n因此直到型循环又称后测试型循环也就是我们经常讲的先执行后测试先循环后判断3相同点都是反复执行循环体语句不同点当型循环语句是先判断后循环直到型循环语句是先循环后判断4下面为循环语句与程序框图中的条件结构的一一对应关系1°直到型循环结构2°当型循环结构应用示例思路1例1修改前面编写过的求函数yx33x2-24x30的值的程序连续输入11个自变量的取值输出相应的函数值算法分析与前面不同的是本例要求连续输入11个自变量的取值并输出相应的函数值先写出解决本例的算法步骤第一步输入自变量x的值第二步计算yx33x2-24x30第三步输出y第四步记录输入次数第五步判断输入的次数是否大于11若是则结束算法否则返回第一步显然可以用计数变量n1≤n≤11记录次数通过循环结构来实现算法程序框图如下图\n程序n1DOINPUTxyx33x2-24x30PRINTynn1LOOPUNTILn>11END例2教材中的用二分法求方程x2-20x>0的近似解的程序框图见教材图1120包含了顺序结构条件结构和循环结构下面我们把这个程序框图转化为相应的程序解程序为INPUTabdabdDOmab2ga2-2fm2-2IFgf<0THENbmELSEam\nENDIFLOOPUNTILABSa-b<dORf0PRINTmEND点评ABS是一个函数用来求某个数的绝对值即ABSxx例3设计一个计算1×3×5×7××99的算法编写算法程序解算法如下第一步s=1第二步i=3第三步s=s×i第四步i=i+2第五步如果i≤99那么转到第三步第六步输出s程序如下WHILE型循环语句s=1i=3WHILEi<=99s=sii=i+2WENDPRINTsEND\n点评前面我们已经学过求和问题这是一个求积问题这两个问题都是典型的算法问题注意它们的联系与区别例4编写一个程序求1210的值其中n1×2×3××n分析这个问题可以用WHILEWHILE循环嵌套语句格式来实现程序结构要做到如下步骤①处理n的值注处理n的值的变量是一个内循环变量②累加n的值注累加n的值的变量是一个外循环变量显然通过10次循环可分别求出1210的值并同时累加起来可求得S的值而求Tn又可以用一个循环内循环来实现解程序为s0i1WHILEi10j1t1WHILEjittjjj1WENDsstii1WEND\nPRINTsEND思考上面程序中哪个变量是内循环变量哪个变量是外循环变量解答内循环变量jt外循环变量si上面的程序是一个的WHILEWHILE型循环嵌套语句格式这是一个比较好想的方法但实际上对于求n我们也可以根据求出的n-1乘上n即可得到而无需重新从1再累乘到n程序可改为s0i1j1WHILEi10jjissjii1WENDPRINTsEND显然第二个程序的效率要比第一个高得多第一程序要进行121055次循环而第二程序进行10次循环如题目中求的是1+2++1000则两个程序的效率区别会更明显\n点评解决具体的构造循环语句的算法问题要尽可能地少引入循环变量否则较多的变量会使得设计程序比较麻烦并且较多的变量会使得计算机占用大量的系统资源致使系统缓慢另外也尽可能使得循环嵌套的层数少否则也浪费计算机的系统资源变式训练某种蛋白质是由四种氨基酸组合而成这四种氨基酸的相对分子质量分别是577197101实验测定蛋白质的相对分子质量为800问这种蛋白质的组成有几种可能分析该问题即求如下不定方程的整数解设四种氨基酸在蛋白质的组成中分别各有xyzw个则由题意可得57x71y97z101w800xyzw是非负整数这里0≤x≤140≤y≤110≤z≤80≤w≤7利用穷取法考虑一切可能出现的情况运用多层循环嵌套处理即可解编写程序如下w0WHILEw7z0WHILEz8y0WHILEy11x0WHILEx14IF57x71y97z101w800THEN\nPRINTxyzwENDIFxx1WENDyy1WENDzz1WENDww1WENDEND知能训练设计算法求的值要求画出程序框图写出用基本语句编写的程序解这是一个累加求和问题共99项相加可设计一个计数变量一个累加变量用循环结构实现这一算法程序框图如下图所示程序如下s0i1Doss1ii1ii1LOOPUNTILi99PRINTsEND\n拓展提升青年歌手电视大赛共有10名选手参加并请了12名评委在计算每位选手的平均分数时为了避免个别评委所给的极端分数的影响必须去掉一个最高分和一个最低分后再求平均分试设计一个算法解决该问题要求画出程序框图写出程序假定分数采用10分制即每位选手的分数最高分为10分最低分为0分解由于共有12位评委所以每位选手会有12个分数我们可以用循环语句来完成这12个分数的输入同时设计累加变量求出这12个分数的和本问题的关键在于从这12个输入分数中找出最大数与最小数以便从总分中减去这两个数由于每位选手的分数都介于0分和10分之间我们可以先假设其中的最大数为0最小数为10然后每次输入一个评委的分数就进行一次比较若输入的数大于0就将之代替最大数若输入的数小于10就用它代替最小数依次下去就能找出这12个数中的最大数与最小数循环结束后从总和中减去最大数与最小数再除以10就得到该选手最后的平均分程序框图如右图程序如下s0i10min10DOINPUTx\nssxIFxTHENxENDIFIFminxTHENminxENDIFii1LOOPUNTILi12s1s--minas110PRINTaEND课堂小结1学会两种循环语句的应用2熟练应用两种循环语句编写计算机程序巩固算法应用作业习题12A组3设计感想本节的导入符合学生心理要求能够激发学生的学习兴趣算法像一个故事循环语句就是故事的高潮它以前面的内容为基础是前面内容的总结和发展本节选用了大量的精彩例题为故事高潮的到来作好了铺垫精彩的点评把本节推向了高潮所以本节教案值得期待\n13算法案例整体设计教学分析在学生学习了算法的初步知识理解了表示算法的算法步骤程序框图和程序三种不同方式以后再结合典型算法案例让学生经历设计算法解决问题的全过程体验算法在解决问题中的重要作用体会算法的基本思想提高逻辑思维能力发展有条理地思考与数学表达能力三维目标1.理解算法案例的算法步骤和程序框图2.引导学生得出自己设计的算法程序3体会算法的基本思想提高逻辑思维能力发展有条理地思考与数学表达能力重点难点教学重点引导学生得出自己设计的算法步骤程序框图和算法程序教学难点体会算法的基本思想提高逻辑思维能力发展有条理地思考与数学表达能力课时安排3课时教学过程第1课时案例1辗转相除法与更相减损术导入新课\n思路1情境导入大家喜欢打乒乓球吧由于东西方文化及身体条件的不同西方人喜欢横握拍打球东方人喜欢直握拍打球对于同一个问题东西方人处理问题方式是有所不同的在小学我们学过求两个正整数的最大公约数的方法先用两个数公有的质因数连续去除一直除到所得的商是互质数为止然后把所有的除数连乘起来当两个数公有的质因数较大时如8251与6105使用上述方法求最大公约数就比较困难下面我们介绍两种不同的算法辗转相除法与更相减损术由此可以体会东西方文化的差异思路2直接导入前面我们学习了算法步骤程序框图和算法语句今天我们将通过辗转相除法与更相减损术来进一步体会算法的思想推进新课新知探究提出问题1怎样用短除法求最大公约数2怎样用穷举法也叫枚举法求最大公约数3怎样用辗转相除法求最大公约数4怎样用更相减损术求最大公约数讨论结果1短除法\n求两个正整数的最大公约数的步骤先用两个数公有的质因数连续去除一直除到所得的商是两个互质数为止然后把所有的除数连乘起来2穷举法也叫枚举法穷举法求两个正整数的最大公约数的解题步骤从两个数中较小数开始由大到小列举直到找到公约数立即中断列举得到的公约数便是最大公约数3辗转相除法辗转相除法求两个数的最大公约数其算法步骤可以描述如下第一步给定两个正整数mn第二步求余数r计算m除以n将所得余数存放到变量r中第三步更新被除数和余数mnnr第四步判断余数r是否为0若余数为0则输出结果否则转向第二步继续循环执行如此循环直到得到结果为止这种算法是由欧几里得在公元前300年左右首先提出的因而又叫欧几里得算法4更相减损术我国早期也有解决求最大公约数问题的算法就是更相减损术《九章算术》是中国古代的数学专著其中的更相减损术也可以用来求两个数的最大公约数即可半者半之不可半者副置分母子之数以少减多更相减损求其等也以等数约之翻译为现代语言如下第一步任意给定两个正整数判断它们是否都是偶数若是用2约简若不是执行第二步\n第二步以较大的数减去较小的数接着把所得的差与较小的数比较并以大数减小数继续这个操作直到所得的数相等为止则这个数等数或这个数与约简的数的乘积就是所求的最大公约数应用示例例1用辗转相除法求8251与6105的最大公约数写出算法分析画出程序框图写出算法程序解用两数中较大的数除以较小的数求得商和余数82516105×12146由此可得6105与2146的公约数也是8251与6105的公约数反过来8251与6105的公约数也是6105与2146的公约数所以它们的最大公约数相等对6105与2146重复上述步骤61052146×21813同理2146与1813的最大公约数也是6105与2146的最大公约数继续重复上述步骤21461813×13331813333×5148333148×23714837×4最后的除数37是148和37的最大公约数也就是8251与6105的最大公约数\n这就是辗转相除法由除法的性质可以知道对于任意两个正整数上述除法步骤总可以在有限步之后完成从而总可以用辗转相除法求出两个正整数的最大公约数算法分析从上面的例子可以看出辗转相除法中包含重复操作的步骤因此可以用循环结构来构造算法算法步骤如下第一步给定两个正整数mn第二步计算m除以n所得的余数为r第三步mnnr第四步若r0则mn的最大公约数等于m否则返回第二步程序框图如下图程序INPUTmnDOrmMODnmnnrLOOPUNTILr0PRINTmEND点评从教学实践看有些学生不能理解算法中的转化过程例如求8251与6105的最大公约数为什么可以转化为求6105与2146的公约数因为82516105×12146可以化为8251-6105×12\n164所以公约数能够整除等式两边的数即6105与2146的公约数也是8251与6105的公约数变式训练你能用当型循环结构构造算法求两个正整数的最大公约数吗试画出程序框图和程序解当型循环结构的程序框图如下图程序INPUTmnr1WHILEr>0rmMODnmnnrWENDPRINTmEND例2用更相减损术求98与63的最大公约数解由于63不是偶数把98和63以大数减小数并辗转相减如下图所示98-633563-352835-28728-721\n21-71414-77所以98和63的最大公约数等于7点评更相减损术与辗转相除法的比较尽管两种算法分别来源于东西方古代数学名著但是二者的算理却是相似的有异曲同工之妙.主要区别在于辗转相除法进行的是除法运算即辗转相除而更相减损术进行的是减法运算即辗转相减但是实质都是一个不断的递归过程.变式训练用辗转相除法或者更相减损术求三个数324243135的最大公约数解324243×1+8124381×3+0则324与243的最大公约数为81又13581×1+548154×1+275427×2+0则81与135的最大公约数为27所以三个数324243135的最大公约数为27另法324-24381243-81162162-8181则324与243的最大公约数为81135-815481-542754-2727则81与135的最大公约数为27所以三个数324243135的最大公约数为27例31用辗转相除法求123和48的最大公约数2用更相减损术求80和36的最大公约数\n解1辗转相除法求最大公约数的过程如下123=2×48+2748=1×27+2127=1×21+621=3×6+36=2×30最后6能被3整除得123和48的最大公约数为32我们将80作为大数36作为小数因为80和36都是偶数要除公因数280÷24036÷21840和18都是偶数要除公因数240÷22018÷29下面来求20与9的最大公约数20-91111-929-277-255-233-212-11可得80和36的最大公约数为22×14\n点评对比两种方法控制好算法的结束辗转相除法是到达余数为0更相减损术是到达减数和差相等变式训练分别用辗转相除法和更相减损术求1734816的最大公约数.解辗转相除法1734816×2102816102×8余0∴1734与816的最大公约数是102.更相减损术因为两数皆为偶数首先除以2得到867408再求867与408的最大公约数.867-408459459-40851408-51357357-51306306-51255255-51204204-51153153-51102102-5151∴1734与816的最大公约数是51×2102.利用更相减损术可另解1734-816=918918-816=102816-102=714\n714-102=612612-102=510510-102=408408-102=306306-102=204204-102=102∴1734与816的最大公约数是102.知能训练求319377116的最大公约数.解377319×15831958×5295829×2∴377与319的最大公约数为29再求29与116的最大公约数.11629×4∴29与116的最大公约数为29∴377319116的最大公约数为29拓展提升试写出利用更相减损术求两个正整数的最大公约数的程序.解更相减损术程序INPUTmnmnWHILEmn\nIFmnTHENm=m-nELSEmn-mENDIFWENDPRINTmEND课堂小结1用辗转相除法求最大公约数2用更相减损术求最大公约数思想方法递归思想作业分别用辗转相除法和更相减损术求261319的最大公约数分析本题主要考查辗转相除法和更相减损术及其应用.使用辗转相除法可依据mnqr反复执行直到r0为止用更相减损术就是根据m-nr反复执行直到nr为止.解辗转相除法319261×15826158×4295829×2∴319与261的最大公约数是29.\n更相减损术319-26158261-58203203-58145145-588787-582958-2929∴319与261的最大公约数是29.设计感想数学不仅是一门科学也是一种文化本节的引入从东西方文化的不同开始逐步向学生渗透数学文化从知识方面主要学习用两种方法求两个正整数的最大公约数从思想方法方面主要学习递归思想本节设置精彩例题不仅让学生学到知识而且让学生进一步体会算法的思想培养学生的爱国主义情操.第2课时案例2秦九韶算法导入新课思路1情境导入大家都喜欢吃苹果吧我们吃苹果都是从外到里一口一口的吃而虫子却是先钻到苹果里面从里到外一口一口的吃由此看来处理同一个问题的方法多种多样怎样求多项式fxx5x4x3x2x1当x5时的值呢方法也是多种多样的今天我们开始学习秦九韶算法思路2直接导入\n前面我们学习了辗转相除法与更相减损术今天我们开始学习秦九韶算法推进新课新知探究提出问题1求多项式fxx5x4x3x2x1当x5时的值有哪些方法比较它们的特点2什么是秦九韶算法3怎样评价一个算法的好坏讨论结果1怎样求多项式fxx5x4x3x2x1当x5时的值呢一个自然的做法就是把5代入多项式fx计算各项的值然后把它们加起来这时我们一共做了123410次乘法运算5次加法运算另一种做法是先计算x2的值然后依次计算x2·xx2·x·xx2·x·x·x的值这样每次都可以利用上一次计算的结果这时我们一共做了4次乘法运算5次加法运算第二种做法与第一种做法相比乘法的运算次数减少了因而能够提高运算效率对于计算机来说做一次乘法运算所用的时间比做一次加法运算要长得多所以采用第二种做法计算机能更快地得到结果2上面问题有没有更有效的算法呢我国南宋时期的数学家秦九韶约12021261在他的著作《数书九章》中提出了下面的算法把一个n次多项式fxanxnan-1xn-1a1xa0改写成如下形式\nfxanxnan-1xn-1a1xa0anxn-1an-1xn-2a1xa0anxn-2an-1xn-3a2xa1xa0anxan-1xan-2xa1xa0求多项式的值时首先计算最内层括号内一次多项式的值即v1anxan-1然后由内向外逐层计算一次多项式的值即v2v1xan-2v3v2xan-3vnvn-1xa0这样求n次多项式fx的值就转化为求n个一次多项式的值上述方法称为秦九韶算法直到今天这种算法仍是多项式求值比较先进的算法3计算机的一个很重要的特点就是运算速度快但即便如此算法好坏的一个重要标志仍然是运算的次数如果一个算法从理论上需要超出计算机允许范围内的运算次数那么这样的算法就只能是一个理论的算法应用示例例1已知一个5次多项式为fx5x52x435x3-26x217x-08用秦九韶算法求这个多项式当x5时的值\n解根据秦九韶算法把多项式改写成如下形式fx5x2x35x-26x17x-08按照从内到外的顺序依次计算一次多项式当x5时的值v05v15×5227v227×5351385v31385×5-266899v46899×51734512v534152×5-08172552所以当x5时多项式的值等于172552算法分析观察上述秦九韶算法中的n个一次式可见vk的计算要用到vk-1的值若令v0an我们可以得到下面的公式这是一个在秦九韶算法中反复执行的步骤因此可用循环结构来实现算法步骤如下第一步输入多项式次数n最高次的系数an和x的值第二步将v的值初始化为an将i的值初始化为n-1第三步输入i次项的系数ai第四步vvxaiii-1第五步判断i是否大于或等于0若是则返回第三步否则输出多项式的值v程序框图如下图程序INPUTnn\nINPUTanaINPUTxxvain-1WHILEi>0PRINTiiINPUTaiavvxaii-1WENDPRINTvEND点评本题是古老算法与现代计算机语言的完美结合详尽介绍了思想方法算法步骤程序框图和算法语句是一个典型的算法案例变式训练请以5次多项式函数为例说明秦九韶算法并画出程序框图解设f

相关文档