高中数学 第二章《算法初步》全部教案 北师大版必修3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北师大版高中数学必修3第二章《算法初步》全部教案
第一课时 §2。

1.1 算法的基本思想
一、教学目标:
1.知识与技能:(1)通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义;(2)能够用语言叙述算法;(3)会写出将自然数分解成素因数乘积的算法;(4)会写出求两个自然数的最大公因数的算法和两个自然数的最小公倍数的算法。

2.过程与方法:通过对物品价格的猜测,体会猜测者的基本思路,得到一个一般步骤,而这个步骤就是一个算法。

结合具体问题,模仿算法步骤,写出将自然数分解成素因数乘积的算法和求两个自然数的最大公因数的算法,从而体会算法的基本思想,了解算法的含义。

3.情感态度与价值观:通过本节的学习,使学生对算法的思想有一个初步的认识,体会算法的基本思想——程序化思想,在归纳概括中培养学生的逻辑思维能力,从而进一步体会算法与现实世界的密切关系。

二、教学重点与难点:重点:体会算法的思想,了解算法的含义; 难点:能够用语言来叙述算法。

三、学法与教法:学法:学生通过对具体问题的感受,主动思考,互相交流,共同讨论,总结概括,从而更好地完成本节课的教学目标。

教法:探究讨论法。

四、教学过程
(一)、创设情景
章头图体现了中国古代数学与现代计算机科学的联系,它们的基础都是“算法”。

算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。

但是我们却从小学就开始接触算法,熟悉许多问题的算法。

如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。

广义地说,算法就是做某一件事的步骤或程序。

菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。

在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。

(古代的计算工具:算筹与算盘. 20世纪最伟大的发明:计算机,计算机是强大的实现各种算法的工具。

) (二)、探索研究
例1:解二元一次方程组: ⎩⎨
⎧=+-=-②
y x ①y x 1
21
2
分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程.
解:第一步:② - ①×2,得: 5y=3; ③ 第二步:解③得 53=
y ; 第三步:将53=y 代入①,得 5
1=x . 学生探究:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?老师评析:本题的
算法是由加减消元法求解的,这个算法也适合一般的二元一次方程组的解法。

