第一章 算法初步
§1.1.1 算法的概念
授课
时间
第 周 星期 第 节
课型
新授课
主备课人
学习
目标
1.了解算法的含义,体会算法的思想;能够用自然语言叙述算法;掌握正确的算法应满足的要求。
2.通过例题分析,体会算法的基本思路。
重点难点
重点:算法的含义及应用。
难点:写出解决一类问题的算法。
学习
过程
与方
法
自主学习: 认真自学课本P2-5, 完成下列问题.
算法作为一个名词,我们虽然没有接触过它的概念,但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。
1.解二元一次方程组:
分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,请用加减消元法写出它的求解过程.
解:第一步: ;
第二步: ;
第三步: 。
探究:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
评析:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次方程组的解法。下面写出求方程组的解的算法:
2.试写出求方程组的解的算法.
解:第一步: ;
第二步: ;
第三步: .
提炼:
一、算法概念:
在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤. 现在, 算法通常可以编成计算机程序,让计算机执行并解决问题.
二、 算法的特点:
(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.
(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.
(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.
(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.
合作探究:
例1、任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断.
分析:(1)质数是只能被1和自身整除的大于1的整数.
(2)要判断一个大于1的整数n是否为质数,只要根据质数的定义,用比这个整数小的数去除n,如果它只能被1和本身整除,而不能被其它整数整除,则这个数便是质数.
解:
说明:本算法是用自然语言的形式描述的.设计算法一定要做到以下要求:
(1)写出的算法必须能解决一类问题,并且能够重复使用.
(2)要使算法尽量简单、步骤尽量少.
(3)要保证算法正确,且计算机能够执行.
阅读课本3-4页的内容,分析例2
例2、用二分法设计一个求方程的近似根的算法.
分析:该算法实质是求的近似值的一个最基本的方法.
解:
达标训练
1.写出解方程x2-2x-3=0的一个算法。
2.求1×3×5×7×9×11的值,写出其算法。
3.有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题。
4.课本练习。
课堂
小结
1.算法概念和算法的基本思想
(1)算法与一般意义上具体问题的解法的联系与区别;(2)算法的五个特征。
2.利用算法的思想和方法解决实际问题,能写出一此简单问题的算法
作业
布置
20页习题1-1A组 2、3;
学习小结/教学
反思
1.1 算法与程序框图
1.1.1 算法的概念
整体设计
教学分析
算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述:“在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.”为了让学生更好理解这一概念,教科书先从分析一个具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些步骤就构成了解二元一次方程组的算法.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩固.
三维目标
1.正确理解算法的概念,掌握算法的基本特点.
2.通过例题教学,使学生体会设计算法的基本思路.
3.通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣.
重点难点
教学重点:算法的含义及应用.
教学难点:写出解决一类问题的算法.
课时安排
1课时
教学过程
导入新课
思路1(情境导入)
一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河?请同学们写出解决问题的步骤,解决这一问题将要用到我们今天学习的内容——算法.
思路2(情境导入)
大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步?
答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上.
上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念.
思路3(直接导入)
算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始.
推进新课
新知探究
提出问题
(1)解二元一次方程组有几种方法?
(2)结合教材实例总结用加减消元法解二元一次方程组的步骤.
(3)结合教材实例总结用代入消元法解二元一次方程组的步骤.
(4)请写出解一般二元一次方程组的步骤.
(5)根据上述实例谈谈你对算法的理解.
(6)请同学们总结算法的特征.
(7)请思考我们学习算法的意义.
讨论结果:
(1)代入消元法和加减消元法.
(2)回顾二元一次方程组
的求解过程,我们可以归纳出以下步骤:
第一步,①+②×2,得5x=1.③
第二步,解③,得x=.
第三步,②-①×2,得5y=3.④
第四步,解④,得y=.
第五步,得到方程组的解为
(3)用代入消元法解二元一次方程组
我们可以归纳出以下步骤:
第一步,由①得x=2y-1.③
第二步,把③代入②,得2(2y-1)+y=1.④
第三步,解④得y=.⑤
第四步,把⑤代入③,得x=2×-1=.
第五步,得到方程组的解为
(4)对于一般的二元一次方程组
其中a1b2-a2b1≠0,可以写出类似的求解步骤:
第一步,①×b2-②×b1,得
(a1b2-a2b1)x=b2c1-b1c2.③
第二步,解③,得x=.
第三步,②×a1-①×a2,得(a1b2-a2b1)y=a1c2-a2c1.④
第四步,解④,得y=.
第五步,得到方程组的解为
(5)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.
在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.
现在,算法通常可以编成计算机程序,让计算机执行并解决问题.
(6)算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏.“不重”是指不是可有可无的,甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行.
(7)在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础.
应用示例
思路1
例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是否为质数还可以,如果判断1997是否为质数就麻烦了,因此,我们需要寻找普适性的算法步骤.
变式训练
请写出判断n(n>2)是否为质数的算法.
分析:对于任意的整数n(n>2),若用i表示2—(n-1)中的任意整数,则“判断n是否为质数”的算法包含下面的重复操作:用i除n,得到余数r.判断余数r是否为0,若是,则不是质数;否则,将i的值增加1,再执行同样的操作.
这个操作一直要进行到i的值等于(n-1)为止.
算法如下:第一步,给定大于2的整数n.
第二步,令i=2.
第三步,用i除n,得到余数r.
第四步,判断“r=0”是否成立.若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示.
第五步,判断“i>(n-1)”是否成立.若是,则n是质数,结束算法;否则,返回第三步.
例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]内的数可以作为方程的近似解.
解:第一步,令f(x)=x2-2,给定精确度d.
第二步,确定区间[a,b],满足f(a)·f(b)<0.
第三步,取区间中点m=.
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.
当d=0.005时,按照以上算法,可以得到下表.
a
b
|a-b|
1
2
1
1
1.5
0.5
1.25
1.5
0.25
1.375
1.5
0.125
1.375
1.437 5
0.062 5
1.406 25
1.437 5
0.031 25
1.406 25
1.421 875
0.015 625
1.414 062 5
1.421 875
0.007 812 5
1.414 062 5
1.417 968 75
0.003 906 25
于是,开区间(1.414 062 5,1.417 968 75)中的实数都是当精确度为0.005时的原方程的近似解.实际上,上述步骤也是求的近似值的一个算法.
点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……
思路2
例1 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河?请设计算法.
分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势.
解:具体算法如下:
算法步骤:
第一步:人带两只狼过河,并自己返回.
第二步:人带一只狼过河,自己返回.
第三步:人带两只羚羊过河,并带两只狼返回.
第四步:人带一只羊过河,自己返回.
第五步:人带两只狼过河.
点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率.
例2 喝一杯茶需要这样几个步骤:洗刷水壶、烧水、洗刷茶具、沏茶.问:如何安排这几个步骤?并给出两种算法,再加以比较.
分析:本例主要为加深对算法概念的理解,可结合生活常识对问题进行分析,然后解决问题.
解:算法一:
第一步,洗刷水壶.
第二步,烧水.
第三步,洗刷茶具.
第四步,沏茶.
算法二:
第一步,洗刷水壶.
第二步,烧水,烧水的过程当中洗刷茶具.
第三步,沏茶.
点评:解决一个问题可有多个算法,可以选择其中最优的、最简单的、步骤尽量少的算法.上面的两种算法都符合题意,但是算法二运用了统筹方法的原理,因此这个算法要比算法一更科学.
例3 写出通过尺轨作图确定线段AB一个5等分点的算法.
分析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做就能完成任务.
解:算法分析:
第一步,从已知线段的左端点A出发,任意作一条与AB不平行的射线AP.
第二步,在射线上任取一个不同于端点A的点C,得到线段AC.
第三步,在射线上沿AC的方向截取线段CE=AC.
第四步,在射线上沿AC的方向截取线段EF=AC.
第五步,在射线上沿AC的方向截取线段FG=AC.
第六步,在射线上沿AC的方向截取线段GD=AC,那么线段AD=5AC.
第七步,连结DB.
第八步,过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点.
点评:用算法解决几何问题能很好地训练学生的思维能力,并能帮助我们得到解决几何问题的一般方法,可谓一举多得,应多加训练.
知能训练
设计算法判断一元二次方程ax2+bx+c=0是否有实数根.
解:算法步骤如下:
第一步,输入一元二次方程的系数:a,b,c.
第二步,计算Δ=b2-4ac的值.
第三步,判断Δ≥0是否成立.若Δ≥0成立,输出“方程有实根”;否则输出“方程无实根”,结束算法.
点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷性.让我们结合例题仔细体会算法的特点.
拓展提升
中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用.
解:算法分析:
数学模型实际上为:y关于t的分段函数.
关系式如下:
y=
其中[t-3]表示取不大于t-3的整数部分.
算法步骤如下:
第一步,输入通话时间t.
第二步,如果t≤3,那么y=0.22;否则判断t∈Z 是否成立,若成立执行
y=0.2+0.1×(t-3);否则执行y=0.2+0.1×([t-3]+1).
第三步,输出通话费用c.
课堂小结
(1)正确理解算法这一概念.
(2)结合例题掌握算法的特点,能够写出常见问题的算法.
作业
课本本节练习1、2.
设计感想
本节的引入精彩独特,让学生在感兴趣的故事里进入本节的学习.算法是本章的重点也是本章的基础,是一个较难理解的概念.为了让学生正确理解这一概念,本节设置了大量学生熟悉的事例,让学生仔细体会反复训练.本节的事例有古老的经典算法,有几何算法等,因此这是一节很好的课例.
第一章 算法初步
1.1 算法与程序框图
1.1.1 算法的概念
双基达标 ?限时20分钟?
1.下列不能看成算法的是 ( ).
A.洗衣机的使用说明书
B.烹制油焖大虾的菜谱
C.从山东省莱芜市乘汽车到北京,在北京坐飞机到纽约
D.李明不会做饭
解析 很明显A、B、C都是按步骤完成的某项任务,而D中仅仅说明了一个问题,不
是算法,故选D.
答案 D
2.有关算法的描述有下列几种说法:
①对一类问题都有效;
②对个别问题有效;
③计算可以一步一步地进行,每一步都有唯一的结果;
④是一种通法,只要按部就班地做,总能得到结果.
其中描述正确的个数为 ( ).
A.1 B.2 C.3 D.4
解析 算法通常是指可以用计算机来解决的某一类问题的程序或步骤,所以①正确;②
错误.由于程序必须是明确的,有效的,而且在有限步内完成,所以③④正确.故选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.3 C.4 D.5
解析 根据算法的含义和特征:①②③都是算法;④⑤不是算法.其中④,3x>x+1不
是一个明确的逻辑步骤,不符合逻辑性;⑤的步骤是无穷的,与算法的有穷性矛盾.
答案 B
4.(2012·石嘴山高一检测)已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99,求它的总分和平均分的一个算法如下,请将其补充完整:
第一步,取A=89,B=96,C=99.
第二步,__________________________________________________________________.
第三步,__________________________________________________________________.
第四步,输出计算结果.
答案 计算总分D=A+B+C 计算平均分E=
5.已知直角三角形两条直角边长分别为a,b.写出求斜边长c的算法如下:
第一步,输入两直角边长a,b的值.
第二步,计算c=的值.
第三步,___________________________________________________________________.
将算法补充完整,横线处应填________.
答案 输出斜边长c的值
6.写出方程x2-4x-12=0的一个算法.
解 法一 第一步,移项,得x2-4x=12. ①
第二步,①式两边同加4并配方,得(x-2)2=16. ②
第三步,②式两边开方,得x-2=±4. ③
第四步,解③得x=6或x=-2.
法二 第一步,将方程左边因式分解,得(x-6)(x+2)=0. ①
第二步,由①得x-6=0或x+2=0. ②
第三步,解②得x=6或x=-2.
法三 第一步,计算方程的判别式Δ=42+4×12>0.
第二步,将a=1,b=-4,c=-12代入求根公式
x=,得x1=6,x2=-2.
综合提高 ?限时25分钟?
7.对于算法:第一步,输入n.
第二步,判断n是否等于2,若n=2,则n满足条件;若n>2,则执行第三步.
第三步,依次从2到(n-1)检验能不能被n整除,若不能被n整除,则执行第四步;若
能整除n,则结束算法.
第四步,输出n.
满足条件的n是 ( ).
A.质数 B.奇数
C.偶数 D.约数
解析 此题首先要理解质数,只能被1和自身整除的大于1的整数叫质数.2是最小的质
数,这个算法通过对2到(n-1)一一验证,看是否有其他约数,来判断其是否为质数.
答案 A
8.(2012·菏泽高一检测)计算下列各式中S的值,能设计算法求解的是 ( ).
①S=+++…+
②S=+++…++…
③S=+++…+(n≥1且n∈N*)
A.①② B.①③ C.②③ D.①②③
解析 因为算法的步骤是有限的,所以②不能设计算法求解.
答案 B
9.结合下面的算法:
第一步,输入x.
第二步,判断x是否小于0,若是,则输出x+2;否则,执行第三步.
第三步,输出x-1.
当输入的x的值为-1,0,1时,输出的结果分别为________,________,________.
解析 根据x与0的大小关系选择不同的执行步骤.
答案 1 -1 0
10.已知A(-1,0),B(3,2),下面是求直线AB的方程的一个算法,请将其补充完整:
第一步,_________________________________________________________________.
第二步,用点斜式写出直线AB的方程y-0=[x-(-1)].
第三步,将第二步的方程化简,得到方程x-2y+1=0.
解析 由于第二步中直线方程是点斜式,故可判断第一步求的是斜率.
答案 计算直线AB的斜率k=
11.某铁路部门规定甲、乙两地之间旅客托运行李的费用为:
c=
其中ω(单位:kg)为行李的质量,如何设计计算托运费用c(单位:元)的算法.
解 第一步,输入行李的质量ω.
第二步,如果ω≤50,则令c=0.53×ω,否则执行第三步.
第三步,c=50×0.53+(ω-50)×0.85.
第四步,输出托运费c.
12.(创新拓展)鸡兔同笼问题:鸡和兔各若干只,数腿共100条,数头共30只,试设计一个算法,求出鸡和兔各有多少只.
解 第一步,设有x只鸡,y只兔,列方程组
第二步,②÷2+①×(-1),得y=20.
第三步,把y=20代入x=30-y,得x=10.
第四步,得到方程组的解
第五步,输出结果,鸡10只,兔20只.
课件24张PPT。1.1.1 算法的概念1.1 算法与程序框图【课标要求】
1.通过分析解决具体问题的过程与步骤,体会算法的基
本思想.
2.了解算法的含义和特征.
3.会用自然语言表述简单的算法.
【核心扫描】
1.要会用自然语言描述算法,并写出相应的算法步骤.
(重点)
2.算法的应用.(难点)
1.算法的概念
自学导引一定规则明确有限计算机程序 :解决一个问题的算法是唯一的吗?
提示 不唯一.如解二元一次方程组的算法有加减消元法和代入消元法两种,但不同的算法有优劣之分.
算术运算算法的特征
算法是解决问题过程的抽象而精确的描述,一般具备以下几个特征:
(1)有限性:一个算法的步骤序列是有限的,它应在有限步操作之后停止.
(2)确定性:算法中的每一步应该是确定的,并且能有效地执行且得到确定的结果,而不应当是模棱两可的.
(3)逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有完成前一步,才能进行下一步,而且每一步都是正确无误的,从而组成具有很强逻辑性的步骤序列.
(4)不唯一性:求解某一个问题的算法不一定只有唯一的一个,也可以有不同的算法,这些算法有繁简、优劣之分.
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决.
2.算法的设计
(1)算法与计算机的关系
计算机解决任何问题都要依赖于____,只有将解决问题的过程分解为若干个__________,即_____,并用计算机能够接受的“____”准确地描述出来,计算机才能够解决问题.
(2)设计算法的目的
设计算法的目的实际上是寻求一类问题的算法,它可以通过计算机来完成.设计算法的关键是把过程分解成若干个明确的步骤,然后用计算机能够接受的“语言”准确地描述出来,从而达到让计算机执行的目的.
(3)设计算法的要求
①写出的算法必须能解决一类问题;
②要使算法尽量简单、步骤尽量少;
③要保证算法正确,且计算机能够执行.
3.算法明确的步骤算法语言算法概念的理解
(1)算法可以理解为按照一定规则解决某一类问题所构成的完整的解题步骤,或看成按要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题;
(2)通俗点说,算法就是计算机解题的过程.在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法,前者是推理实现的算法,后者是操作实现的算法;
(3)算法一方面具有具体化、程序化、机械化的特点,同时又有高度的抽象性、概括性、精确性,所以算法在解决问题时更具有条理性、逻辑性等特点.通常把算法过程称为“数学机械化”,其最大优点是可以让计算机来完成.
名师点睛1.2.算法与数学问题的解法的区别与联系
算法的描述方法
算法的描述可以有不同的方式,主要有自然语言、程序框图、计算机程序语言.
(1)自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解;缺点是如果算法中包含判断或转向,并且操作步骤较多时,就不那么直观和清晰了;
(2)程序框图描述算法就是指用规定的图形符号来描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查修改等优点.
3.题型一 对算法概念的理解 (2012·固原高一检测)下列关于算法的说法,正确的个数有 ( ).
①求解某一类问题的算法是唯一的;
②算法必须在有限步操作之后停止;
③算法的每一步操作必须是明确的,不能有歧义或模糊;
④算法执行后一定产生确定的结果.
A.1 B.2 C.3 D.4
[思路探索] 正确理解算法的概念及特点是解决此类问题的关键.
【例1】解析 由于算法具有有穷性、确定性、输出性等特点,因而②③④正确,而解决某类问题的算法不一定唯一,从而①错.
答案 C
规律方法 算法实际上是解决问题的一种程序性方法,它通常解决某一个或一类问题,在用算法解决问题时,显然体现了特殊与一般的数学思想.
下列对算法的理解不正确的是 ( ).
A.一个算法应包含有限的步骤,而不能是无限的
B.算法中的每一步骤都应当是确定的,而不应当是含糊
的、模棱两可的
C.算法中的每一步骤都应当有效地执行,并得到确定的
结果
D.一个问题只能设计出一种算法
解析 A中,算法的有限性指包含的步骤是有限的,故A正确;B中,算法的确定性是指每一步都是确定的,故B正确;C中,算法的每一步都是确定的,且每一步都应有确定的结果,故C正确;D中,对于同一个问题可以有不同的算法,故D错误.
答案 D
【变式1】 写出求二次函数y=-2x2+4x+1的最值的算法.
[思路探索] 欲求二次函数最值的算法,必须明确什么是二次函数的最值,可以结合最值的公式求解.
解 算法如下:题型二 直接应用数学公式的算法【例2】规律方法 (1)设计此类算法的步骤:
①弄清这个算法要解决的问题是什么,需要用到哪些公式.
②明确公式中需要哪些量,题目中已知什么量,还需知道哪些中间量.
③优先解决中间量.
④套用公式,并用简洁的语言描述出来.
(2)注意事项:
在设计算法时,只要有公式,则直接利用公式解决问题是最理想、方便的. 求两底半径分别为2和4,高为4的圆台的表面积,写出该问题的算法.
解 算法如下:
第一步,令r1=2,r2=4,h=4(如图所示).【变式2】 给出求1+2+3+4+5的一个算法.
[思路探索] 本题可逐项相加,还可以直接利用计算公式.
解 法一 第一步,计算1+2,得3.
第二步,将第一步中运算结果3与3相加,得6.
第三步,将第二步中运算结果6与4相加,得10.
第四步,将第三步的运算结果10与5相加,得15.
第五步,输出结果.
法二 第一步,取n=5.题型三 累加、累乘问题的算法
【例3】规律方法 解决一个问题的算法一般不是唯一的,不同的算法有优劣之别,保证得到正确的结果是对每个算法的最基本的要求.另外,还要求算法的每个步骤都要易于实现、易于理解,效率要高,通用性要好等.
求1×3×5×7×9×11的值,写出其算法.
解 算法如下:
第一步,先求1×3,得到结果3.
第二步,将第一步所得结果3再乘以5,得到结果15.
第三步,再将15乘以7,得到结果105.
第四步,再将105乘以9,得到945.
第五步,再将945乘以11,得到10 395,即是最后结果.
【变式3】审题指导 可利用加减消元法求解,也可利用代入消元法求解.
[规范解答] 法一 第一步:②×2+①,得到5x=14-4.③
第二步:解方程③,可得x=2. ④(4分)
第三步:将④代入②,可得2+y=-2. ⑤
第四步:解⑤得y=-4. (8分)
题型四 算法的应用【例4】法二 第一步:由②式移项可以得到x=-2-y.③(4分)
第二步:把③代入①,得y=-4. ④(8分)
第三步:把④代入③,得x=2.(10分)
【题后反思】 通过求解二元一次方程组可知,求解某个问题的算法不一定唯一,对于具体的实例可以选择合适的算法,尽量做到“省时省力”,使所用算法为最优算法.
【变式4】解 算法如下:第一步,输入x.
第二步,若x>0,则令y=-x+1后执行第五步,否则执行第三步.
第三步,若x=0,则令y=0后执行第五步,否则执行第四步.
第四步,令y=x+1.
第五步,输出y的值.
设计一个算法求a1,a2,a3,a4,a5五个不同实数中最小的数.
[错解] 第一步,比较a1,a2的大小,若a1<a2,则令m=a1;若a2<a1,则令m=a2.
第二步,比较m,a3的大小,若a3<m,则令m=a3;否则m值不变.
……
第四步,比较m,a5的大小,若a5<m,则令m=a5;否则m值不变.
第五步,输出m.误区警示 算法中出现了省略号“……”而致错
【示例】 省略号“……”表达的步骤不明确,不符合算法的确定性.
[正解] 第一步,比较a1,a2的大小,若a1<a2,则令m=a1;若a2<a1,则令m=a2.
第二步,比较m,a3的大小,若a3<m,则令m=a3;否则m值不变.
第三步,比较m,a4的大小,若a4<m,则令m=a4;否则m值不变.
第四步,比较m,a5的大小,若a5<m,则令m=a5;否则m值不变.
第五步,输出m.
书写算法时,要注意算法的特征,步骤要明确,省略号、“同理”“类似地”等所代表的部分是无法执行的.
单击此处进入 活页规范训练