北师大版必修三 第二章 算法初步本章知识体系 学案
高中数学 第二章 算法初步 本章归纳整合教学设计 北师大版必修3
第二章算法初步本章归纳整合知识归纳专题一算法的含义及算法设计算法不同于一般意义上解决某个问题的方法,它是对一类问题的一般解法的抽象和概括,它要借助一般问题的解决方法,又要包含这类问题的所有可能情形.设计算法往往把问题的解法划分为若干个可执行的步骤,有些甚至重复多次,但必须在有限步之内完成.用自然语言描述算法,大体可分以下三步完成:第一步:明确问题的性质,分析题意,我们可将问题简单的分为数值型问题和非数值型问题,不同类型的问题可以有针对性地采用不同的方法进行处理.第二步:建立问题的描述模型.对于数值型问题,可以建立数学模型,通过数学语言来描述问题;对于非数值型问题,我们可以建立过程模型,通过过程模型来描述问题.第三步:设计确立算法.对于数值型问题,我们可以采用数值分析的方法进行处理,数值分析中有许多现成的固定算法,我们可以直接使用,当然我们可以根据问题的实际情况设计算法.对于非数值型问题,根据过程模型分析算法与设计算法,也可以选择一些成熟的办法进行处理,如排序、递推等.【例1】韩信是汉高祖刘邦部下的大将,他英勇善战,智谋超群,为建立汉朝立下了汗马功劳,据说他在点兵的时候,为了保住军事机密,不让敌人知道自己部队的实力,采用下述点兵的方法:先令士兵从1~3报数,结果最后一个士兵报2;再令士兵从1~5报数,结果最后一个士兵报3;又令士兵从1~7报数,结果最后一个士兵报 4.这样,韩信很快就算出了自己部队士兵的总人数.请你设计一个算法,求出士兵至少有多少人?解第一步,首先确定最小的除以7余4的正整数:4.第二步,依次加7就得到所有除以7余4的正整数:4,11,18,25,32,39,46,53,60,….第三步,在第二步得到的一列数中确定最小的除以5余3的正整数:18.第四步,然后依次加上35,得到18,53,88,….第五步,在第四步得到的一列数中找出最小的满足除以3余2的正整数:53.这就是我们要求的数.规律方法本题直接通过列方程组显然无法求解,故根据题设运用列举法分步求解.我们将7,5,3的顺序颠倒一下,也能解答此题,不妨试一试.专题二顺序结构与选择结构1.顺序结构是由若干个依次执行的处理步骤组成的逻辑结构,这是任何一个程序都离不开的基本结构.2.在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向,这种算法结构即选择结构.【例2】用顺序结构表示:利用尺规作图,确定线段AB的4等分点的算法.[思路探索] 先写出作法,由作法写出算法.解作法:如图,第一步:过A作射线AP,在AP上任取一点C,得线段AC;第二步:在射线AP上作线段AC=CD=DE=EP;第三步:连接BP,过C作CF∥BP,交AB于F,同理,作出点M,N;第四步:F,M,N为所作的AB的三个4等分点.算法:【例3】设计判断正整数p是否是正整数q的约数的算法并画出框图.[思路探索] 判断正整数p是否是正整数q的约数,即是看正整数q能否被正整数p整除,如果能,则p是q的约数;如果不能,则p不是q的约数,从分析上看,该题应用选择结构.解算法如下:第一步:输入p,q;第二步:判断p除q的余数r是否为0,如果r=0,则p是q的约数,否则p不是q的约数.算法框图如图所示.规律方法解本题要熟练掌握约数的概念,本题由于要判断余数是否为0,即要用到分类讨论的思想,故采用选择结构.专题三循环结构循环结构是指运算过程中根据指定条件决定是否重复执行一条或多条指令的控制结构.其中重复执行的步骤叫循环体.循环结构中包含条件结构.1.涉及多项的和或积的程序框图要用到循环和分支结构,画图时应注意三个量:循环变量的初值、终值、循环变量的增量在程序中的作用与位置.2.利用循环结构可寻数.使用循环结构寻数时,要明确数字的结构特征,决定循环的终止条件与数的结构特征的关系及循环次数,尤其是统计数时,注意要统计的数的出现次数与循环次数的区别.3.循环结构是执行算法流程的重要组成部分.【例4】阅读程序框图,运行相应的程序,则输出s的值为( ).A.-1 B.0 C.1 D.3[思路探索] 按程序框图进行计算,注意循环体执行的次数.解析当i>4时共进行四次运算:s=3,i=2;s=3×(3-2)+1=4,i=3;s=1,i=4;s=0,i=5.答案B专题四 条件语句与循环语句1.条件语句计算机通常是按照算法中语句出现的先后顺序依次往下执行的,但有时需要根据某个给定的条件是否满足来决定所要执行的语句,这时就需要用到条件语句.算法中的选择结构由条件语句来表达.因此,在条件语句中要体现出对条件的判断及执行语句的顺序.条件语句主要是If ——Then ——Else 语句,在某些情况下,也可以只使用If ——Then 语句,无Else 分支语句.2.循环语句算法中的循环结构由循环语句来实现.循环语句一般分为For 、Do Loop 语句.【例5】 解 用For 语句描述:用Do Loop 语句描述: S =0For i =1 To 10 000S =S +1/iNext输出S用循环语句描述计算1+12+13+14+…+110 000一个算法.i=1S=0DoS=S+1/ii=i+1Loop While i<=10 000输出S专题五折半插入排序法折半插入排序:折半插入排序的基本思想是先将新数据与有序列中“中间位置”的那个数据进行比较,如果与之相等,则可确定其插入位置及序号;若不相等,中间位置的数据将数据列分为两半,当新数据较小时,它的位置应在靠左的一半,否则在靠右的一半.反复进行这种查找的方法,直到确定新数据的位置.通过前面的研究我们知道,折半插入排序方法中应用了二分法的思想后,少了多次无用的比较.相比较前面的有序列直接插入排序算法,会减少一些资源的浪费.对折半插入排序的理解:一般地,对于一个有序列:a1≤a2≤a3≤…≤an,欲将新数据A插入到有序列中,形成新的有序列,其做法是:将数据A与原有序列中的数据从右到左依次进行比较,直到发现某一数据ai,使得ai≤A,把A插入到ai的右边;如果数据A小于原有序列中的所有数据,则将A插入到原序列的最左边.上面的排序算法通常称为有序列直接插入排序的算法.【例6】把8插入到1,3,5,7,9,11,13中.解:首先,将8与13比较,显然8比13小,所以它要插在13之前;再将它与11比较,显然它比11小,所以8插在11前;同样地,8插在9前;接着,将8与7比较,显然它比7大,所以,完成8的插入排序操作.评析:将8与数列中的数进行比较,可找到它的正确位置.变式练习6完成无序列{5,1,3,6}的排序.[解] 其算法如下:S1 因为5>1,输出1,5;S2 因为3<5,则5后移一位空出第二位;S3 因为3>1,输出1,3,5;S4 因为6>5,输出1,3,5,6.专题六折半插入排序法折半插入排序:折半插入排序的基本思想是先将新数据与有序列中“中间位置”的那个数据进行比较,如果与之相等,则可确定其插入位置及序号;若不相等,中间位置的数据将数据列分为两半,当新数据较小时,它的位置应在靠左的一半,否则在靠右的一半.反复进行这种查找的方法,直到确定新数据的位置.通过前面的研究我们知道,折半插入排序方法中应用了二分法的思想后,少了多次无用的比较.相比较前面的有序列直接插入排序算法,会减少一些资源的浪费.对折半插入排序的理解:先将新数据与有序列中“中间位置”的数据进行比较,若有序列有2n+1个数据,则“中间位置”的数据指的是第n+1个数据,若有2n个数据,则“中间位置”的数据指的是第n个数据,如果新数据小于中间位置的数据,则新数据插入的位置应该在靠左边的一半;如果新数据等于中间位置的数据,则将新数据插入到中间位置的数据的右边;如果新数据大于中间位置的数据,则新数据插入的位置应该在靠右边的一半.也就是说,一次比较就排除了数据中一半的位置.反复进行这种比较,直到确定新数据的位置.例七将52插入有序列{13,27,38,39,43,47,48,51,57,66,74,82}中,构成一个新的有序列.[解] 首先选择有序列中具有中间位置序号的数据47,将52与47进行比较,显然52>47,故52不能插入到47的左边的任何位置.所以,应该排在47的右边,再将余下数据的中间位置的数据57与52比较,显然52<57,因此应插到57的左边,又51<52,则52插入到51的右边,57的左边,即可得到52的位置.评析:用折半插入排序法向有序列中插入新数据时,首先确定原有序列中数据的个数是偶数2n还是奇数2n+1.若为偶数,则“中间位置”的数据是第n个数据;若为奇数,则“中间位置”的数据为第n+1个数据,然后将新数据与“中间位置”的数据比较,若新数据大于“中间位置”的数据,则在右半边进行下一步骤;若新数据小于“中间位置”的数据,则在左半边进行下一步骤;依次类推,就可以确定新数据在序列中的位置.。
北师大版高中数学必修三学案:第二章疑难规律方法:第二章算法初步
解 第一步,输入摄氏温度C;
第二步,代入F=C×+32;
第三步,输出华氏温度F.
点评 平时计算我们只注重第二步,其他步骤往往忽略了,算法却讲究“按部就班”,这类问题的算法一般分为三步:第一步输入值,第二步套用公式,第三步输出结果.
3.判断性质型问题的算法
第四步,将第三步中的运算结果24与5相乘得120;
第五步,将第四步中的运算结果120与6相乘得720.
点评以算法好不好,还分让谁来执行,对人来讲是奇笨无比的办法,对计算机却可能是一个好办法.
思维拓展 该算法包含一个重复操作的过程是循环结构,我们可将算法改造得更为简练、科学.
北师大版高中数学必修三学案:第二章疑难规律方法:第二章算法初步
同学们也许对算法这个概念很陌生,但其实大家在日常生活中已经接触过很多算法了,广义地说,算法就是做某一件事情的步骤或程序.菜谱是做菜肴的“算法”,洗衣机的使用说明书是操作洗衣机的“算法”.每个算法都闪耀着人类的智慧,阅读和学习这些东西会给我们带来一种难以用语言表达的满足感和快感.在以后的学习和工作中我们会不断从实际应用中了解和领会算法是如何解决各个领域的实际问题,推动人类文明的发展的.
一、算法的特征
1.确定性
算法中的每条运算规则必须是明确定义的、可行的,每一个步骤只能有一个确定的后继步骤,运行终止应得到问题的解答或指出问题没有解答.
2.有限性
一个算法必须保证在执行有限步后结束,至少不能出现无限循环或死循环.在此基础上越简洁越快越好.越简洁,占用内存越少,对设备的要求越基本;越快,这个意义就不用说了吧.比如一个计算对方导弹轨迹的算法,如果等你算出来,那边导弹已经落地了,那还有什么意义?
高中数学北师大版必修3第二章《算法初步》(算法的基本思想)word教案
算法的基本思想一、教学内容:新课程高中数学(北师大版)必修3第二章《算法初步》第一节:算法的基本思想。
二、教学目标:1、通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义及其基本特征;2、通过分析具体问题,抽象出算法的过程,培养抽象概括能力、语言表达能力和逻辑思维能力;3、通过算法的学习,进一步让学生体验到数学与现实世界的关系、数学与计算机技术的关系、提高学生学习数学的兴趣。
三、教学重点:1、了解算法的含义及其基本特征;2、掌握算法的表示形式。
四、教学难点:算法的表示形式。
五、教学方法:任务驱动法。
六、教学过程:(一)情景导入:在与学生的寒暄中引入今天的课题,并让学生来猜猜老师衣服的价格,提出问题:“怎样才能在有限的次数范围内猜中衣服的价格呢?”师:采用对半价格区间去猜数比较合理,在数学上我们称这种方法为“二分法”下节课我们要重点学习这种方法的应用。
师:可见我们在处理一个问题时,若是有一个好的指导思想,我们在具体行动中就不会显得很盲目,按照既定的策略,在有限的步骤内就可以达到目的。
今天我们这节课的课题就是研究有关解决问题的基本思想方法,在数学上,我们称之为“算法”。
这里的“算法”不是指狭义上的计算方法,而是广义范围内一切解决问题的思想方法。
下面我们再通过几个实例来体会一下算法的基本思想及其算法具有哪些特征。
(二)新课:师:我们先看一下书上的例子例:请设计算法,将936分解成素因素的乘积。
师:请同学们在最短的时间内分解好,提问。
=⨯⨯⨯⨯⨯生:9362223313师:请用语言描述你的思路过程。
若是学生很难用语言描述,老师要及时引导。
解:算法步骤如下:1. 判断936是否为素数:否=⨯2. 确定936的最小素因数:2. 93624683. 判断468是否为素数:否=⨯⨯4. 确定468的最小素因数:2. 936222345. 判断234是否为素数:否=⨯⨯⨯6. 确定234的最小素因数:2. 9362221177. 判断117是否为素数:否=⨯⨯⨯⨯8. 确定234的最小素因数:3. 9362223399. 判断39是否为素数:否=⨯⨯⨯⨯⨯10.确定234的最小素因数:3. 936222331311. 判断13是否为素数:是素数,分解结束 .师:以上就是分解素因数的一个算法,其实算法就是解决问题的一系列步骤,依照这些步骤,按部就班就可以完成任务。
高中数学必修三北师大版 第二章§1算法的基本思想1 学案(Word版含答案)
学案必修三第二章第一节第一课时算法的基本思想(一)一、学习目标1.了解算法的含义,体会算法的思想。
2.能够用自然语言叙述算法,掌握正确的算法应满足的要求。
3.培养学生逻辑思维能力与表达能力.二、重点、难点重点: 算法概念以及用自然语言描述算法计。
难点: 用自然语言描述算法三、课前预习[情景材料]算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础. 在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具. 听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机几乎渗透到了人们生活的所有领域. 那么,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始. 同时,算法有利于发展有条理的思考与表达的能力,提高逻辑思维能力.在以前的学习中,虽然没有出现算法这个名词,但实际上在数学学习中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等,完成这些工作都需要一系列程序化的步骤,这就是算法的思想.阅读教材相关内容,填写下列空白:1.算法的概念算法是___________________________________。
在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成..2.算法的特点:(1)有限性:一个算法的步骤序列是__________,必须在有限操作之后停止,不能是无限的.(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到________结果,而不应当是模棱两可.(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.3. __________的思想在算法设计中是一个最基本的思想,也是数学中思考的一个重要思想。
高中数学 第二章 算法初步教案 北师大版必修31
高中数学第二章算法初步教案北师大版必修3整体设计教学分析前面学习了算法、算法框图与几种算法语句,本节课作为本章的小结,旨在和学生一起站在全章的高度,以算法思想为灵魂,以问题解决为主线,以典型例题为操作平台,以巩固知识、发展能力、提高素养为目的对本章作全面的复习总结,帮助学生进一步提高对算法的理解和认识,优化知识结构.三维目标1.对本章知识形成知识网络,提高学生的逻辑思维能力,培养学生的归纳能力.2.熟练应用算法、算法框图与基本算法语句来解决问题,培养学生的分析问题和解决问题的能力,逐步学会用数学方法去认识世界、改造世界.重点难点教学重点:应用算法、算法框图与基本算法语句解决问题.教学难点:形成知识网络.课时安排1课时教学过程导入新课思路1(情境导入).大家都熟悉围棋高手“石佛”李昌镐吧,他曾经打遍天下无敌手.他的技术很全面,但他最厉害的技术是“官子”,他的“官子”层次分明,可以说滴水不漏,堪称世界第一.我们的这次复习也要像围棋中的“官子”,也要做到层次分明滴水不漏.思路2(直接导入).前面我们学习了算法、算法框图与基本算法语句等内容,今天我们对本章知识、方法、数学思想进行全面系统的总结与复习.推进新课新知探究提出问题1.请同学们自己梳理本章知识结构.2.回顾算法的定义及特征.3.回忆算法框图的三种逻辑结构.4.总结算法语句.讨论结果:1.本章知识结构如图1.图12.算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法,等等.在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.现在,算法通常可以编成计算机程序,让计算机执行并解决问题.算法的特征:(1)确定性:算法的每一步都应当做到准确无误、“不重不漏”.“不重”是指不是可有可无的、甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务.(2)逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣、分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.(3)有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.3.顺序结构、选择结构、循环结构. 4.(1)条件语句:If 条件 Then 语句1Else 语句2End If当计算机执行上述语句时,首先对If 后边的条件进行判断,如果满足条件,那么执行语句1,再执行End If 之后的语句即结束条件语句;如果不满足条件,那么执行语句2,再执行End If 之后的语句即结束条件语句.(2)For 语句:For 循环变量=初始值 To 终值 循环体NextFor 语句适用于预先知道循环次数的循环结构. (3)Do Loop 语句: Do循环体Loop While 条件为真Do Loop 语句适用于预先不知道循环次数的循环结构. 应用示例例1 如图2所示,该语句运行后输出的结果为__________.图2解:该算法框图的运行过程是: A =1 S =1S =1+9=10 A =1+1=2 A >2不成立 S =10+9=19 A =2+1=3 A =3>2成立 输出S =19 答案:19点评:解决同一个问题,可以有多种算法,那么就有多种算法框图和语句,再就是不同版本的教科书算法语句的语言形式也不相同,因此高考试题中通常不会考查画算法框图或编写程序.由于学习本章的目的是体会算法的思想,所以已知算法框图或语句,判断其结果是高考考查本章知识的主要形式,这也是课程标准和考试说明对本章的要求.其判断方法是具体运行所给的算法框图或程序,即可得到算法的结果. 变式训练1.给出语句,那么其功能是__________.i =2 sum =0 Dosum =sum +i i =i +2Loop While i <100 输出sum答案:计算2+4+6+…+98的值 2.下列语句的功能是__________S =0 k =1 DoS =S +1/k =k +1Loop While k≤100 输出S答案:求1+12+13+…+1100的值例2已知函数y =⎩⎪⎨⎪⎧2x-1,x ≤-1,log 3x +,-1<x <2,x 4,x ≥2,试设计一个算法,输入x 的值,求对应的函数值.分析:对输入x 的值与-1和2比较大小,即分类讨论. 解:算法如下: 1.输入x 的值.2.当x ≤-1时,计算y =2x-1,否则执行下一步.3.当x ≥2时,计算y =x 4,否则执行下一步. 4.计算y =log 3(x +1). 5.输出y .点评:分段函数是高考考查的重点,在考虑算法步骤时,要用到分类讨论思想,这为复习算法框图和算法语句打好了基础. 变式训练给出下列算法: 1.输入x 的值.2.当x ≤-2时,计算y =-x -2,否则执行下一步. 3.当x ≥0时,计算y =x +1,否则执行下一步. 4.计算y =3. 5.输出y .该算法的功能是__________.答案:已知函数y =⎩⎨⎧-x -2,x ≤-2,3,-2<x <0,x +1,x ≥0,输入x 的值,求对应的函数值例3 图3是表示求解方程x2-(a+1)x+a=0(a∈R,a是常数)过程的算法框图.请在标有序号(1)(2)(3)(4)处填上你认为合适的内容将框图补充完整.(1)__________;(2)____________;(3)__________;(4)__________.图3分析:观察算法框图可知,所解方程是一元二次方程,先计算判别式Δ=(a+1)2-4a =(a-1)2,所以(1)处填(a-1)2;计算判别式Δ的大小后,再判断其符号,由于Δ=(a-1)2,则只需判断a是否等于1即可,则(2)有两种填法a=1或a≠1,当(2)处填a=1时,(3)处填x1=x2=1,(4)处填x1=a,x2=1;当(2)处填a≠1时,(3)处填x1=a,x2=1,(4)处填x1=x2=1.答案:(1)(a-1)2(2)a=1 (3)x1=x2=1 (4)x1=a,x2=1或(1)(a-1)2(2)a≠1 (3)x1=a,x2=1 (4)x1=x2=1点评:用合适的内容补充完整框图是高考考查的重点,尤其是选择结构和循环结构不仅是考查的重点,也是这类问题的难点,应重点训练.知能训练1.图4中算法框图表示的语句所输出的结果是( ).图4A.11 B.12 C.132 D.1 320分析:该语句算法框图的运行过程是:i=12S=1i=12≥10成立S=1×12=12i=12-1=11i=11≥10成立S=12×11=132i=11-1=10i=10≥10成立S=132×10=1 320i=10-1=9i=9≥10不成立输出S=1 320答案:D2.给出下面的语句: 输入m ,n Dor =m MOD n m =n n =rLoop While r≠0输出m当输入168,72时,输出的结果是( ). A .168 B .72 C .36 D .24 答案:D 拓展提升数学的美是令人惊异的!如三位数153,它满足153=13+53+33,即这个整数等于它各位上的数字的立方的和,我们称这样的数为“水仙花数”.请您设计一个算法,找出大于100,小于1 000的所有“水仙花数”.(1)用自然语言写出算法; (2)画出算法框图.分析:由于需要判断大于100,小于1 000的整数是否满足等于它各位上的数字的立方的和,所以需要用循环结构.解:(1)算法步骤如下: 1.i =101;2.如果i不大于999,则执行第3步,否则算法结束;3.若这个数i 等于它各位上的数字的立方的和,则输出这个数; 4.i =i +1,返回第2步. (2)算法框图,如图5所示.图5课堂小结(1)复习有关算法步骤、算法框图、算法语句的重点题型. (2)总结有关算法步骤、算法框图、算法语句的思想方法. 作业复习参考题二 A 组 5,6.设计感想本节通过引入强调进行小结的重要性,通过大量生动活泼的例题对本章进行系统的总结,通过精彩的点评渗透算法的基本思想,使学生的知识得到进一步巩固,使学生的思想方法不断升华.备课资料人机大战的启示人类的许多进步之所以产生,多半是发明了一个更好、更有力的工具.物质工具使工作速度加快并使人们从重体力劳动中解脱出来,而信息工具则扩大人们的智力.物质工具如犁、起重机、推土机、内燃机、电动机等,是人的四肢的延伸,而计算机是人的大脑的延伸.它最初只能进行数值计算,但随着其发展,应用范围不断扩大.它不仅能够进行计算,还能进行记忆、判断、推理、设计、控制、自动化处理等.一句话,只要是能输入计算机里的信息,它都能按照人的要求对信息进行迅速而圆满的处理.因此,计算机也被称为电脑.在短短十几年的时间里,我们经历了计算机深入生活每一个角落的过程,深深感受到了计算机多方面的强大的功能.其中,国际象棋大师卡斯帕罗夫与IBM“深蓝”的人机大战的结果曾引起世人瞩目和激烈讨论,留下了有关计算机与人的关系的种种思考.1989年,美国IBM公司成立了“深蓝”(Deep Blue)项目小组,开始着手研究有关计算机下棋方面的技术,其实就是设计下棋的算法.其目的是证明它具有能够处理复杂博弈模式的能力,而真正的意图是,以此作为一个模型,将并行技术深入到其他各种复杂应用领域.1988年,“深蓝”的前身“深思”(Deep Thought)在华裔科学家许峰雄等人的开发下,已经具备与人进行国际象棋比赛的能力.“深蓝”在开始设计时就以超越“深思”为目的,特别在运算速度与处理能力部分.经过不断的努力,1996年2月,当今最优秀的国际象棋棋手、世界冠军卡斯帕罗夫与“深蓝”计算机展开了第一次真正的角逐.比赛为六局对抗赛.虽然卡斯帕罗夫最终以4∶2的比分取胜,但今天计算机所达到的能力,也着实让全世界吃了一惊.尤其是第一局,“深蓝”以获胜来了个“开门红”.卡斯帕罗夫在赛后承认,“深蓝”是必须认真对待的劲敌,他说:“我没有料到它如此难以对付,我输掉第一局非常幸运,因为那是给我发出的最严重警告.”由于卡斯帕罗夫战胜“深蓝”,他预言:“在严肃、经典的比赛中,计算机在本世纪没有赢棋的机会.”然而,卡斯帕罗夫对计算机技术的飞速发展估计错了.仅仅一年后,“深蓝”就战胜了这位大师.1997年5月人机大战重开.前五局战平,5月11日第六局决胜局的比赛,卡斯帕罗夫仅走了19步便向“深蓝”认输.“深蓝”重达1.4吨,拥有32个节点,每一节点有8块专门为进行国际象棋对弈设计的处理器,从而拥有每秒运算超过2亿步的惊人速度.为了使“深蓝”能拥有更多的资源规划棋步,开发小组汇集了一个开放棋局的数据库,输入了100年来世界顶级棋手的棋局,此外还有残局数据库,即最后五步时的走法,形成了汇集10亿个棋局的数据库.自1996年在输给卡斯帕罗夫之后,美国特级大师本杰明加盟“深蓝”,将他对象棋的理解编成语句输入“深蓝”,且在1997年的比赛中,每场对局结束后,小组都会根据卡斯帕罗夫的情况相应地修改特定的参数.“深蓝”在比赛中,不会疲倦、不会有心理和情绪上的起伏,只是不动声色地进行高速准确的运算.因此,卡斯帕罗夫的对手并不是“深蓝”主机,而是一群人如何运用电脑的硬、软件来向一个人的智慧和反应挑战.电脑的胜利说到底是人脑的胜利.但是“深蓝”的这次胜利,毕竟标志着计算机技术又上了一个新台阶,更准确地说,这次“深蓝”胜利,是人脑经过电脑胜过人脑.它也反过来让人们思考,什么是思维的本质?它第一次让人类如此真切地感受到了电脑与人的相异却又能够与人对抗的能力,这种力量还会从人们今后的努力中得到滋养从而不断壮大.有人曾将人机大战称为捍卫人类尊严的比赛,此次“深蓝”获胜,绝不意味人类的尊严丧失殆尽.许峰雄博士说得好:“棋王卡斯帕罗夫的胜利是为人类的过去赢了一盘棋;今年,‘深蓝’胜卡斯帕罗夫,是为人类的未来赢了一盘棋.”另外,深具意义的是,“深蓝”证明了人类的极限.超越人类的极限是一件很大的事情,人类就是在不断超越自己的极限中而进步的.。
北师大版高中必修3第二章算法初步教学设计
北师大版高中必修3第二章算法初步教学设计教学目标本章节的教学目标包括:•了解算法的基本概念;•掌握算法的分类及特点;•掌握冒泡排序、选择排序、插入排序等基本排序算法的实现方法;•能够分析算法的时间复杂度及其影响因素;•应用所学算法解决问题。
教学内容1.算法基础•什么是算法?•算法的基本特点及分类。
2.排序算法•冒泡排序;•选择排序;•插入排序。
3.算法分析•时间复杂度;•算法效率分析;•研究算法时间复杂度的影响因素。
4.算法的应用•用算法解决实际问题。
教学方法本章节主要采用讲授、演示、练习相结合的教学方法,具体如下:1.讲授方法通过PPT、白板等介绍算法概念、原理及分类等知识点。
2.演示方法通过示例展示排序算法的具体实现过程,让学生了解算法的具体操作过程,掌握算法的实际应用。
3.练习方法通过编写实际代码练习算法,培养学生分析算法、解决问题的能力。
教学重点1.掌握算法的基本概念;2.掌握基本排序算法的实现方法;3.掌握算法分析方法。
教学难点1.算法的应用;2.算法时间复杂度及其影响因素分析。
教学评价1.能够解释算法的基本概念;2.能够编写冒泡排序、选择排序、插入排序等基本排序算法;3.能够分析算法的时间复杂度及其影响因素;4.能够应用所学算法解决实际问题。
教学计划课时教学内容教学方式学时1 算法基础讲授 12-3 冒泡排序、选择排序、插入排序的实现方法演示 24 算法分析讲授 15-6 算法分析的实践练习 27-8 算法的应用讲授 2 总结本章教学主要涉及算法基础、排序算法实现、算法分析及应用等方面。
通过讲授、演示和练习相结合的方式,让学生从理论到实践,从表面到深层次地理解和掌握算法的基本知识和实际应用,为学生今后深入学习计算机科学奠定了坚实的基础。
高中数学 第二章 算法初步 2.1 算法的基本思想教案 北师大版必修3
第二章算法初步算法是数学及其应用的重要组成部分,是计算科学的重要基础.随着现代信息技术的飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并融入社会生活的方方面面,算法思想已经成为现代人应具备的一种数学素养.需要特别指出的是,中国古代数学中蕴涵了丰富的算法思想.在这一章中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验算法框图在解决问题中的作用;通过模仿、操作、探索,学习设计算法框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力.算法作为新名词,在以前的数学教科书中没有出现过,但是算法本身,同学们并不陌生.解方程的算法、解不等式的算法、因式分解的算法,都是同学们熟知的内容.只是算法的基本思想、特点,学习算法的必要性等问题没有专门涉及.因此,本章中的算法的基本思想,将针对同学们熟悉的一些问题,分析解决这些具体问题的算理,整理出相应问题的解决步骤,然后抽象概括出更具一般意义的算法.通过这个过程,让学生体会算法的程序化思想.同时,针对同样的问题,我们给出不同的算法,让同学们意识到:同一个问题可能存在着多种算法,算法之间有优劣之分.接下来,通过求方程近似解,让同学们意识到学习算法的必要性——将问题的解决过程即算法交给计算机完成,能够极大地提高效率.接下来,介绍算法的基本结构.顺序结构和选择结构是学生比较容易接受的,循环结构则比较难以理解.分析造成理解困难的原因之一是变量以及对变量的处理——赋值.在循环结构的学习中,总结了循环结构的三个要素——循环变量、循环体和循环的终止条件,并提供了可供学生模仿、操作的算法算法框图.排序算法可以说是应用最广泛的算法了,而且又易于理解,便于接受,是算法教学的良好素材.教科书选择这个问题作为专题来讨论,给学生提供了一个完整的分析、设计算法的过程,也给了学生一个应用前面所学的关于变量和结构的知识的机会.在前面的学习中,我们分别用自然语言和算法框图来描述算法,这两种方式各有优缺点.要将算法最终交给计算机执行,需要用程序语言来表述算法,程序语言有很多种,但是有一些基本语句是这些语言都要用到的:输入输出语句、赋值语句、条件语句、循环语句,在本章的最后介绍了这几种基本语句.值得注意的是:1.注重对算法基本思想的理解.算法是高中数学课程中的新内容,其思想非常重要,但并不神秘.例如,运用消元法解二元一次方程组、求最大公因数等的过程本质上就是算法.本模块中的算法内容是将数学中的算法与计算机技术建立联系,形式化地表示算法,在条件允许的学校,使其能在计算机上实现.为了有条理地、清晰地表达算法,往往需要将解决问题的过程整理成算法框图;为了能在计算机上实现,还需要将自然语言或算法框图翻译成计算机语言.本模块的主要目的是使学生体会算法的思想,提高逻辑思维能力.不要将此部分内容简单处理成程序语言的学习和程序设计.2.算法教学必须通过实例进行.使学生在解决具体问题的过程中学习一些基本逻辑结构和语句.有条件的学校,应鼓励学生上机尝试运行程序.在实例的选择中,我们要把握这样一些原则:亲和原则:选取的例子要贴近学生,或者来自学生的生活实践,或者是学生所学过的数学知识.趣味性原则:选取的实例一般要有丰富的背景,本身要有趣味性.基础性原则:问题本身的算理并不难,只要蕴涵丰富的算法思想即可.可操作性原则:所选取问题的算法一般能在计算机上实现.3.算法教学要注意循序渐进,先具体再抽象,先了解算理,再描述算法.通常,我们说一个算法越是抽象,有一般意义,应用就越广泛,越能体现算法本身的应用价值.但是,作为教学意义上的算法则不同,一定要从具体问题出发分析算法的算理及算法步骤,然后抽象概括出一般意义的算法,画出算法算法框图,并在这个过程中,学习使用变量、赋值,学习更好地表述算法,以便在计算机上操作执行.算法的教学中,变量的理解、赋值的应用、循环结构的理解是重点和难点,教师要注意分散这些难点.学生对算法思想的认识、概念的把握、知识的灵活应用及能力的形成不是一次完成的,而是要把这些作为教学目标渗透在整章的学习中.整体设计教学分析算法在中学数学课程中是一个新的概念,但其没有一个精确化的定义,教科书只对它作了如下描述:“算法是解决某一类问题的步骤和程序.”为了让学生更好地理解这一概念,教科书用5个例子来说明算法的实质.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩固.三维目标1.正确理解算法的概念,掌握算法的基本特点.2.通过例题教学,使学生体会设计算法的基本思路.3.通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣.重点难点教学重点:算法的含义及应用.教学难点:写出解决一类问题的算法.课时安排1课时教学过程导入新课思路 1.一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃掉羚羊.此人如何将动物完好地转移过河?请同学们写出解决问题的步骤,解决这一问题将要用到我们今天学习的内容——算法.思路 2.大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步?答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上.上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念.思路 3.算法不仅是数学及其应用的重要组成部分,也是计算科学的重要基础.在现代社会里,计算机已成为人们日常生活和工作中不可缺少的工具.如听音乐、看电影、玩游戏、打字、画卡通画、处理数据都能通过计算机实现,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始.推进新课新知探究提出问题1.解二元一次方程组有几种方法?2.结合实例⎩⎪⎨⎪⎧ x -2y =-1,①2x +y =1,② 总结用加减消元法解二元一次方程组的步骤.3.结合实例⎩⎪⎨⎪⎧ x -2y =-1,①2x +y =1,② 总结用代入消元法解二元一次方程组的步骤.4.请写出解一般二元一次方程组的步骤.5.根据上述实例谈谈你对算法的理解.6.请同学们总结算法的特征.7.请思考我们学习算法的意义.讨论结果:1.代入消元法和加减消元法.2.回顾二元一次方程组⎩⎪⎨⎪⎧ x -2y =-1,①2x +y =1②的求解过程,我们可以归纳出以下步骤:第一步,①+②×2,得5x =1.③第二步,解③,得x =15.第三步,②-①×2,得5y =3.④第四步,解④,得y =35.第五步,得到方程组的解为⎩⎪⎨⎪⎧ x =15,y =35.3.用代入消元法解二元一次方程组⎩⎪⎨⎪⎧ x -2y =-1,①2x +y =1,②我们可以归纳出以下步骤:第一步,由①得x =2y -1.③第二步,把③代入②,得2(2y -1)+y =1.④第三步,解④得y =35.⑤第四步,把⑤代入③,得x =2×35-1=15.第五步,得到方程组的解为⎩⎪⎨⎪⎧ x =15,y =35.4.对于一般的二元一次方程组⎩⎪⎨⎪⎧ a 1x +b 1y =c 1,a 2x +b 2y =c 2, ①②其中a 1b 2-a 2b 1≠0,可以写出类似的求解步骤:第一步,①×b 2-②×b 1,得(a 1b 2-a 2b 1)x =b 2c 1-b 1c 2.③第二步,解③,得x =b 2c 1-b 1c 2a 1b 2-a 2b 1. 第三步,②×a 1-①×a 2,得(a 1b 2-a 2b 1)y =a 1c 2-a 2c 1.④第四步,解④,得y =a 1c 2-a 2c 1a 1b 2-a 2b 1. 第五步,得到方程组的解为⎩⎪⎨⎪⎧ x =b 2c 1-b 1c 2a 1b 2-a 2b 1,y =a 1c 2-a 2c 1a 1b 2-a 2b 1.5.算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法,等等.在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.现在,算法通常可以编成计算机程序,让计算机执行并解决问题.6.算法的特征:①确定性:算法的每一步都应当做到准确无误、“不重不漏”.“不重”是指不是可有可无的,甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行.7.在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础.应用示例思路11在给定素数表的条件下,设计算法,将936分解成素因数的乘积.(4 000以内的素数表见教科书附录1)分析:1.查表判断936是否为素数:(1)如果936是素数,则分解结束;(2)如果936不是素数,则进行第2步.2.确定936的最小素因数:2. 936=2×468.3.查表判断468是否为素数:(1)如果468是素数,则分解结束;(2)如果468不是素数,则重复上述步骤,确定468的最小素因数.重复进行上述步骤,直到找出936的所有素因数.解:算法步骤如下:1.判断936是否为素数:否.2.确定936的最小素因数:2. 936=2×468.3.判断468是否为素数:否.4.确定468的最小素因数:2. 936=2×2×234.5.判断234是否为素数:否.6.确定234的最小素因数:2 936=2×2×2×117.7.判断117是否为素数:否.8.确定117的最小素因数:3. 936=2×2×2×3×39.9.判断39是否为素数:否.10.确定39的最小素因数:3. 936=2×2×2×3×3×13.11.判断13是否为素数:13是素数,所以分解结束.分解结果是936=2×2×2×3×3×13.点评:以上步骤是解决素因数分解问题的一个过程,只要依照这一系列步骤,都能解决这个问题.我们把这一系列步骤称为解决这个问题的一个算法.变式训练设计一个算法,求840与1 764的最大公因数.分析:我们已经学习了对自然数进行素因数分解的方法,下面的算法就是在此基础上设计的.解答这个问题需要按以下思路进行.首先,对两个数分别进行素因数分解:840=23×3×5×7, 1 764=22×32×72.其次,确定两数的公共素因数:2,3,7.接着,确定公共素因数的指数:对于公共素因数2,22是1 764的因数,23是840的因数,因此22是这两个数的公因数,这样就确定了公共素因数2的指数为2.同样,可以确定出公因数3和7的指数均为1.这样,就确定了840与1 764的最大公因数为22×31×71=84.解:算法步骤如下:1.先将840进行素因数分解:840=23×3×5×7;2.然后将1 764进行素因数分解:1 764=22×32×72;3.确定它们的公共素因数:2,3,7;4.确定公共素因数的指数:公共素因数2,3,7的指数分别为2,1,1;5.最大公因数为22×31×71=84.例2 一位商人有9枚银元,其中有1枚略轻的是假银元.你能用天平(不用砝码)将假银元找出来吗?分析:最容易想到的解决这个问题的一种方法是:把9枚银元按顺序排成一列,先称前2枚,若不平衡,则可找出假银元;若平衡,则2枚银元都是真的,再依次与剩下的银元比较,就能找出假银元.图1解:按照下列步骤,就能将假银元找出来:1.任取2枚银元分别放在天平的两边.如果天平左右不平衡,则轻的一边就是假银元;如果天平平衡,则进行第2步.2.取下右边的银元,放在一边,然后把剩余的7枚银元依次放在右边进行称量,直到天平不平衡,偏轻的那一枚就是假银元.这种算法最少要称1次,最多要称7次.是不是还有更好的办法,使得称量次数少一些?我们可以采用下面的方法:图21.把银元分成3组,每组3枚.2.先将两组分别放在天平的两边.如果天平不平衡,那么假银元就在轻的那一组;如果天平左右平衡,则假银元就在未称的第3组里.3.取出含假银元的那一组,从中任取两枚银元放在天平的两边.如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则未称的那一枚就是假银元.点评:经分析发现,后一种算法只需称量2次,这种做法要明显好于前一种做法.当然,这两种方法都具有一般性,同样适用于n枚银元的情形.这是信息论中的一个模型,可以帮助我们找出某些特殊信息.从上面的问题中可以看出,同一个问题可能存在着多种算法,其中一些可能要比另一些好.在实际问题和算法理论中,找出好的算法是一项重要的工作.思路2例1 (1)设计一个算法,判断7是否为质数;(2)设计一个算法,判断35是否为质数.分析:(1)根据质数的定义,可以这样判断:依次用2~6除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.③用4除35,得到余数3.因为余数不为0,所以4不能整除35.④用5除35,得到余数0.因为余数为0,所以5能整除35.因此,35不是质数.点评:上述算法有很大的局限性,用上述算法判断35是否为质数还可以,如果判断1 997是否为质数就比较麻烦了,因此,我们需要寻找更实用的算法步骤.变式训练请写出判断n(n>2)是否为质数的算法.分析:对于任意的整数n(n>2),若用i表示2~(n-1)中的任意整数,则“判断n是否为质数”的算法包含下面的重复操作:用i除n,得到余数r.判断余数r是否为0,若是,则不是质数;否则,将i的值增加1,再执行同样的操作.这个操作一直要进行到i的值等于(n-1)为止.解:1.给定大于2的整数n.2.令i=2.3.用i除n,得到余数r.4.判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.5.判断“i>(n-1)”是否成立.若是,则n是质数,结束算法;否则,返回第3步.例2 写出用“二分法”求方程x2-2=0 (x>0)的近似解的算法.分析:令f(x)=x2-2,则方程x2-2=0 (x>0)的解就是函数f(x)的零点.“二分法”的基本思想是:把函数f(x)的零点所在的区间[a,b]〔满足f(a)·f(b)<0〕“一分为二”,得到[a,m]和[m,b].根据“f(a)·f(m)<0”是否成立,取出零点所在的区间[a,m]或[m,b],仍记为[a,b].对所得的区间[a,b]重复上述步骤,直到包含零点的区间[a,b]“足够小”,则[a,b]内的数可以作为方程的近似解.解:1.令f(x)=x2-2,给定精度d.2.确定区间[a,b],满足f(a)·f(b)<0.3.取区间中点m=a+b 2.4.若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].5.判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.当d近似解.实际上,上述步骤也是求2的近似解的一个算法.点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……变式训练求方程f(x)=x3+x2-1=0在区间[0,1]上的近似解,精度为0.01.解:根据上述分析,可以通过下列步骤求得方程的近似解:1.因为f(0)=-1,f(1)=1,f(0)·f(1)<0,则区间[0,1]为有解区间,精度1-0=1>0.01;2.取[0,1]的区间中点0.5;3.计算f(0.5)=-0.625;4.由于f(0.5)·f(1)<0,可得新的有解区间[0.5,1],精度1-0.5=0.5>0.01;5.取[0.5,1]的区间中点0.75;6.计算f(0.75)=-0.015 625;7.由于f(0.75)·f(1)<0,可得新的有解区间[0.75,1],精度1-0.75=0.25>0.01;……当得到新的有解区间[0.75,0.757 82]时,由于|0.757 82-0.75|=0.007 82<0.01,该区间精度已满足要求,所以取区间[0.75,0.757 82]的中点0.753 91,它是方程的一个近似解.例3 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃掉羚羊.此人如何将动物转移过河?请设计算法.分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中应尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势.解:具体算法如下:算法步骤:1.人带两只狼过河,并自己返回.2.人带一只狼过河,自己返回.3.人带两只羚羊过河,并带两只狼返回.4.人带一只羚羊过河,自己返回.5.人带两只狼过河.点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要求我们在写算法时应精练、简洁、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使问题变得简单,而且可以提高工作效率.变式训练喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶.如何安排这几个步骤?请给出两种算法,并加以比较.分析:本题主要为加深对算法概念的理解,可结合生活常识对问题进行分析,然后解决问题.解:算法一:1.洗刷水壶.2.烧水.3.洗刷茶具.4.沏茶.算法二:1.洗刷水壶.2.烧水,烧水的过程当中洗刷茶具.3.沏茶.上面的两种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算法要比算法一更科学.点评:解决一个问题可有多个算法,可以选择其中最优的、最简单的、步骤尽量少的算法.知能训练设计算法判断一元二次方程ax2+bx+c=0是否有实数根.解:算法步骤如下:1.输入一元二次方程的系数:a,b,c.2.计算Δ=b2-4ac的值.3.判断Δ≥0是否成立.若Δ≥0成立,输出“方程有实根”;否则输出“方程无实根”,结束算法.点评:用算法解决问题的特点是:具有很好的程序性,是一种通法,并且具有确定性、逻辑性、有穷性.拓展提升中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t (分钟),通话费用为y (元),如何设计一个程序,计算通话的费用?解:算法分析:数学模型实际上为y 关于t 的分段函数.关系式如下:y =⎩⎪⎨⎪⎧ 0.22,0<t ≤3,0.22+0.1t -3,t >3,t ∈Z ,0.22+0.1[t -3]+1,t >3,t ∉Z .其中[t -3]表示取不大于t -3的整数部分.算法步骤如下:1.输入通话时间t .2.如果t ≤3,那么y = 0.22;否则判断t ∈Z 是否成立,若成立执行y = 0.2+0.1× (t -3);否则执行y = 0.2+0.1×( [t -3]+1).3.输出通话费用y .课堂小结1.正确理解算法这一概念.2.结合例题掌握算法的特点,能够写出常见问题的算法.作业课本本节练习1、练习2.设计感想本节的引入精彩独特,让学生在感兴趣的故事里进入本节的学习.算法是本章的重点也是本章的基础,是一个较难理解的概念.为了让学生正确理解这一概念,本节设置了大量学生熟悉的事例,让学生仔细体会反复训练.本节的事例有古老的经典算法,也有几何算法等,因此这是一节很好的课例.备课资料备选习题中国古代有一个著名的算法案例:鸡兔49个头,100条腿往地里走,问鸡兔各多少?请写出计算鸡兔数的算法.分析:求解鸡兔的问题简单直观,却包含着深刻的算法思想.应用解二元一次方程组的方法来求解鸡兔同笼问题.解:算法如下:1.设有鸡x 只,兔y 只,则有⎩⎪⎨⎪⎧ x +y =49,2x +4y =100.①② 2.将方程组中的第一个方程两边乘以-2加到第二个方程中去,得到⎩⎪⎨⎪⎧x +y =49,4-2y =100-49×2, 解得y =1.3.将y =1代入①,得x =48.因此鸡有48只,兔有1只.。
高中数学 第2章 算法初步 1 算法的基本思想教学案 北师大版必修3-北师大版高一必修3数学教学案
1 算法的基本思想[核心必知]1.算法的概念在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这一系列步骤来解决问题,我们把这一系列步骤称为解决这个问题的一个算法.2.算法的作用现代算法的作用之一是使计算机能代替人完成某些工作,这是学习算法的重要原因之一.[问题思考]1.是不是任何一个算法都有明确结果?提示:是,因为算法的步骤是明确的和有限的,有时可能需大量重复的计算,但只要按部就班地去做,总能得到确定的结果.2.一个具体问题的算法唯一吗?提示:解决一个具体问题的算法可有多个,但我们可以选择其中最优的、最简单的、步骤尽量少的算法.讲一讲1.以下语句中是算法的有( )①做饭需要刷锅、淘米、加水、加热这些步骤;②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1;③方程x2+2x-3=0有两个实根;④求1+2+3+4的值,先计算1+2=3,再由3+3=6,6+4=10得最终结果是10.A.1个B.2个C.3个 D.4个[尝试解答] ①说明了做饭的步骤;②中给出了一元一次方程这一类问题的解决方式;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③,并没有说明如何去算,故①②④是算法,③不是算法.[答案]C解答这类问题的方法为特征判断法,主要从以下三方面判断:(1)看是否满足顺序性.算法实际上就是顺序化的解题过程,是指可以用计算机来解决某一类问题的程序或步骤.(2)看是否满足明确性.算法的每一步都是确定的,而不是含糊的、模棱两可的. (3)看是否满足有限性.一个算法必须在有限步后结束.如果一个解题步骤永远不能结束,那么就永远得不到答案.因此,有始无终的解题步骤不是算法.此外,算法的不唯一性也要考虑到. 练一练1.以下语句表达中是算法的有( )①从某某到巴黎可以先乘火车到,再坐飞机抵达; ②12x >2x +4; ③求M (1,2)与N (-3,-5)两点连线的方程,可先求MN 的斜率,再利用点斜式方程求得. A .0个 B .1个C .2个 D .3个解析:选C ①中说明了从某某到巴黎的行程安排,完成任务.对于②没有说明如何去做.③说明了求直线MN 的方程的算法步骤.讲一讲2.给出解方程ax 2+bx +c =0(a 、b 、c 为实常数)的一个算法. [尝试解答] 算法步骤如下:1.当a =0,b =0,c =0时,解集为全体实数; 2.当a =0,b =0,c ≠0时,原方程无实数解; 3.当a =0,b ≠0时,原方程的解为x =-cb;4.当a ≠0且b 2-4ac >0时,方程有两个不等实根x 1=-b +b 2-4ac 2a ,x 2=-b -b 2-4ac2a;5.当a ≠0,b 2-4ac =0时,方程有两个相等实根x 1=x 2=-b2a ;6.当a ≠0且b 2-4ac <0时,方程没有实数根.设计算法的基本要求是:(1)设计的算法必须能解决一类问题并且能重复使用;(2)算法的过程需能一步步执行,每步执行的操作必须确切,不能含糊不清,而且经过有限步运算后能得出结果;(3)任何算法都必须输出结果,否那么是无意义的算法;(4)如果需要分类讨论解决的问题,那么设计的算法中,要根据条件是否成立来决定执行任务的步骤;(5)如果需要重复做同一种动作,那么设计的算法要含有返回步骤. 练一练2.写出解方程x 2-2x -3=0的一个算法. 解:法一:1.移项,得x 2-2x =3;① 2.①两边同时加1并配方,得(x -1)2=4;② 3.②式两边开方,得x -1=±2;③ 4.解③得x =3,或x =-1.法二:1.计算方程的判别式并判断其符号,Δ=(-2)2-4×1×(-3)=16>0; 2.将a =1,b =-2,c =-3代入求根公式x =-b ±b 2-4ac2a ,得x 1=3,x 2=-1.[解题高手][易错题]设计一个算法,求1+2+3+4+5+6+7+8+9+10的值. [错解] 1.计算1+2的值为3; 2.将3加到上一步的结果中,3+3=6; 3.将4加到上一步的结果中,6+4=10; …9.将10加到上一步的结果中,45+10=55; 10.输出结果为55.[错因] 根据算法的确定性.算法的每一步都是明确具体的.当算法中出现类似步骤时,可以给出判定条件重复执行,不能由省略号代替.此题做错的根本原因在于对算法的确定性理解不到位.[正解] 算法: 1.令S =0,n =1;2.将n加给S;3.判断n是否为10,假设不是,那么n加1后,执行第二步;假设n是10,那么输出结果S后结束.1.以下说法正确的选项是( )A.“5+6=11〞是一个算法B.“3是15与21的公约数〞是一个算法C.判断15是否为素数的一个程序或步骤是一个算法D.用二分法求方程x2-2=0的近似根(精确到0.01)是一个算法解析:选D算法中的程序或步骤应是明确的,有效的,且在有限步之内能够解决问题.2.以下可以看成算法的是( )A.学习数学时,课前预习,课上认真听讲并记好笔记,课下先复习再做作业,之后做适当的练习题B.今天餐厅的饭真好吃C.这道数学题难做D.方程2x2-x+1=0无实数根解析:选A A是学习数学的一个步骤,所以是算法.3.计算以下各式中的S值,能设计算法求解的是( )①S=1+2+3+ (100)②S=1+2+3+…+100+…;③S=1+2+3+…+n(n≥1,且n∈N+).A.①②B.①③C.②③ D.①②③解析:选B算法的设计要求步骤是可行的,并且能在有限步之内完成任务.4.以下有六个步骤:①拨号;②等拨号音;③提起话筒(或免提功能);④开始通话或挂机(线路不通);⑤等复话方信号;⑥结束通话.试写出打一个本地的算法________.(只写编号)解析:按照拨打的顺序设计,同时考虑所有可能的情况. 答案:③②①⑤④⑥5.求二次函数y =ax 2+bx +c (a ≠0)的最值的一个算法如下,请将其补充完整: 1.计算m =4ac -b24a.2.________________________________________________________________________. 3.________________________________________________________________________. 解析:m 是最大值还是最小值由a 的正负确定,依据二次函数求最值的方法,确定第二、三步的内容.答案:如果a >0,那么得到y min =m ,否那么执行第三步 得到y max =m 6.求半径r =2的圆的周长,写出算法. 解:算法如下: 1.取r =2; 2.计算C =2πr ; 3.输出C .一、选择题1.想泡茶喝,当时的情况是:火已经生起了,凉水和茶叶也有了,开水没有,开水壶要洗,茶壶和茶杯要洗,下面给出了四种不同形式的算法过程,你认为最好的一种算法是( )A .洗开水壶,灌水,烧水,在等待水开时,洗茶壶、茶杯、拿茶叶,等水开了后泡茶喝B .洗开水壶,洗茶壶和茶杯,拿茶叶,一切就绪后,灌水,烧水,坐等水开后泡茶喝C .洗开水壶,灌水,烧水,坐等水开,等水开后,再拿茶叶,洗茶壶、茶杯,泡茶喝D .洗开水壶,灌水,烧水,再拿茶叶,坐等水开,洗茶壶、茶杯,泡茶喝解析:选A 解决一个问题可以有多种算法,可以选择其中最优、最简单、步骤尽可能少的算法.选项中的四种算法中都符合题意,但算法A 运用了统筹法原理,因此这个算法要比其余的三种算法科学.解析:选C 算法指的是解决一类问题的方法或步骤,选项C 只是一个纯数学问题,没有解问题的步骤,不属于算法.3.以下表达能称为算法的个数为( ) ①植树需要运苗、挖坑、栽苗、浇水这些步骤.②顺序进行以下运算:1+1=2,2+1=3,3+1=4,…,99+1=100. ③从枣庄乘火车到某某,从某某乘飞机到某某. ④3x >x +1.⑤求所有能被3整除的正数,即3,6,9,12,…. A .2 B .3C .4 D .5解析:选B 根据算法的含义和特征:①②③都是算法.④⑤不是算法.其中④,3x >x +1不是一个明确的逻辑步骤,不符合逻辑性;⑤的步骤是无穷的,与算法的有穷性矛盾.4.以下所给问题中:①二分法解方程x 2-3=0(精确到0.01);②解方程⎩⎪⎨⎪⎧x +y +5=0,x -y +3=0;③求半径为2的球的体积; ④判断y =x 2在R 上的单调性.其中可以设计一个算法求解的个数是( ) A .1 B .2C .3 D .4解析:选C 由算法的特征可知①②③都能设计算法.对于④,当x >0或x <0时,函数y =x 2是单调递增或单调递减函数,但当x ∈R 时,由函数的图像可知在整个定义域R 上不是单调函数,因此不能设计算法求解.5.算法: 1.输入n ;2.判断n是否是2,假设n=2,那么n满足条件;假设n>2,那么执行第3步;3.依次检验从2到n-1的整数能不能整除n,假设不能整除n,满足条件.上述满足条件的数是( )A.质数 B.奇数C.偶数 D.4的倍数解析:选A由质数的定义知,满足条件的是质数.二、填空题6.以下关于算法的说法,正确的个数有________.①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后一定产生确定的结果.解析:由算法的特征(有限性、确定性、有序性等)可知②③④正确,但解决某一类问题的算法不一定是唯一的,故①错.答案:37.给出以下算法:1.输入x的值.2.当x>4时,计算y=x+2;否那么执行下一步.3.计算y=4-x.4.输出y.当输入x=10时,输出y=__________.解析:∵x=10>4,∴计算y=x+2=12.答案:128.直角三角形的两条直角边长分别为a,b,写出求斜边c的算法步骤.1.________________________________________________________________________;2.________________________________________________________________________;3.________________________________________________________________________.解析:先输入a、b的值,再根据勾股定理算出斜边c的长,最后输出c的结果.答案:输入两直角边长a、b的值计算c =a 2+b 2输出斜边长c 的值 三、解答题9.请设计求18的所有正约数的算法. 解:1.18=2×9; 2.18=2×32;3.列出18的所有正约数:1,2,3,32,2×3,2×32. 10.函数y =⎩⎪⎨⎪⎧2x-1 x ≤-1,log 2x +1 -1<x <2,x 2 x ≥2,试设计一个算法,输入x 的值,求对应的函数值.解:算法如下: 1.输入x 的值.2.当x ≤-1时,计算y =2x-1;否那么执行第三步. 3.当x <2时,计算y =log 2(x +1),否那么执行第四步. 4.计算y =x 2. 5.输入y .。
北师大版高中数学必修三《算法的基本思想》教案-新版
算法的基本思想一、教学内容:新课程高中数学(北师大版)必修3第二章《算法初步》第一节:算法的基本思想。
二、教学目标:1、通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义及其基本特征;2、通过分析具体问题,抽象出算法的过程,培养抽象概括能力、语言表达能力和逻辑思维能力;3、通过算法的学习,进一步让学生体验到数学与现实世界的关系、数学与计算机技术的关系、提高学生学习数学的兴趣。
三、教学重点:1、了解算法的含义及其基本特征;2、掌握算法的表示形式。
四、教学难点:算法的表示形式。
五、教学过程:(一)情景导入:在与学生的寒暄中引入今天的课题,并让学生来猜猜老师衣服的价格,提出问题:“怎样才能在有限的次数范围内猜中衣服的价格呢?”师:采用对半价格区间去猜数比较合理,在数学上我们称这种方法为“二分法”下节课我们要重点学习这种方法的应用。
师:可见我们在处理一个问题时,若是有一个好的指导思想,我们在具体行动中就不会显得很盲目,按照既定的策略,在有限的步骤内就可以达到目的。
今天我们这节课的课题就是研究有关解决问题的基本思想方法,在数学上,我们称之为“算法”。
这里的“算法”不是指狭义上的计算方法,而是广义范围内一切解决问题的思想方法。
下面我们再通过几个实例来体会一下算法的基本思想及其算法具有哪些特征。
(二)新课:师:我们先看一下书上的例子例:请设计算法,将936分解成素因素的乘积。
师:请同学们在最短的时间内分解好,提问。
生:9362223313=⨯⨯⨯⨯⨯师:请用语言描述你的思路过程。
若是学生很难用语言描述,老师要及时引导。
解:算法步骤如下:1. 判断936是否为素数:否2. 确定936的最小素因数:2. 9362468=⨯3. 判断468是否为素数:否4. 确定468的最小素因数:2. 93622234=⨯⨯5. 判断234是否为素数:否6. 确定234的最小素因数:2. 936222117=⨯⨯⨯7. 判断117是否为素数:否8. 确定234的最小素因数:3. 936222339=⨯⨯⨯⨯9. 判断39是否为素数:否10.确定234的最小素因数:3. 9362223313=⨯⨯⨯⨯⨯11. 判断13是否为素数:是素数,分解结束.师:以上就是分解素因数的一个算法,其实算法就是解决问题的一系列步骤,依照这些步骤,按部就班就可以完成任务。
高中数学 第二章 算法初步章末复习课学案 北师大版必修3
第二章算法初步学习目标 1.加深对算法思想的理解.2.加强用算法框图清晰条理地表达算法的能力.3.进一步体会由自然语言到算法框图再到程序的逐渐精确的过程.1.算法的概念算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的________、________计算序列,并且这样的步骤或序列能够解决____________.2.算法框图算法框图由__________组成,按照________________用________将框图连接起来.结构可分为________结构、________结构和________结构.3.算法语句基本算法语句有________语句、________语句、________语句、________语句、________语句五种,它们对应于算法的三种逻辑结构:顺序结构、选择结构、循环结构.用基本语句编写程序时要注意各种语句的____________,条件语句应注意If与________________配套使用,缺一不可,而________可选;循环语句应注意____________的准确表达以及____________的步长设置.类型一算法设计例1 已知平面直角坐标系中两点A(-1,0),B(3,2),写出求线段AB的垂直平分线方程的一个算法.反思与感悟算法设计应注意:(1)与解决问题的一般方法有联系,从中提炼出算法;(2)将解决问题的过程分为若干个可执行步骤;(3)引入有关的参数或变量对算法步骤加以表达;(4)用最简练的语言将各个步骤表达出来;(5)算法的执行要在有限步内完成.跟踪训练1 某工厂2014年生产小轿车200万辆,技术革新后预计每年的生产数量比上一年增加5%,问最早哪一年该厂生产的小轿车数量超过300万辆?写出解决该问题的一个算法.类型二算法框图及设计例2 给出以下10个数:5,9,80,43,95,73,28,17,60,36.要求把大于40的数找出来并输出.试画出该问题的算法框图.反思与感悟算法的设计是画算法框图的基础,我们通过对问题的分析,写出相应的算法步骤.画算法框图之前应先对算法问题设计的合法性和合理性进行探讨,然后分析算法的逻辑结构和各步骤的功能(输入、输出、判断、赋值和计算),画出相应的算法框图.跟踪训练2 阅读如图所示的算法框图,运行相应的程序,如果输入某个正整数n后,输出的s∈(10,20),那么n的值为( )A.3 B.4 C.5 D.6类型三算法语句的设计例3 给出30个数:1,2,4,7,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依此类推,要计算第30个数的大小,现在已给出了该问题算法的算法框图(如图).(2)根据算法框图写出算法语句.反思与感悟用基本语句编写程序时要注意各种语句的格式要求,特别是条件语句和循环语句,应注意这两类语句中条件的表达以及循环语句中有关变量的取值范围.跟踪训练3 某人用分期付款的方式购买一台价格为1 150元的冰箱,如果购买时先付150元,以后每月付50元,并加入上次余款利息,一个月后付第一个月的分期付款,若月利率为1%,购买冰箱的钱全部付清后,实际付出的款额是多少元?请编写一个算法语句解决这个问题.1.二分法作为一个优秀算法,有下列说法( )①适用于求所有函数的零点;②一定能在有限步内达到要求的精确度;③每一步的指令都十分明确,只需按指令机械执行;④能很方便地移植到计算机上执行,代替人完成枯燥的、重复的、烦琐的工作.其中正确的说法有( )A.①②③ B.①②④C.①③④ D.②③④2.根据如图所示的算法框图,要使得输出的结果在区间[-1,0]上,则输入的x可以是( )A.2 B.3 C.5 D.63.若算法框图所给的运行结果为S=20,那么判断框中应填入的关于k的条件是( )A.k=9 B.k≤8C.k<8 D.k>84.计算机执行下面的程序段后,输出的结果是( )A.1,3 B.4,1C.0,0 D.6,05.将下面的语句改编成Do Loop语句.1.算法往往是把问题的解法划分为若干个可执行的步骤,有些步骤甚至重复多次,但最终都必须在有限个步骤之内完成.2.对算法框图的考查之一是程序的运行结果;考查之二是补全算法框图中的条件或循环体等.3.算法设计和算法框图是程序设计的基础,编写程序的基本方法是“自上而下,逐步求精”.答案精析知识梳理1.有限的 确切的 一类问题2.框图 算法进行的顺序 流程线 顺序 选择 循环3.输入 输出 赋值 条件 循环 格式要求 Then 、End If Else 循环条件 循环变量 题型探究例1 解 第一步,计算x 0=-1+32=1,y 0=0+22=1,得AB 的中点N (1,1).第二步,计算k 1=2-03--=12,得直线AB 的斜率. 第三步,计算k =-1k 1=-2,得直线AB 的垂直平分线的斜率.第四步,由点斜式方程得直线AB 的垂直平分线的方程,并输出. 跟踪训练1 解 算法如下:第一步,令n =1,a =200,r =0.05. 第二步,T =ar (计算年增量).第三步,a =a +T (计算年产量). 第四步,如果a ≤300,那么n =n +1,返回第二步;否则执行第五步. 第五步,N =2 014+n .第六步,输出N . 例2 解 算法框图如下:跟踪训练2 B [逐项验证.若n =3,输出s =7∉(10,20). 若n =4,输出s =15∈(10,20),选B.] 例3 解 (1)①i≥30 ②P =P +i (2)算法语句如下:跟踪训练3 解 购买时付款150元,余款1 000元,分20次分期付款,并且每次要加上余款的利息,可以看出每次付款数是这样一列数:a i =50+(21-i )×50×1%(i =1,2,…20). 算法语句如下:当堂训练1.D [二分法只适合求零点左右两侧函数值异号的零点,虽能解决一类问题,但不适合所有函数求零点.]2.A [由算法框图可得输出值y =⎩⎪⎨⎪⎧x 2, x <0,4-2x , x ≥0,若y ∈[-1,0],则⎩⎪⎨⎪⎧-1≤x 2≤0,x <0,或⎩⎪⎨⎪⎧-1≤4-2x ≤0,x ≥0,解得2≤x ≤52.]3.D [据算法框图可得当k =9时,S =11;k =8时,S =11+9=20.∴应填入“k >8”.]4.B [由语句知a =1+3=4,b =4-3=1.] 5.解。
北师大版必修3高中数学第二章《算法初步》word教案
第二章算法初步§1算法的基本思想(教师用书独具)●三维目标1.知识与技能(1)通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义;(2)能够用语言叙述算法;(3)会写出将自然数分解成素因数乘积的算法;(4)会写出求两个自然数的最大公因数的算法和两个自然数的最小公倍数的算法.2.过程与方法通过对物品价格的猜测,体会猜测者的基本思路,得到一个一般步骤,而这个步骤就是一个算法.结合具体问题,模仿算法步骤,写出将自然数分解成素因数乘积的算法和求两个自然数的最大公因数的算法,从而体会算法的基本思想,了解算法的含义.3.情感、态度与价值观通过本节的学习,使学生对算法的思想有一个初步的认识,体会算法的基本思想——程序化思想,在归纳概括中培养学生的逻辑思维能力,从而进一步体会算法与现实世界的密切关系.●重点难点重点:体会算法的思想,了解算法的含义;难点:能够用语言来叙述算法.(教师用书独具)●教学建议学习是在原有知识的基础上,在新旧知识的相互作用过程中,通过同化和顺应,使自身的认知结构得以转换和发展.结合本节课的具体内容,采用启发式教学法,小组合作学习法,计算机辅助教学等教学法.本节课按照“提出问题—解决问题”的思路来设计教学程序,以学生为主体,在合作中学习和体会算法的基本思想,发展学生的创造性思维.同时考虑不同学生的个性差异和发展层次,让各层次学生都得到发展.通过多媒体演示提高课堂效率,进一步体现算法思想.●教学流程创设问题情境,引出问题:如何用自然语言叙述用二分法求近似解的过程⇒引导学生回顾用二分法求近似解的步骤,并尝试用自然语言叙述⇒通过引导,让学生自主探究,发现算法的概念及特征⇒通过例1的讲解让学生进一步明确算法的特征⇒通过例2及例3的讲解,让学生进一步体会算法设计的关键及应注意的问题⇒归纳整理,进行课堂小结,整体把握本节知识⇒完成当堂双基达标,巩固所掌握的知识,并进行反馈、矫正【问题导思】 电视娱乐节目中,有一种有趣的“猜数”游戏:竞猜者如在规定的时间内猜出某种商品的价格(或重量等),就可获得该件商品.现有一商品,价格在0~8 000元之间,采取怎样的策略才能在较短的时间内猜出正确的答案呢?解决这个问题有多种途径,其中一种较好的方法是: 第一步 报“4 000”.第二步 若主持人说:“高了”(说明答数在0~4 000之间),就报“2 000”;否则(答数在4 000~8 000之间)报“6 000”.第三步 重复第二步的报数方法,直至得到正确结果. 1.竞猜者每一步的报价有一定的规则吗?【提示】 有,报价为上一个有效范围的中间值. 2.猜出这种商品的步骤是有限的吗? 【提示】 是.算法是解决某类问题的一系列步骤或程序,只要按照这些步骤执行,都能使问题得到解决.一般来说,“用算法解决问题”都是可以利用计算机帮助完成的.在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,通常把这些步骤称为解决这些问题的算法.这种解决问题的思想方法称为算法的基本思想.1.确定性:算法的每一步必须是确切定义的,且无二义性,算法只有唯一的一条执行路径,对于相同的输入只能得出相同的输出.2.有穷性:一个算法必须在执行有穷次运算后结束.在所规定的时间和空间内,若不能获得正确结果,其算法也是不能被采用的.3.可行性:算法中的每一个步骤必须能用实现算法的工具——可执行指令精确表达,并在有限步骤内完成,否则这种算法也是不会被采纳的.4.输入:算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤.5.输出:算法一定能得到问题的解,有一个或多个结果输出,达到求解问题的目的,没有输出结果的算法是没有意义的.此外,还要求算法应具有通用性:算法应适用于某一类问题中的所有个体,而不是只能用来解决一个具体问题.有下列说法:①从济宁到乌鲁木齐旅游,先坐火车,再坐飞机抵达;②解一元一次方程的步骤是去分母、去括号、移项、合并同类项、系数化为1;③方程x2-1=0有两个实根;④求1+2+3+4的值,先计算1+2=3,再由3+3=6,6+4=10得最终结果是10.其中,算法的个数为( )A.1 B.2 C.3 D.4【思路探究】结合算法的概念和特征→逐一验证→得出结论【自主解答】①中说明了从济宁到乌鲁木齐的行程安排,完成任务;②中给出了一元一次方程这一类问题的解决方法;④中给出了求1+2+3+4的一个过程,最终得出结果;对于③这个问题,并没有说明如何去算.故①②④是算法,③不是算法.【答案】 C1.本题中的说法涉及生活中的方法和数学中的解题过程,①②④均体现了算法的特点,即符合“一系列步骤”.2.判断一个说法是否是算法,关键是看它有无步骤,且每步是否是明确、有效,能否在有限步之内完成.对算法的理解不正确的是( )A.一个算法包含的步骤是有限的B.一个算法中每一步都是明确可操作的,而不是模棱两可的C.算法在执行后,结果应是明确的D.一个问题只可以有一个算法【解析】由算法的不唯一性可知D错.【答案】 D求18的所有正约数,请设计两种算法.【思路探究】分别对1,2,3,…,18逐一检验或者对18进行因数分解,写出相关步骤即可.【自主解答】法一 1.1是18的正约数,将1列出;2.2是18的正约数,将2列出;3.3是18的正约数,将3列出;4.4不是18的正约数,将4删除;…18.18是18的正约数,将18列出.法二 1.18=2×9;2.18=2×32;3.列出18的所有正约数,1,2,3,32,2×3,2×32.1.解决一个问题可以有多个算法,可以选择其中最优的,最简单的步骤的算法.2.本例两种算法都符合题意,但法二运用了因数分解原理,这样步骤就比法一少了许多,因此更为科学.本题体现了算法的特征:(1)一个算法往往具有代表性,能够解决一类问题;(2)算法不是唯一的;(3)两个算法里面各自体现了不同的思想内涵.设计一个算法,求出840×1 764的最大公约数.【解】算法步骤如下:1.将840进行质因数分解得840=23×3×5×7;2.将1 764进行质因数分解得1 764=22×32×72;3.确定它们的公共质因数:2,3,7;4.确定公共质因数2,3,7的指数分别为:2,1,1;5.最大公约数为22×31×71=84.写出解方程-4-5=0的一个算法.【思路探究】本题是求一元二次方程的解的问题,方法很多,只要把平时的固有解法有条理、清晰地写出来,即为解该方程的算法.下面分别用因式分解法、配方法和求根公式法写出这个问题的三个算法.【自主解答】算法1:1.将方程左边因式分解,得(x-5)(x+1)=0;①2.由①,得x-5=0或x+1=0;②3.由②,可得x=5或x=-1.算法2:1.移项,得x2-4x=5;①2.①式两边同时加4并配方,得(x-2)2=9;②3.②式两边开平方,得x-2=±3;③4.解③式,得x=5或x=-1.算法3:1.计算方程的根的判别式,并判断其符号:Δ=(-4)2-4×1×(-5)=35>0;2.将a=1,b=-4,c=-5代入求根公式x=-b±b2-4ac2a,得x1=5,x2=-1.1.本题体现了算法的不唯一性.2.比较以上三个算法,可以看出算法3最简单,步骤最少,并且具有通用性.因此我们在设计算法时,首先考虑是否有公式可以利用.利用公式解决问题是最理想的方法,有时要综合各方面的因素选择一种比较好的算法.写出解方程组{2x-3y=8,① x+y=-1 ②的一个算法.【解】算法1:1.将方程②的两边同时乘以3,得3x+3y=-3;③2.将方程①和③的两边分别相加,方程左、右两边再同时除以5,得x=1;④3.将x=1代入②,方程两边再同时加-1,得y=-2;4.输出结果{x=1, y=-2.算法2:1.将方程②中的y移项,用y的式子表示x得x=-1-y;③2.将③代入①,并化简,得y=-2;④3.将④代入③,得x=1;4.输出结果{x=1, y=-2.写出求1+2+3+4+5+6的一个算法.【思路探究】可以按逐一相加的程序进行,也可以利用公式1+2+…+n=n n+12进行,也可以根据加法运算律简化运算过程.【自主解答】算法1:1.计算1+2得到3;2.将第1步中的运算结果3与3相加得到6;3.将第2步中的运算结果6与4相加得到10;4.将第3步中的运算结果10与5相加得到15;5.将第4步中的运算结果15与6相加得到21;算法2:1.取n=6;2.计算n n+12;3.输出运算结果.1.对于数值型计算问题的算法,可以借助数学公式采用数学计算的方法,将过程分解成清晰的步骤,使之条理化即可.2.应注意多个数进行四则运算时应分步计算,依次进行,直到算出结果.写出求2×4×6×8×10的一个算法.【解】算法步骤如下:1.计算2×4,得到8;2.将第一步的运算结果8与6相乘,得到48;3.将第二步的运算结果48与8相乘,得到384;4.将第三步的运算结果384与10相乘,得到3840.无分类讨论或不全面致误设计一个解方程ax2+bx+c=0的算法.【错解】小华采用的算法描述如下:1.计算Δ=b2-4ac;2.若Δ<0,则输出“方程无实根”;3.若Δ>0,则输出方程的根.【错因分析】上述算法中有两处错误:第一步是没有考虑a是否为0,显然a=0时,方程无判别式,上述算法无效;第二步错误是漏掉了Δ=0的情况.【防范措施】解方程时首先要考虑方程的类型,x的最高次幂的系数是否为0,若是二次方程讨论Δ时一定要全面.【正解】 1.输入a,b,c的值.2.若a=0,b≠0,则输出方程的根x=-c b ;若a=b=0,c≠0,则输出“方程无实根”;若a=b=c=0,则输出“方程有无数个实根”.3.若a≠0,计算Δ=b2-4ac:若Δ<0,则输出“方程无实根”;若Δ≥0,则输出方程的根x1=-b-Δ2a,x2=-b+Δ2a.1.算法的特点:有限性、确定性、逻辑性、不唯一性、普遍性.2.算法设计的要求(1)写出的算法必须能够解决一类问题(如判断一个整数是否为质数,求任意一个方程的近似解等),并且能够重复使用.(2)要使算法尽量简单,步骤尽量少.(3)要保证算法正确,且算法步骤能够一步一步执行,每一步执行的操作必须确切,不能含混不清,而且在有限步后能得到结果.1.下列关于算法的说法中,正确的是( )A.算法就是某个问题的解题过程B.算法执行后可以不产生确定的结果C.解决某类问题的算法不是唯一的D.算法可以无限地操作下去【解析】算法是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确的、有效的,而且能够在有限步内完成.算法与一般意义上具体问题的解法既有联系,又有区别,它们之间是一般与特殊,抽象与具体的关系.解决某一问题的算法不是唯一的,故选C.【答案】 C2.下列语句表达中是算法的有( )①从济南到巴黎,可以先乘火车到北京,再坐飞机抵达;②利用公式S =12ah ,计算底为1、高为2的三角形的面积;③12x >2x +4;④求M (1,2)与N (-3,-5)两点连线所在直线的方程,可先求MN 的斜率,再利用点斜式求得方程.A .1个B .2个C .3个D .4个【解析】 ①②④表达的是算法,③表达的不是算法. 【答案】 C3.比较两个实数a 与b 的大小的一个算法为: (1)若a -b >0,则a >b ; (2)________________; (3)若a -b <0,则a <b .请将上面的算法补充完整.【答案】 若a -b =0,则a =b4.求两底半径分别为2和4,高为4的圆台的表面积及体积,写出该问题的算法. 【解】 算法步骤如下: 1.取r 1=2,r 2=4,h =4;2.计算l = r 2-r 1 2+h 2;3.计算s =πr 21+πr 22+π(r 1+r 2)·l 与V =13π(r 21+r 22+r 1r 2)h ;4.输出运算结果.一、选择题1.下列对算法的理解不正确的是( )A .算法有一个共同特点就是对一类问题都有效(而不是个别问题)B .算法要求是一步步执行,每一步都能得到唯一的结果C .算法一般是机械的,有时要进行大量重复的计算,它们的优点是一种通法D .任何问题都可以用算法来解决【解析】 并不是所有的问题都可以用算法来解决,只有步骤明确,且是有限运算等才可以用算法解决.【答案】 D2.计算下列各式中的s 值,能设计算法求解的是( ) (1)s =1+2+3+ (100)(2)s =1+2+3+…+100+…;(3)s =1+2+3+…+n (n ≥1且n ∈N ). A .(1)(2) B .(1)(3) C .(2)(3) D .(1)(2)(3)【解析】 (1)(3)能设计算法求解.但(2)不能设计算法求解.原因是s 是无限多个正整数相加,步骤无限步,不符合算法的特征.【答案】 B3.想泡茶喝,当时的情况是:火已经生起了,凉水和茶叶也有了,开水没有,开水壶要洗,茶壶和茶杯要洗,下面给出了四种不同形式的算法过程,你认为最好的一种算法是( )A .洗开水壶,灌水,烧水,在等待水开时,洗茶壶、茶杯、拿茶叶,等水开了后泡茶喝B .洗开水壶,洗茶壶和茶杯,拿茶叶,一切就绪后,灌水,烧水,坐等水开后泡茶喝C.洗开水壶,灌水,烧水,坐等水开,等水开后,再拿茶叶,洗茶壶、茶杯,泡茶喝D.洗开水壶,灌水,烧水,再拿茶叶,坐等水开,洗茶壶、茶杯,泡茶喝【解析】解决一个问题可以有多种算法,可以选择其中最优、最简单、步骤尽可能少的算法.选项中的四种算法中都符合题意.但算法A运用了统筹法原理,因此这个算法要比其余的三种算法科学.【答案】 A4.给下面一个算法:(1)给出三个数x、y、z;(2)计算M=x+y+z;(3)计算N=13 M;(4)得出每次计算结果.则上述算法是( )A.求和 B.求余数C.求平均数 D.先求和再求平均数【解析】由算法过程可知,M为三数之和,N为这三数的平均数,故选D.【答案】 D5.下面是某个问题的算法过程:1.比较a与b的大小,若a<b,则交换a,b的值;2.比较a与c的大小,若a<c,则交换a,c的值;3.比较b与c的大小,若b<c,则交换b,c的值;4.输出a,b,c.该算法结束后解决的问题是( )A.输入a,b,c三个数,按从小到大的顺序输出B.输入a,b,c三个数,按从大到小的顺序输出C.输入a,b,c三个数,按输入顺序输出D.输入a,b,c三个数,无规律地输出【解析】通过第1步和第2步可以发现,a为最大值,通过第3步可以看出,c为最小值,可知输出的三个数是按从大到小的顺序输出.【答案】 B二、填空题6.在下面求15和18的最小公倍数的算法中,其中不恰当的一步是________.(1)先将15分解素因数:15=3×5;(2)然后将18分解素因数:18=32×2;(3)确定它们的所有素因数:2,3,5;(4)计算出它们的最小公倍数:2×3×5=30.【解析】正确的应该是:先确定素因数的指数:2,3,5的指数分别为1,2,1;然后计算出它们的最小公倍数:2×32×5=90.【答案】(4)7.下列是用“二分法”求方程x2-5=0的近似解的算法,请补充完整.1.令f(x)=x2-5,给定精度d.2.确定区间(a,b),满足f(a)f(b)<0.3.取区间中点m=________.4.若f(a)f(m)<0,则含零点的区间为(a,m);否则,含零点的区间为(m,b).将新得到的含零点的区间仍记为(a,b).5.判断(a,b)的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.【解析】区间(a,b)的中点,就是a与b的平均数a+b 2.【答案】a+b 28.给出下列算法:1.输入x的值.2.当x>4时,计算y=x+2;否则执行下一步.3.计算y=4-x.4.输出y.当输入x=0时,输出y=________.【答案】 2三、解答题9.解关于x的方程ax+2=0(a∈R),写出算法.【解】算法如下:(1)移项,得ax=-2.(2)当a≠0时,x=-2a,输出x,结束算法;当a=0时,输出方程无实根,结束算法.10.写出求a、b、c三个数中最小的数的算法.【解】(1)比较a、b的大小,若a<b,则记m=a,若b<a,则记m=b;(2)比较m与c的大小,若m<c,则m为最小数,若c<m,则c为最小数;(3)输出结果.11.某节目中有一种“猜数”游戏:竞猜者在规定的时间内猜出某种商品的价格就可获得该件商品.现有一商品,价格在0~8 000元之间,采取怎样的策略才能在较短的时间内说出正确的答案呢?【解】算法步骤如下:第一步:报“4 000元”.第二步:若主持人说“高了”(说明答数在1~4 000之间),就报“2 000元”,否则(答数在4 000~8 000之间)报“6 000元”.第三步:重复第二步的报数方法,取中间数,直至得到正确结果.(教师用书独具)被我国著名数学家华罗庚教授用作“统筹法”的引子的“烧开水泡壶茶喝”的问题:某人想泡壶茶喝,火已经生了,凉水和茶叶都有了.需要做的是洗烧水壶,洗茶壶和茶杯,烧开水.洗烧水壶需要1分钟,烧开水需要15分钟,洗茶壶需要1分钟,洗茶杯需要1分钟,泡茶需要1分钟.这个人为了尽快喝到茶水,应该怎样安排“烧开水泡壶茶喝”的步骤?最短多长时间后这个人能喝到茶水?【自主解答】这个人为了尽快喝到茶水的算法步骤是:1.洗烧水壶;2.烧开水;3.在等待烧开水的过程中,分别依次完成洗茶壶、洗茶杯;4.泡茶.因此,最短17分钟后这个人才能喝到茶水.田忌赛马的故事人人皆知:齐国大将田忌与齐威王约定赛马,他们把各自的马分成上、中、下三等.比赛的时候,上等马对上等马,中等马对中等马,下等马对下等马.由于齐威王每个等级的马都比田忌的强,三场比赛下来,田忌都失败了.田忌垂头丧气正准备离开马场时,他的好朋友孙膑招呼他过来,拍着他的肩膀说:“从刚才的情形看,齐威王的马比你的马快不了多少,你再同他赛一次,我有办法让你取胜.”请你设计出孙膑用同样的马使田忌获胜的算法.【解】在齐威王的马比田忌的马快不了多少的情况下,孙膑采用的算法如下:第一步:让田忌拿下等马对齐威王的上等马,第一场输了;第二步:让田忌拿上等马对齐威王的中等马,胜了第二场;第三步:让田忌拿中等马对齐威王的下等马,又胜了一场.§2算法框图的基本结构及设计2.1 顺序结构与选择结构2.2 变量与赋值(教师用书独具)●三维目标1.知识与技能(1)了解算法框图的概念,掌握各种框图符号的功能.(2)了解顺序结构和选择结构的概念,能用算法框图表示顺序结构和选择结构.2.过程与方法(1)通过学习算法框图的各个符号的功能,培养学生对图形符号语言和数学文字语言的转化能力.(2)学生通过模仿、操作、探索,经历设计算法框图表达解决问题的过程,在具体问题的解决过程中理解流程图的结构.3.情感、态度与价值观学生通过动手,用算法框图表示算法,进一步体会算法的基本思想,体会数学表达的准确与简洁,培养学生的数学表达能力和逻辑思维能力.●重点难点重点:各种算法框图功能,算法的顺序结构与选择结构.难点:选择结构的算法框图.(教师用书独具)●教学建议学生首次接触算法框图,根据教学内容、教学目标和学生的认知水平,本节课主要采取问题导入式教学,即“创设情境,提出问题——讨论问题,提高方案——交流方案,解决问题——模拟练习,运用问题——归纳总结,完善认识”,通过对问题的探究过程让学生掌握新知识,同时在解决问题的过程中掌握新知识的应用和解题过程,提高学生独立解题的能力.在教师的引导下,充分发挥学生的主观能动性,从问题入手,通过分析问题、交流方案、解决问题、运用问题的探索过程,让学生全程参与到问题的探索中,一方面注重培养学生严谨的逻辑思维能力和语言组织能力,另一方面,通过交流方案提高学生的合作意识,共同来完成教学目标.●教学流程创设情境,提出问题,以问题为切入点开展教学,引发学生思考,调动学生学习的积极性⇒引导学生分析用自然语言描述的算法的优缺点.引入流程图的概念及特征⇒引导学生对学过的分段函数及顺序结构观察、思考交流它们之间的联系与区别⇒通过例1的教学引导学生掌握画算法框图规则及应用顺序结构设计算法的技巧和方法,体会框图在设计中的优越性⇒通过例2及其变式训练的讲解,使学生进一步明确选择结构的特征,认识选择结构⇒通过例3及变式训练,使学生掌握用赋值语句设计算法掌握如何设置变量和给变量赋值⇒归纳小结,完善认识引导学生进一步理解顺序结构、选择结构及算法框图,归纳作算法框图的步骤,整体把握本节所学知识⇒学生独立完成当堂双基达标,巩固本节所学知识,并进行反馈、矫正1.号表示操作的内容,带箭头的线表示操作的先后顺序.2.图框的名称及功能:【问题导思】已知球的半径为R.1.设计一个算法,求球的表面积和体积.【提示】第一步,输入球半径R.第二步,计算S=4πR2.第三步,计算V=43πR3.第四步,输出S,V.2.上述算法有何特点?【提示】按照顺序从上到下进行.按照步骤依次执行的一个算法,称为具有“顺序结构”的算法,或者称为算法的顺序结构.其算法框图如下:【问题导思】2012年元旦期间,某商品进行团购优惠活动:购买5件或5件以下,每件88元;超过5件,超过的部分按每件8折优惠.1.若某人购买x件,试写出购物总费用y与购买件数x的关系式.【提示】y={88x, 440+70.4 x-5 ,x≤5, x>5.2.设计上述问题的算法时,应注意什么?【提示】注意判断购买的件数对购物费用的影响.3.上述问题若画算法框图,只用顺序结构能完成吗?【提示】不能.在一个算法中,有时需要进行判断,判断的结果决定后面的步骤,像这样的结构通常称为选择结构.其算法框图如下:一次考试中,某同学的语文,数学,英语,物理,化学的成绩分别是,b,c,d,e.设计一个计算该同学的总分和平均分的算法,并画出算法框图.【思路探究】先算出总分,再算平均分,最后输出结果,因此只用顺序结构就能表达出算法.【自主解答】算法步骤如下:1.输入该同学的语文,数学,英语,物理,化学的成绩:a,b,c,d,e;2.计算S=a+b+c+d+e;3.计算W=S 5;4.输出S和W.算法框图如图所示:1.解决本题时,可先写出解决该问题的方法步骤,然后写成算法步骤,再根据算法步骤画出相应的算法框图.2.顺序结构是按步骤依次执行的一种算法结构,它不含有选择判断,不循环执行,是最简单且任何结构都少不了的基本结构.已知圆的半径,设计一个算法求圆的周长和面积的近似值,并用算法框图表示.【解】算法步骤如下:1.输入圆的半径R;2.计算L=2πR;3.计算S=πR2;4.输出L和S.框图如图所示:已知函数y=2-1,<0, +1,0≤<1, +2,≥1,写出求该函数函数值的算法,并画出算法框图.【思路探究】(1)该函数是分段函数,因此当给出一个自变量x的值时,需先判断x的范围,然后确定利用哪一段的解析式求函数值.(2)画程序框图时,必须采用选择结构,因为函数解析式分了三段,所以需要两个判断框,即进行两次判断.【自主解答】算法步骤如下:1.输入x;2.如果x<0,则y=2x-1,输出y;否则,执行第三步;3.如果x<1,则y=x2+1,输出y;否则,执行第四步;4.y=x3+2x;5.输出y.程序框图如图所示:1.设计算法框图时,首先设计算法分析(自然语言),再将算法分析转化为算法框图(图形语言).如果已经非常熟练地掌握了画算法框图的方法,那么可以省略算法分析直接画出算法框图.2.在处理分段函数问题的过程中,当x取不同范围内的值时,函数值也不同,因此当给出一个自变量x的值时,必须先判断x的范围,所以在算法框图中需要设计选择结构.已知函数y={-x+1,x>0, 0,x=0, x+3,x<0,输入自变量x的值,设计算法求对应函数值,并画出算法框图.【解】算法步骤如下:(1)输入x;(2)若x>0,则y=-x+1,并转到(4);否则执行(3);(3)若x=0,则y=0;否则y=x+3;(4)输出y.算法框图如图所示:设计一个算法,使得任意输入的3个整数按从大到小的顺序输出,画出框图.【思路探究】可采用赋值语句对经历大小比较之后的变量重新赋值,赋值后再与另一个数比较.【自主解答】用a、b、c表示输入的3个整数,为了节约变量,把它们重新排列后,仍用a、b、c表示,并使a≥b≥c,具体算法步骤为:1.输入3个整数a、b、c;2.将a与b比较,并把小者赋予b,大者赋予a;3.将a与c比较,并把小者赋予c,大者赋予a,此时a已是三者中最大的;4.将b与c比较,并把小者赋予c,大者赋予b,此时a、b、c已按从大到小的顺序排列好;5.按顺序输出a、b、c.框图如图所示.用赋值语句编写算法时,应注意以下两点:(1)赋值号左边只能是变量名字,而不是表达式,并且赋值号左右不能互换.(2)不能利用赋值语句进行代数式(或符号)的演算(如化简、因式分解等),如y=x2-4=(x+2)(x-2).给定三个函数y1=x2-1,y2=2x-1,y3=-x2+3x,对于给出的一个x值,分别计算它们的函数值,并输出它们中最大的一个,设计一个解决该问题的算法,并画出算法框图.【解】算法步骤如下:1.输入x;2.y1=x2-1;3.y2=2x-1;4.y3=-x2+3x;5.如果y2≥y1,则y1=y2,否则执行第六步;6.如果y3≥y1,则y1=y3,否则执行第七步;7.输出最大值y1.算法框图如图所示:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章算法初步
本章知识体系
专题一算法的设计
例1设计一个算法,求方程x2-4x+2=0在(3,4)之间的近似根,要求精确度为10-4,算法步骤用自然语言描述.
思路探究可以利用二分法的步骤设计算法.
解答算法步骤如下:
第一步,令f (x )=x 2-4x +2,由于f (3)=-1<0,f (4)=2>0,所以设x 1=3,x 2=4. 第二步,令m =x 1+x 2
2,判断f (m )是否等于0,若f (m )=0,则m 为所求的根,结束算法;
若f (m )≠0,则执行第三步.
第三步,判断f (x 1)f (m )>0是否成立,若成立,则令x 1=m ;否则令x 2=m .
第四步,判断|x 1-x 2|<10-4是否成立,若成立,则x 1与x 2之间的任意取值均为满足条件的近似根;若不成立,则返回第二步.
规律方法 (1)算法设计与一般意义上的解决问题不同,它是对一类问题的一般解法的抽象与概括,它往往是把问题的解法划分为若干个可执行的步骤,有时是重复多次,但最终都必须在有限个步骤之内完成.
(2)对于给定的问题,设计其算法时应注意以下四点: ①与解决问题的一般方法相联系,从中提炼与概括步骤; ②将解决问题的过程划分为若干步骤; ③引入有关的参数或变量对算法步骤加以表述; ④用简练的语言将各个步骤表达出来.
已知平面坐标系中两点A (-1,0),B (3,2),写出求线段AB 的垂直平分线方程的一个算法. 解:第一步,计算x 0=-1+32=22=1,y 0=0+22=1,
得AB 的中点N (1,1).
第二步,计算k 1=2-0
3-(-1)=1
2,得AB 的斜率.
第三步,计算k =-1
k 1
=-2,得AB 垂直平分线的斜率.
第四步,由点斜式得直线AB 的垂直平分线的方程:y -1=-2(x -1),即2x +y -3=0.
专题二 算法的选择结构
例2 阅读如图所示的算法框图,如果输出的函数值在区间[14,1
2]内,则输入的实数x
的取值范围是( )
A .(-∞,-2)
B .[-2,-1]
C .[-1,2]
D .(2,+∞)
解答 若x ∉[-2,2],则f (x )=2∉[14,12],不符合题意;当x ∈[-2,2]时,由f (x )=2x ∈[14,1
2],
得x ∈[-2,-1].
答案 B
规律方法 框图表示的是一个分段函数的求值问题,题目是由函数值的范围求自变量的范围.
如图是求实数x 的绝对值的算法程序框图,则判断框①中可填x >0或x ≥0.
解析:本题以绝对值为背景,主要考查了算法框图,重点考查了选择结构中的条件语句,根据绝对值的含义,非负数的绝对值是它本身,负数的绝对值是它的相反数,以及0的特殊
性,故填x>0或x≥0.
专题三算法的循环结构
例3若1+3+5+…+n>2 015,试设计算法框图,寻找满足条件的最小奇数n.
解答因为涉及累加问题,所以算法含有循环结构,写出算法步骤如下:
1.S=0,i=1.
2.S=S+i,i=i+2.
3.判断S>2 015是否成立;
(1)若S>2 015,则i=i-2,输出i;
(2)若S<2 015,返回步骤2.
算法框图:①画顺序结构图,即起止框及两个处理框,并分别填入循环初始条件(如图
①);
②画循环结构图,先画循环体即两个处理框(一个累加,一个计数),再画循环终止条件,即判断框并判断S>2 015,若不成立,则流向循环体进行再循环(如图②);
③画处理框并填入“i=i-2”,输出框输出i以及起止框表示算法结束(如图③).
最后,合成整个算法框图如下图.
规律方法循环结构必包含顺序结构和选择结构,所以本题具有一定的典型性和示范性;如累加、累乘等需要反复执行的算法设计中,宜使用循环结构,这时要密切注意“循环体”、“循环变量”和“循环终止条件”三个重要组成部分的框图设计.
执行如图所示的程序框图,输出的结果为(B)
A.(-2,2) B.(-4,0)
C.(-4,-4) D.(0,-8)
解析:运行程序:x=1,y=1,k=0,s=1-1=0,t=1+1=2,x=0,y=2,k=0+1=1,因为1<3,否,s=-2,t=2,x=-2,y=2,k=2,因为2<3,否,s=-4,t=0,x =-4,y=0,k=3,因为3≥3,是,输出(-4,0).故选B.
专题四 基本算法语句
编写程序的基本方法是“自上而下,逐步求精”,即首先把一个复杂的大问题分解成若干个相对独立的小问题,如果小问题仍较复杂,则可以把这些小问题再继续分解成若干个子问题,这样不断分解,便可使得小问题或子问题简单到能够直接用程序的三种基本结构表达为止,然后,对应每一个小问题或子问题编写出一个功能上相对独立的程序模块来,每个模块各个击破,最后再统一组装,问题便可得到解决.
例4 高等数学中经常用到符号函数sgn(x ),其定义为y =⎩⎪⎨⎪
⎧
1(x >0),0(x =0),-1(x <0).试编写程序,输
入x 的值,输出y 的值.
思路探究 由于此函数是一个分段函数,对于输入的x 的值,应根据x 的取值范围,选择相应的解析式代入求值,故要利用条件语句进行处理.又因为实数x 的取值共分三个范围,所以要用条件语句的嵌套.
解答 算法框图如下图所示.
程序语言如下: 输入 x If x >0 Then
y =1 Else
If x =0 Then
y =0 Else
y =-1
End If
End If
输出y
End
规律方法在编写条件语句的嵌套中的“条件”时,要注意“If”与“End If”的配对,还可以用文字缩进来表示嵌套的层次,以帮助对程序的阅读和理解.
给出30个数:1,2,4,7,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第4个数比第3个数大3,依此类推,要计算第30个数的大小.现在已给出了该问题算法的流程图,如下图所示.
(1)请在图中判断框①处和执行框②处填上合适的语句,使之能完成该题算法功能;
(2)根据流程图写出程序.
解:(1)①中应填写“i>30”,②中应填写“P=P+i”.
(2)程序如下:
P=1
S=0
i=1
Do
S=S+P
P=P+i
i=i+1
Loop While i<=30 输出S。