【www.guakaob.com--教案】
算法与程序框图
教学目标: 明确算法的含义,熟悉算法的三种基本结构。 教学重点: 算法的基本知识与算法对应的程序框图的设计. 教学难点: 与算法对应的程序框图的设计及算法程序的编写. 教学过程:
1.算法的定义:广义的算法是指完成某项工作的方法和步骤,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
2.流程图的概念:流程图是用一些规定的图形、指向线及简单的文字说明来表示算法几程序结构的一种图形程序.它直观、清晰,便于检查和修改.其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,带箭头的流程线(指向线)表示操作的先后次序.
构成流程图的图形符号及其作用
3.规范流程图的表示: ①使用标准的框图符号;
②框图一般按从上到下、从左到右的方向画,流程线要规范; ③除判断框外,大多数框图符号只有一个进入点和一个退出点. ④在图形符号内描述的语言要非常简练、清楚.
4、算法的三种基本逻辑结构:
课本中例题的讲解得出三种基本逻辑结构:顺序结构、条件结构、循环结构
(1)顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
例1:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。 解:程序框图:
点评:顺序结构是由若干个依次执行的步骤组成的,是任何一个算法都离不开的基本结构。
(2)条件结构:根据条件选择执行不同指令的控制结构。
例2:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
(3)循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构分为两类:
(1)一类是当型循环结构,如图(1)所示,它的功能是当给定的条件P1成立时,执行A框,A框执行完毕后,再判断条件P1是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P1不成立为止,此时不再执行A框,从b离开循环结构。
(2)另一类是直到型循环结构,如图(2所示,它的功能是先执行,然后判断给定的条件P2是否成立,如果P2仍然不成立,则继续执行A框,直到某一次给定的条件P2成立为 b b
当型循环结构 直到型循环结构 两种循环结构有什么差别? 当型:先判断 后执行
先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环。 直到型;先执行 后判断
先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件
成立退出循环。 注意:
1.对于算法的理解不能仅局限于解决数学问题的方法,解决任何问题的方法和步骤都应该是算法.算法具有概括性、抽象性、正确性等特点,要通过具体问题的过程和步骤的分析去体会算法的思想,了解算法的含义.
2.在学习程序框图时要掌握各程序框的作用,准确应用三种基本逻辑结构,即顺序结构、条件分支结构、循环结构来画程序框图,准确表达算法.画程序框图是用基本语句来编程的前提.
例3:设计一个计算1+2+„+100的值的算法,并画出程序框图。
算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。 解:程序框图:
课堂练习:
1:输入矩形的边长求它的面积,画出程序框图。 2:求x的绝对值,画出程序框图。
123100
3:画出求2+2+2+„2的值的程序框图。
课后练习:
1.下列关于算法的描述正确的是( )
A.算法与求解一个问题的方法相同 B.算法只能解决一个问题,不能重复使用 C.算法过程要一步一步执行 D.有的算法执行完以后,可能没有结果 2.计算下列各式中的S值,能设计算法求解的是( )
①S=1+2+3+„+100;②S=1+2+3+„+100+„;③S=1+2+3+„+n(n≥1,n∈N)
A.①② B.①③ C.②③ D.①②③ 3.下列关于算法的说法正确的是( ) A.一个算法的步骤是可逆的 B.描述算法可以有不同的方式
C.算法可以看成按照要求设计好的有限的确切的计算序列并且这样的步骤能解决当前问题 D.算法只能用一种方式显示
4.下列各式中T的值不能用算法求解的是( ) A.T=1+2+3+4+„+100
2
2
2
2
2
11111B.T=+++„+
234550
C.T=1+2+3+4+5+„ D.T=1-2+3-4+5-6+„+99-100
5.下列四种叙述能称为算法的是( )
A.在家里一般是妈妈做饭 B.做米饭需要刷锅、淘米、添水、加热这些步骤 C.在野外做饭叫野炊 D.做饭必须要有米
2
6.关于一元二次方程x-5x+6=0的求根问题,下列说法正确的是( ) A.只能设计一种算法 B.可以设计两种算法
C.不能设计算法 D.不能根据解题过程设计算法
2
7.对于解方程x-2x-3=0的下列步骤:
2
①设f(x)=x-2x-3
2
②计算方程的判别式Δ=2+4×3=16>0 ③作f(x)的图象
④将a=1,b=-2,c=-3代入求根公式
-bΔ
,得x1=3,x2=-1. 2a
其中可作为解方程的算法的有效步骤为( )
A.①② B.②③ C.②④ D.③④ 8.解决某个问题的算法如下: 第一步,给定一个实数n(n≥2).
第二步,判断n是否是2,若n=2,则n满足条件;若n>2,则执行第三步. 第三步,依次从2到n-1检验能不能整除n,若都不能整除n,则n满足条件. 则满足上述条件的实数n是( )
A.质数 B.奇数 C.偶数 D.约数 9.如下图所示的程序框图,其功能是( )
A.输入a,b的值,按从小到大的顺序输出它们的值 B.输入a,b的值,按从大到小的顺序输出它们的值
x=
1.1.1 算法的概念
【教学目标】:
(1) 了解算法的含义,体会算法的思想。
(2) 能够用自然语言叙述算法。
(3) 掌握正确的算法应满足的要求。
(4) 会写出解线性方程(组)的算法。
(5) 会写出一个求有限整数序列中的最大值的算法。
【教学重点】算法的含义、解二元一次方程组和判断一个数为质数的算法设计。.
【教学难点】把自然语言转化为算法语言。.
【学法与教学用具】:
学法:
1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;„„),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。 教学用具:计算机,TI-voyage200图形计算器
【教学过程】
一、本章章头图说明
章头图体现了中国古代数学与现代计算机科学的联系,它们的基础都是“算
法”。
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还
没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。
古代的计算工具:算筹与算盘.
20世纪最伟大的发明:计算机,计算机是强大的实现各种算法的工具。
x2y1例1:解二元一次方程组: 2xy1① ②
分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种
消元的方法,下面用加减消元法写出它的求解过程.
解:第一步:② - ①×2,得: 5y=3; ③
第二步:解③得 y3; 5
第三步:将y31代入①,得 x. 55
学生探究:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
老师评析:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次
方程组的解法。下面写出求方程组的解的算法:
a1xb1yc1例2:写出求方程组a2xb2yc2①②a1b2a2b10的解的算法.
解:第一步:②×a1 - ①×a2,得:a1b2a2b1ya1c2a2c1 ③
第二步:解③得 ya1c2a2c1; a1b2a2b1
第三步:将ya1c2a2c1c
b
y代入①,得x11
a1b2a2b1a1
利用TI-voyage200图形计算器演示:(吸引学生的注意力)
运行结果:
(其中输入a1=1,b1=-2,m1=-1,a2=2
b2=1,m2=1,当然可输入其它数值)
算法概念:
在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问
题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内
完成.
说明:
1.“算法”没有一个精确化的定义,教科书只对它作了描述性的说明.
2. 算法的特点:
(1)有限性:
一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.
(2)确定性:
算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是
模棱两可.
(3)顺序性与正确性:
算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继
步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步
都准确无误,才能完成问题.
(4)不唯一性:
求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:
很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过
有限、事先设计好的步骤加以解决.
例题讲评:
例3、任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做
出判断.
分析:(1)质数是只能被1和自身整除的大于1的整数.
(2)要判断一个大于1的整数n是否为质数,只要根据质数的定义,用比
这个整数小的数去除n,如果它只能被1和本身整除,而不能被其它整数整除,
则这个数便是质数.
解:算法:
第一步:判断n是否等于2.若n=2,则n是质数;若n>2,则执行第二步.
第二步:依次从2~(n-1)检验是不是n的因数,即整除n的数.若有这样的数,
则n不是质数;若没有这样的数,则n是质数.
说明:本算法是用自然语言的形式描述的.设计算法一定要做到以下要求:
(1)写出的算法必须能解决一类问题,并且能够重复使用.
(
2)要使算法尽量简单、步骤尽量少
.
(3)要保证算法正确,且计算机能够执行.
利用TI-voyage200图形计算器演示:(学生已经被吸引住了)
运行
例4、.用二分法设计一个求方程x220的近似根的算法.
分析:该算法实质是求2的近似值的一个最基本的方法.
解:设所求近似根与精确解的差的绝对值不超过0.005,算法:
第一步:令fxx22.因为f10,f20,所以设x1=1,x2=2.
第二步:令mx1x2,判断f(m)是否为0.若是,则m为所求;若否,则2
继续判断fx1fm大于0还是小于0.
第三步:若fx1fm0,则x1=m;否则,令x2=m.
第四步:判断x1x20.005是否成立?若是,则x1、x2之间的任意值均为满足条件的近似根;若否,则返回第二步.
说明:按以上步骤,我们将依次得到课本第4页的表
1-1和图1.1-1.于是,开区
间(1.4140625,1.41796875
)中的实数都满足假设条件的原方程是近似根. 利用TI-voyage200图形计算器演示:
运行结果:
练习1:
写出解方程x2-2x-3=0的一个算法。
解:算法1:
第一步:移项,得x2-2x-3=0; ①
第二步:①式两边同加1并配方,得(x-1)2=4; ②
第三步:②式两边开方,得x-1=±2; ③ 第四步:解③得x=3或x=-1。
算法2:
第一步:计算方程的判别式判断其符号△=22+4×3=16>0;
-b±b-4ac第二步:将a=1,b=-2,c=-3代入求根公式x=, 2
得x1=3,x2=-1
评析:比较两种算法,算法2更简单,步骤少,所以利用公式解决问题是最理想、合算的算法。因此在寻求算法的过程中,首先是利用公式。
下面设计一个求一般的一元二次方程ax2+bx+c=0的根的算法如下: 第一步:计算△=b2+4ac;
第二步:若△<0;
第三步:输出方程无实根;
第四步:若△≥0; -b±b-4ac第五步:计算并输出方程根x1,2= 2
练习2、求1×3×5×7×9×11的值,写出其算法。
第一步,先求1×3,得到结果3;
第二步,将第一步所得结果3再乘以5,得到结果15;
第三步,再将15乘以7,得到结果105;
第四步,再将105乘以9,得到945;
第五步,再将945乘以11,得到10395,即是最后结果。
评析:求解某个问题的算法不同于求解一个具体问题的方法,算法必须能够解决一类问题,并且能够重复使用;算法过程要能一步一步地执行,每一步操作必须确切,能在有限步后得出结果。
练习3、有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题。
分析:由于两个墨水瓶中的墨水不能直接交换,故可以考虑通过引入第三个空墨水瓶的办法进行交换。
解:算法步骤如下:
第一步:取一只空的墨水瓶,设其为白色;
第二步:将黑墨水瓶中的蓝墨水装入白瓶中;
第三步:将蓝墨水瓶中的黑墨水装入黑瓶中;
第四步:将白瓶中的蓝墨水装入蓝瓶中;
卓越个性化教案 GFJW0901
05-算法与程序框图
【知识点】
第一章 算法初步
1.1.1
算法的概念
1、算法概念:
“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成. 2. 算法的特点:
(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.
(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可. (3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题. (4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.
1.1.2 程序框图
1、程序框图基本概念:
(一)程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。 (二)构成程序框的图形符号及其作用【算法与程序框图的教案】
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
1
符号只有一个进入点和一个退出点。判断框具有超过一个退出点的唯一符号。4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。5、在图形符号内描述的语言要非常简练清楚。
(三)、算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。
1、顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作。 2、条件结构:
条件结构是指在算法中通过对条件的判断根据条件是否成立而选择不同流向的算法结构。
条件P是否成立而选择执行A框或B框。无论P条件是否成立,只能执行A框或B框之一,不可能同时执行A框和B框,也不可能A框、B框都不执行。一个判断结构可以有多个判断框。
3、循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类:
(1)、一类是当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构。
(2)、另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构。
注意:1循环结构要在某个条件下终止循环,这就需要条件结构来判断。因此,循环结构中一定包含条件结构,但不允许“死循环”。2在循环结构中都有一个计数变量和累加变量。计数变量用于记录循环次数,累加变量用于输出结果。计数变量和累加变量一般是同步执行的,累加一次,计数一次。
【课堂讲解】
思考2:用加减消元法解二元一次方程组
x2y11 的具体步骤是什么?
2xy12
第一步,①+②×2,得 5x=1 . ③
第二步, 第三步, 第四步, 第五步,
思考3:参照上述思路,一般地,解方程组
a1xb1yc1a1b2a2b10的基本步骤是什么? axbyc222
第一步, 第二步, 第三步, 第四步, 第五步,
思考4:根据上述分析,用加减消元法解二元一次方程组,可以分为五个步骤进行,这五个【算法与程序框图的教案】
步骤就构成了解二元一次方程组的一个“算法”。我们再根据这一算法编制计算机程序,就可以让计算机来解二元一次方程组.那么解二元一次方程组的算法包括哪些内容?
思考5:一般地,算法是由按照一定规则解决某一类问题的基本步骤组成的。你认为:
(1)这些步骤的个数是有限的还是无限的? (2)每个步骤是否有明确的计算任务?
思考6:有人对哥德巴赫猜想“任何大于4的偶数都能写成两个质数之和”设计了如下操作
步骤:
第一步,检验6=3+3, 第二步,检验8=3+5, 第三步,检验10=5+5, „„
利用计算机无穷地进行下去! 请问:这是一个算法吗?
思考7:根据上述分析,你能归纳出算法的概念吗?
算法的定义:广义的算法是指完成某项工作的方法和步骤,在数学中,算法通常是指按照
一定规则解决某一类问题的明确有限的步骤
算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏.“不重”是指不是可
有可无的,甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行. 探究(二):算法的步骤设计 【例1】(1)设计一个算法,判断7是否为质数.
(2)设计一个算法,判断35是否为质数.
算法分析:(1)根据质数的定义,可以这样判断:依次用2—6除7,如果它们中有一个能
整除7,则7不是质数,否则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是质数. ⑵类似地,可写出“判断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不是质数.
变式训练 请写出判断n(n>2)是否为质数的算法.P4
【例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=
ab
. 2
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];
否则,含零点的区间为[m,b].
将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.
若是,则m是方程的近似解;否则,返回第三步.
为0.005时的原方程的近似解。 练习
1.P5练习2
2.一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没
有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河?请设计算法. 解:具体算法如下:
算法步骤:
第二步:人带一只狼过河,自己返回.
第三步:人带两只羚羊过河,并带两只狼返回. 第四步:人带一只羊过河,自己返回. 第五步:人带两只狼过河.
1.1.2程序框图与算法的基本逻辑结构(一)
思考1:“判断整数n(n>2)是否为质数”的算法步骤如何? 第一步,给定一个大于2的整数n; 第二步, 第三步, 第四步 第五步,
思考2:我们将上述算法用下面的图形表示:
思考3: 试分别说明。
注意:在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图
的规则如下:
(1)使用标准的图形符号。
(2)框图一般按从上到下、从左到右的方向画。
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过
一个退出点的惟一符号。
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个
结果;另一类是多分支判断,有几种不同的结果。 (5)在图形符号内描述的语言要非常简练清楚。 探究(二):算法的基本逻辑结构 思考1:在逻辑结构上,“判断整数n(n>2)是否为质数”的程序框图由几部分组成? 程序框图包含下面三种逻辑结构可以用如下程序框图表示:
教学准备
1. 教学目标
(1)了解算法的含义,体会算法思想.
(2)会用自然语言和数学语言描述简单具体问题的算法;
(3)学习有条理地、清晰地表达解决问题的步骤,培养逻辑思维能力与表达能力 2. 教学重点/难点
重点:算法的含义、解二元一次方程组的算法设计.
难点:把自然语言转化为算法语言.
3. 教学用具
课件
4. 标签
算法
教学过程
情境导入
电影《神枪手》中描述的凌靖是一个天生的狙击手,他百发百中,最难打的位置对他来说也是轻而易举,是香港警察狙击手队伍的第一神枪手.作为一名狙击手,要想成功地完成一次狙击任务,一般要按步骤完成以下几步: 第一步:观察、等待目标出现(用望远镜或瞄准镜);
第二步:瞄准目标;
第三步:计算(或估测)风速、距离、空气湿度、空气密度;
第四步:根据第三步的结果修正弹着点;
第五步:开枪;
第六步:迅速转移(或隐蔽).
以上这种完成狙击任务的方法、步骤在数学上我们叫算法.
●课堂探究
预习提升
1.定义:算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题.
2.描述方式
自然语言、数学语言、形式语言(算法语言)、框图.
3.算法的要求
(1)写出的算法,必须能解决一类问题,且能重复使用;
(2)算法过程要能一步一步执行,每一步执行的操作,必须确切,不能含混不清,而且经过有限步后能得出结果.
4.算法的特征
(1)有限性:一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束.
(2)确定性:算法的计算规则及相应的计算步骤必须是唯一确定的.【算法与程序框图的教案】
(3)可行性:算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果.
(4)顺序性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,后一步是前一步的后续,且除了最后一步外,每一个步骤只有一个确定的后续.
(5)不唯一性:解决同一问题的算法可以是不唯一的.
课堂典例讲练
命题方向1 对算法意义的理解
例1.下列叙述中,
①植树需要运苗、挖坑、栽苗、浇水这些步骤;
②按顺序进行下列运算: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
[规律总结]
1.正确理解算法的概念及其特点是解决问题的关键.
2.针对判断语句是否是算法的问题,要看它的步骤是否是明确的和有效的,而且能在有限步骤之内解决这一问题.
【变式训练】 下列对算法的理解不正确的是________
①一个算法应包含有限的步骤,而不能是无限的
②算法可以理解为由基本运算及规定的运算顺序构成的完整的解题步骤 ③算法中的每一步都应当有效地执行,并得到确定的结果
④一个问题只能设计出一个算法
【解析】由算法的有限性指包含的步骤是有限的故①正确;
由算法的明确性是指每一步都是确定的故②正确;
由算法的每一步都是确定的,且每一步都应有确定的结果故③正确;
由对于同一个问题可以有不同的算法故④不正确.
【答案】④
命题方向2 解方程(组)的算法
例2.给出求解方程组的一个算法.
[思路分析]解线性方程组的常用方法是加减消元法和代入消元法,这两种方法没有本质的差别,为了适用于解一般的线性方程组,以便于在计算机上实现,我们用高斯消元法(即先将方程组化为一个三角形方程组,再通过回代方程求出方程组的解)解线性方程组.
[规范解答]方法一:算法如下:
第一步,①×(-2)+②,得(-2+5)y=-14+11,
即方程组可化为
第二步,解方程③,可得y=-1, ④
第三步,将④代入①,可得2x-1=7,x=4,
第四步,输出4,-1.
方法二:算法如下:
第一步,由①式可以得到y=7-2x, ⑤
第二步,把y=7-2x代入②,得x=4.
第三步,把x=4代入⑤,得y=-1.
第四步,输出4,-1.
[规律总结]1.本题用了2种方法求解,对于问题的求解过程,我们既要强调对“通法、通解”的理解,又要强调对所学知识的灵活运用.
2.设计算法时,经常遇到解方程(组)的问题,一般是按照数学上解方程(组)的方法进行设计,但应注意全面考虑方程解的情况,即先确定方程(组)是否有解,有解时有几个解,然后根据求解步骤设计算法步骤.
【变式训练】
【解】 算法如下:S1,①+2×②得5x=1;③
S2,解③得x=;
S3,②-①×2得5y=3;④
S4,解④得y=;
命题方向3 筛选问题的算法设计
例3.设计一个算法,对任意3个整数a、b、c,求出其中的最小值.
[思路分析]比较a,b比较m与c―→最小数
[规范解答]算法步骤如下:
1.比较a与b的大小,若a<b,则m=a;若b<a,则m=b;
2.比较m与c的大小,若m<c,则m为最小数;若c<m,则c为最小数.
[规律总结]求最小(大)数就是从中筛选出最小(大)的一个,筛选过程中的每一步都是比较两个数的大小,保证了筛选的可行性,这种方法可以推广到从多个不同数中筛选出满足要求的一个.
【变式训练】在下列数字序列中,写出搜索89的算法:
21,3,0,9,15,72,89,91,93.
[解析]1.先找到序列中的第一个数m,m=21;
2.将m与89比较,是否相等,如果相等,则搜索到89;
第一章 算法初步
本章教材分析
算法是数学及其应用的重要组成部分,是计算科学的重要基础.算法的应用是学习数学的一个重要方面.学生学习算法的应用,目的就是利用已有的数学知识分析问题和解决问题.通过算法的学习,对完善数学的思想,激发应用数学的意识,培养分析问题、解决问题的能力,增强进行实践的能力等,都有很大的帮助.
本章主要内容:算法与程序框图、基本算法语句、算法案例和小结.教材从学生最熟悉的算法入手,通过研究程序框图与算法案例,使算法得到充分的应用,同时也展现了古老算法和现代计算机技术的密切关系.算法案例不仅展示了数学方法的严谨性、科学性,也为计算机的应用提供了广阔的空间.让学生进一步受到数学思想方法的熏陶,激发学生的学习热情.
在算法初步这一章中让学生近距离接近社会生活,从生活中学习数学,使数学在社会生活中得到应用和提高,让学生体会到数学是有用的,从而培养学生的学习兴趣.“数学建模”也是高考考查重点.
本章还是数学思想方法的载体,学生在学习中会经常用到“算法思想” “转化思想”,从而提高自己数学能力.因此应从三个方面把握本章: (1)知识间的联系; (2)数学思想方法; (3)认知规律.
1.1 算法与程序框图
1.1.1 算法的概念
整体设计
教学分析
算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述:“在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤.”为了让学生更好理解这一概念,教科书先从分析一个具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些步骤就构成了解二元一次方程组的算法.教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩固. 三维目标
1.正确理解算法的概念,掌握算法的基本特点.
2.通过例题教学,使学生体会设计算法的基本思路.
3.通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣. 重点难点
教学重点:算法的含义及应用.
教学难点:写出解决一类问题的算法.
课时安排 1课时
教学过程
导入新课
思路1(情境导入)
一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量狼就会吃羚羊.该人如何将动物转移过河?请同学们写出解决问题的步骤,解决这一问题将要用到我们今天学习的内容——算法. 思路2(情境导入)
大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步?
答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上. 上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念. 思路3(直接导入)
算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始. 推进新课 新知探究 提出问题
(1)解二元一次方程组有几种方法? (2)结合教材实例
x2y1,(1)
总结用加减消元法解二元一次方程组的步骤.
2xy1,(2)
x2y1,(1)
总结用代入消元法解二元一次方程组的步骤.
2xy1,(2)
(3)结合教材实例
(4)请写出解一般二元一次方程组的步骤.
(5)根据上述实例谈谈你对算法的理解. (6)请同学们总结算法的特征. (7)请思考我们学习算法的意义. 讨论结果:
(1)代入消元法和加减消元法. (2)回顾二元一次方程组
x2y1,(1)
的求解过程,我们可以归纳出以下步骤:
2xy1,(2)
第一步,①+②×2,得5x=1.③ 第二步,解③,得x=
1
. 53. 5
第三步,②-①×2,得5y=3.④ 第四步,解④,得y=
1x,5
第五步,得到方程组的解为
y3.5
(3)用代入消元法解二元一次方程组
x2y1,(1)
我们可以归纳出以下步骤:
2xy1,(2)
第一步,由①得x=2y-1.③
第二步,把③代入②,得2(2y-1)+y=1.④ 第三步,解④得y=
3.⑤ 5
35
1. 5
第四步,把⑤代入③,得-1=
1x,5
第五步,得到方程组的解为
3y.5
(4)对于一般的二元一次方程组
a1xb1yc1,(1)
a2xb2yc2,(2)
其中a1b2-a2b1≠0,可以写出类似的求解步骤: 第一步,①×b2-②×b1,得 (a1b2-a2b1)x=b2c1-b1c2.③ 第二步,解③,得x=
b2c1b1c2
.
a1b2a2b1
第三步,②×a1-①×a2,得(a1b2-a2b1)y=a1c2-a2c1.④ 第四步,解④,得y=
a1c2a2c1
.
a1b2a2b1
b2c1b1c2x,a1b2a2b1
第五步,得到方程组的解为
ya1c2a2c1.a1b2a2b1
(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=
ab
. 2
第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];否则,含零点的区间为[m,b].将新得到的含零点的区间仍记为[a,b].
第五步,判断[a,b]的长度是否小于d或f(m)是否等于0.若是,则m是方程的近似解;否则,返回第三步.
于是,开区间(1.414 062 5,1.417 968 75)中的实数都是当精确度为0.005时的原方程的近似解.实际上,上述步骤也是求2的近似值的一个算法.
点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……
思路2
例1 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊.该人如何将动物转移过河?请设计算法. 分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势. 解:具体算法如下: 算法步骤:
第一步:人带两只狼过河,并自己返回. 第二步:人带一只狼过河,自己返回.
第三步:人带两只羚羊过河,并带两只狼返回. 第四步:人带一只羊过河,自己返回. 第五步:人带两只狼过河. 点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的.这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性.本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常遇到这样的问题,设计算法的时候,如果能够合适地利用
上一篇:人教版9的乘法口诀教案