下面写出求方程组的解的算法: 例2:写出求方程组()012212
22111≠-⎩⎨
⎧=+=+b a b a ②
c y b x a ①c y b x a 的解的算法.
解:第一步:②×a 1 - ①×a 2,得:()12211221c a c a y b a b a -=-③ 第二步:解③得
12211221b a b a c a c a y --=
;第三步:将12211221b a b a c a c a y --=代入①,得111
c b y
x a -=
算法概念:
在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成. 2. 算法的特点:
(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的. (2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.
(3)顺序性与正确性:算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.
(4)不唯一性:求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法. (5)普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.
(三)、例题、在给定素数表的条件下,设计算法,将936分解成素因数的乘积。

(4000以内的素数表见附录1)
让学生叙述解题的过程,了解一个初步的步骤,再根据这个解题的过程和学生共同完成这个算法的步骤,实质上就是用短除法将自然数分解成素因数。

解 算法步骤如下:
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与1764的最大公因数。

(要求学生独立完成,让学生演板,根据反馈的信息更正错误。


通过解题,不难发现在这个算法的设计中,对自然数进行素因数分解是基础,是解决这个问题的“平台”;同样的,求两个自然数的最大公因数的算法,也可以成为解决其他问题的“平台”。

“平台”的思想在算法设计中是一个最基本的思想,也是数学中思考问题的一个重要思想。

(五)、总结概括:通过前面的几个问题的分析研究,请同学们用自己的语言叙述一下什么是算法?解决这些问题的算法都有一些什么样的共同点?算法的基本思想是什么?在我们的日常生活中有那些事情用到了算法?算法是解决某类问题的一系列步骤或程序,只要按照这些步骤执行,都能使问题得到解决。

算法的基本思想——程序化思想。

(六)、布置作业:课本78页练习1 1. 2.
五、教后反思:
第二课时2.1.2排序问题与算法的多样性
一、教学目标:通过对具体实例的解决过程与步骤的分析,了解排序问题。

二、教学重难点:1、有序列的直接插入排序;2、算法设计和算法流程图。

三、教学方法:探究讨论,思考交流。

四、教学过程
(一)、创设情景,导入新课
在如常生活中,人们经常要查询信息,例如,在词典中查找某个词的读音或含义,在图书馆里根据作者或者书名查找书目,在薄中查找某单位或某人的等。

为了便于查询和检索,我们常常根据某种要求把被查询的对象用数字(或者符号)表示出来,并把数字按大小排列,是信息处理中一项基本的工作。

通常称为排序。

排序的算法很多,这里给大家介绍一些经常使用的排序方法。

(二)、探究新知
1、有序列的概念: 对于一组数据按照一定的规则顺序排列时,通常称之为有序列.
2、有序列插入排序
问题提出:新来的同学小黄升高,在班上是中等身高,因为做操的需要,体育老师要将他插到队中,你认为老师应该怎样做?
象这样一种在已经按一定顺序排好的系列(有系列)中插入,我们就叫它有序列插入排序 有序列插入排序:在已经按照某一规则排好的一系列数中,再插进一个数,成为新的一序列数,且仍按照原来的规则排列.
要将8插入到{1,3,5,7,9,11,13}中,我们怎样考虑?
确定8在原系列中的位置,使8小于或等于原系列中右边的数据,大于或等于左边的数据,将这个位置空出来,将数据8插进去
练习:1、用直接插入法把23插入有序列中,则23在
该有序列中的序位为( )
2、用直接插入法把95插入有序列45 55 67 81 99 102 105 152中,则该有序列中的第1个数和最后一个数的序号变为( ) 答案C A.1 8 B. 2 9 C. 1 9 D.2 8
问题一:已知一有序数组{38,39,51,57,66},现在要将数据52插入到数据列中.
分析:1、从数组的序号入
2、创建新的序号,比较数的大小移动数
流程图:
R[6]:=R[5]
因为52<R[4]
空5号位置
R[5]:=R[4]
空4号位置
将52插入 4号位置
问题二:对一个有序列{ R[1],R[2],…,R[n] },要将新数据A 插入到有序列中,形成新的有序列, 应该怎么做呢?根据分析原理画出流程
思考:1、还有其它插入A 的方法吗?画出流程2、如何以有序排列的算法为平台进行无序排{ 49,38,65,97,76,13,27,49}
问题思考:对于一组无序的数据列{49,38,65,97,76,13,27,49}如何完 成排序工作呢?请同学们参看P85
(1)折半插入排序:如果R[1..i-1] 是一个按关键字有序的有序序列,则可以利用折半查找实现“在R[1..i-1]中查找R[i]的插入位置”,如此实现的插入排序为折半插入排序。

(2)、折半插入排序性能分析:1)折半插入排序所需附加存储空间和直接插入排序相同,从时间上来看,折半插入排序减少了关键字的比较次数,但是移动次数不变。

2)折半插入排序的时间复杂度为o(n 2
)。

3)折半插入排序是一个稳定的排序方法。

(3)、折半插入排序:
(三)、小结:本次课主要介绍了:1.有关排序的基础知识(1).定义(2).稳定性和存储方式(3).排序算法的评价
2.直接插入排序
3、折半插入排序 (1).基本思想(2).实例模拟(3).算法描述(4).算法的复杂度。

(四)、作业布置:课本习题2-1A 组8、9 五、教学反思:
折半插入排序
待排序元素的插入位置
mi mi
i
(1起止框是任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框。

(2)输入、它可用在算法中的任何需要输入、输出的位置。

图1-1中有三个输入、输出框。

第一个出现在开始后的第一步,它的作用是输入未知数的系数a11,a12,a21,a22和常数项b1,b2,通过这一步,就可以把给定的数值写在输入框内,它实际上是把未知数的系数和常数项的值通知给了计算机,另外两个是输出框,它们分别位于由判断分出的两个分支中,它们表示最后给出的运算结果,左边分支中的输出分框负责输出D≠0时未知数x1,x2的值,右边分支中的输出框负责输出D=0时的结果,即输出无法求解信息。

(3它是采用来赋值、执行计算语句、传送运算结果的图形符号。

图1-1中出现了两个处理框。

第一个处理框的作用是计算D=a11a22-a21a12的值,第二个处理框的作用是计算x1=(b1a22-b2a12)/D,x2=(b2a11-b1a21)/D的值。

(4判断框一般有一个入口和两个出口,有时也有多个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”(也可用“Y”与“N”)两个分支,在图1-1中,通过判断框对D的值进行判断,若判断框中的式子是D=0,则说明D=0时由标有“是”的分支处理数据;若D≠0,则由标有“否”的分支处理数据。

例如,我们要打印x的绝对值,可以设计如下框图。

从图中可以看到由判断框分出两个分支,构成一个选择性结构,其中选择的标准是“x≥0”,若符合这个条件,则按照“是”分支继续往下执行;若不符合这个条件,则按照“否”分支继续
往下执行,这样的话,打印出的结果总是x 的绝对值。

在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:(1)使用标准的图形符号。

(2)框图一般按从上到下、从左到右的方向画。

(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。

判断框具有超过一个退出点的惟一符号。

(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。

(5)在图形符号内描述的语言要非常简练清楚。

(三)、理解应用
例1:已知x=4,y=2,画出计算w=3x+4y的值的流程图。

解:程序框如下图所示:
2 4和2
分别是x 和y 的值
小结:它可以出现在任何位置。

例2:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的流程图。

算法分析:这是一个简单的问题,只需先算出p 的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。

流程图:
例3:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的流程图。

算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。

流程图:
五、教后反思:
§2.2 算法的基本结构及设计
第四课时§2.2.2变量与赋值
一、教学目标:通过对具体实例的解决过程与步骤的分析,体会变量与赋值的含义。

二、教学重难点:1、变量与赋值的含义2、流程图
三、教学方法:探究交流法
四:教学过程
(一)、活动探究
已知两个数 a 和 b , 设计一个算法使a 和 b 位置互换。

算法如下:(1)S = a (2)a = b (3)b = S (4)输出结果a,b (二)、知识探究
变量:在研究问题的过程中可以取不同的值的量.
计算机中变量的表示一般由一个或几个英文字母组成,或字母加数字表示.如a,x,a 1,sum 等.
赋值:把B 的值赋给变量A, 这个过程称为赋值.记作: A=B 其中“=”为赋值符号. 赋值语句的一般形式为:变量名=表达式或变量名=表达式
注意问题:1、赋值符号左边只能是变量名字,而不是表达式, 只能写成b=2,b=a+1,但不能写成: 2=b ,b+1=2
2、在一个赋值语句中,只能给一个变量赋值,不能出现两个或两个以上的“=”号。

3、赋值符号不同于“等号”,赋值符号左边的变量如果原来没有值,在执行完赋值语句后,该变量获得一个值,如果原来已有值,则执行赋值语句后,以赋值符号右边表达式的值替代原来的值。

4、赋值号的左右两边一般不能互换,如:x=5对,5=x 不对 (三)例题探析
例1、写出下列语句描述的算法输出的结果. (1) a=5 b=3 c=(a+b)/2
d=2c
输出d
(3) a=10
b=20 Array c=30
b=a
b=c
c=a
输出a,b,c
例2、设计一种算法,从5个实数中找出最大数,并用流程图表示.
分析:解决这个问题其实很简单,只要取两个数比较取大,再与下一个数比较取大,一直这样下
去,最后的一个结构就是最大数。

解:设这5个数分别为:a1,a2,a3,a4,a5
1比较a1,a2的大小,记大数为b (b的值变为a1,a2中大的数)
2再比较b与a3,记大数为b (b的值变为三数中最大的数)
3再比较b与a4,记大数为b (b的值变为前4数中最大的数)
4再比较b与a5,记大数为b (b的值变为前5数中最大的数)
5输出b,b的值即为所求的最大数
流程图如图所示:你会制作流程图吗?
上面的问题我们可以用赋值结构式
表示:
例3、用赋值语句写出下列算法,并画出流程图摄氏温度C为℃,将它转换成华氏温度F,并输
出。

()
分析:首先要先给C 赋值,再给F 赋值 解:(1)
(2)
(3)输出F
(四)、小结:1、赋值语句的格式、作用、注意事项。

2、要熟练掌握赋值语句的用处。

(五)、作业: P 93 1,2
五、教学反思:
§2.2 算法的基本结构及设计
第五课时 2.2.3循环结构(一)
一、课程标准:通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中(如三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件、循环.
二、教学目标:1.进一步理解程序框图的概念;2.掌握运用程序框图表达循环结构的算法;3.培养学生逻辑思维能力与表达能力.
三、教学重点:运用程序框图表达循环结构的算法。

教学难点:循环体的确定,计数变量与累加变量的理解.
四、教学过程
(一)、回顾练习:引例:设计一个计算1+2+…+100的值的算法.
解:算法1 按照逐一相加的程序进行
第一步:计算1+2,得到3;
第二步:将第一步中的运算结果3与3相加,得到6;
第三步:将第二步中的运算结果6与4相加,得到10;
……
第九十九步:将第九十八步中的运算结果4950与100相加,得到5050.
简化描述: 进一步简化: 第一步:sum=0; 第一步:sum=0,i=1;
第二步:sum=sum+1; 第二步:依次i 从1到100,反复做sum=sum+i ; 第三步:sum=sum+2; 第三步:输出sum. 第四步:sum=sum+3; ……
第一百步:sum=sum+99; 第一百零一步:sum=sum+100 第一百零二步:输出sum.
在本题中如果我们仍然用顺序结构和选择结构来画流程图,就显得比较繁琐,为了使得算法简洁我们今天学习循环往复的逻辑结构――循环结构。

(二)、新课
循环结构:在一些算法中,也经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这种结构称为循环结构.
循环体:反复执行的处理步骤称为循环体.
计数变量:在循环结构中,通常都有一个起到循环计数作用的变量,这个变量的取值一般都含在执行或终止循环体的条件中.
例1、见.课本P95 例7;练习1:画出引例的循环的程序框图(这是一个典型的用循环结构解决求和的问题,可以体会三种结构在流程图中的作用,学会画流程图)
满足条件? 否
循环体
是 满足条件? 是

循环体
例2、见课本P96 例8
点评:需要反复进行的相同操作,如果按照顺序结构来描述,算法显的十分烦琐,不利于阅读,
如果采取循环结构来描述,算法就显得简洁,清楚。

循环结构是一种简化算法叙述的结构。

例3见课本P96 例9
练习2:画出100321⨯⨯⨯⨯ 的程序框图.
小结:画循环结构程序框图前:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的转向位置;④确定循环的终止条件. (四)、课堂小结
1. 理解循环结构的逻辑,主要用在反复做某项工作的问题中;
2. 画循环结构程序框图前:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的转向位置;④确定循环的终止条件。

3. 条件结构与循环结构的区别与联系:区别:条件结构通过判断分支,只是执行一次;循环结构通过条件判断可以反复执行. 联系:循环结构是通过条件结构来实现. (五)、作业:1. 设计一个算法,计算两个非零实数的加、减、乘、除运算的结果(要求输入两个非0实数,输出运算结果),并画出程序框图.
2. 设计一个算法,判断一个数是偶数还是奇数(要求输入一个整数,输出该数的奇偶性),并画出程序框图.
3.课本第99页练习题1,2题 五、教后反思:
§2.2 算法的基本结构及设计
第六课时2.2.4循环结构(二)
一、课程标准:通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中(如三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件、循环.
二、教学目标:1.进一步理解程序框图的概念; 2.掌握运用程序框图表达循环结构的算法;3.培养学生逻辑思维能力与表达能力.
三、教学重点:运用程序框图表达循环结构的算法
教学难点:循环体的确定,计数变量与循环变量的理解.
四、教学过程
(一)、复习回顾
通过上节课的学习,我们了解了循环结构,知道了循环变量,循环体、以及循环的基本框架图,这节课我们学习多变量的循环结构的程序图的设计。

(学生以小组为单位,相互提问,复习上节课的基本概念)
(二)、新课讲解
例1 见课本P99例10。

点拨:例10是输出菲波拉契数列的前50项.这个问题分了两个层次,第一个层次是设置了50个变量,分别表示要输出的50项.然后经过分析,我们发现,这些变量在完成输出操作后,没有保留的必要,因此可以释放掉.所以解法2最终只要设置3个变量,通过反复赋值,就可以输出数列中的各项.
存储空间是计算机的重要资源.在设计算法时,尽量减少变量的个数,也是算法设计的重要原则之一.
例2 见课本P101例11。

点拨:例11用循环结构描述二分法求方程近似解的算法.这个算法和前面循环结构的算法相比,有以下几个特点:1.变量较多;2.循环变量不太容易确定;3.循环体不太容易确认;4.循环次数事先不知道,循环的终止条件有两个.因为这个算法在函数部分已经学习过,在§1也已经学习过.因此,算理本身并不对学生构成难度,关键是如何用循环结构来表述.这个问题的难点在于循环变量的设定和循环体的确认.
(要求学生先以讨论方式对上面2个例题进行学习,根据学生反馈的结果,进行点拨)
(三)、模仿操作
仿照例题完成P103 练习2中 1、2,学生上黑板画出流程图,也可以小组相互讨论学习(四)、归纳小结巩固课题:本节课通过课本例题,对循环结构的流程图的画法再次作一了解掌
握,进一步理解程序框图的概念;掌握运用程序框图表达循环结构的算法。

(五)、作业: P104 8、9
五、教后反思:
§2.2 算法的基本结构及设计
第七课时2.2.5循环结构(三)
一、课程标准:通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程.在具体问题的解决过程中,再次理解程序框图的三种基本逻辑结构:顺序、条件、循环.
二、教学目标1.进一步理解程序框图的概念;能够利用循环结构设计一些较复杂问题的流程图,对一些多变量问题能够找到循环变量及初始值,以及循环体;2.掌握运用程序框图表达循环结构的算法;3.培养学生逻辑思维能力与表达能力.
三、教学重点:设计循环结构的算法
教学难点:循环体的确定,计数变量与累加变量的理解.
四、教学过程
(一)、回顾练习
前面我们学习了算法的三种结构:顺序结构、选择结构,以及上两节课我们所涉及的循环结构。

对于三种结构,我们应掌握它们各自的特点。

例如顺序结构是算法中最基本的一种结构,每一个算法都要用到。

而对于有些算法需要我们对一些条件的判断就要用到选择结构,循环结构指的是根据指定条件决定是否重复执行一条或多条指令的控制结构。

三种结构中循环结构较复杂。

在画循环结构的流程图前应先确定三个要素:循环变量、循环体、循环的终止条件,只有这三要素确定,就可清楚的画出循环结构的流程图。

(要求学生回顾顺序结构,选择结构,循环结构以及循环结构的算法流程图的基本模式)。

(二)、新课探究
学法:以小组为单位讨论学习,完成老师布置的任务
1、先完成课本P104A
学法:小组讨论,教师指导
2、典型例题探析
例1、设计算法,求100个数中的最大数,画出流程图。

解析:引入变量b与i,并用a i(i=1,2,3…,100)表示待比较的数(b为最大值,先令b=a1) 算法中的循环部分为比较b与a i,如果b<a i,则b=a i.流程图如图所示
变量i的初始值为2,终止值为100
循环的终止条件
为i>100
循环的终止条件
例2、设计一个计算1+2+…+100的值的算法,并画出流程图。

算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。

流程图:
(三)、课堂小结
本节课通过习题的练习,再次掌握算法的结构,特别是利用选择结构和循环结构简化算法,注意以下几点:1、顺序结构和选择结构的模式是怎样的?什么时候用? 2、把握循环结构的三个要素:循环变量、循环体、循环终止条件.3、通过算法实例,体会构造性的思想和方法
(四)、 作业:1)、设x 为为一个正整数,规定如下运算:若x 为奇数,则求3x+2;若x 为偶数,则为5x ,写出算法,并画出流程图。

2)、画出求21+22+23+…2100的值的流程图。

1)、解:算法如下。

S1 输入x ;S2 若x 为奇数,则输出A=3x+2;否则输出A=5x ;S3 算法结束。

流程图如下图:。

相关文档
最新文档