本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
北师大版高中数学必修3第二章《算法初步》全部教案
扶风县法门高中 姚连省
第一课时 §2。1.1 算法的基本思想
一、教学目标:
1.知识与技能:(1)通过对解决具体问题过程与步骤的分析,体会算法的思想,了解算法的含义;(2)能够用语言叙述算法;(3)会写出将自然数分解成素因数乘积的算法;(4)会写出求两个自然数的最大公因数的算法和两个自然数的最小公倍数的算法。
2.过程与方法:通过对物品价格的猜测,体会猜测者的基本思路,得到一个一般步骤,而这个步骤就是一个算法。结合具体问题,模仿算法步骤,写出将自然数分解成素因数乘积的算法和求两个自然数的最大公因数的算法,从而体会算法的基本思想,了解算法的含义。
3.情感态度与价值观:通过本节的学习,使学生对算法的思想有一个初步的认识,体会算法的基本思想——程序化思想,在归纳概括中培养学生的逻辑思维能力,从而进一步体会算法与现实世界的密切关系。
二、教学重点与难点:重点:体会算法的思想,了解算法的含义;
难点:能够用语言来叙述算法。
三、学法与教法:学法:学生通过对具体问题的感受,主动思考,互相交流,共同讨论,总结概括,从而更好地完成本节课的教学目标。教法:探究讨论法。
四、教学过程
(一)、创设情景
章头图体现了中国古代数学与现代计算机科学的联系,它们的基础都是“算法”。算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。(古代的计算工具:算筹与算盘. 20世纪最伟大的发明:计算机,计算机是强大的实现各种算法的工具。)
(二)、探索研究
例1:解二元一次方程组:
分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程.
解:第一步:② - ①×2,得: 5y=3; ③
第二步:解③得 ; 第三步:将代入①,得 .
学生探究:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
老师评析:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次方程组的解法。下面写出求方程组的解的算法:
例2:写出求方程组的解的算法.
解:第一步:②×a1 - ①×a2,得: ③ 第二步:解③得 ;第三步:将代入①,得
算法概念:
在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
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、有序列插入排序
问题提出:新来的同学小黄升高1.75cm,在班上是中等身高,因为做操的需要,体育老师要将他插到队中,你认为老师应该怎样做?
象这样一种在已经按一定顺序排好的系列(有系列)中插入,我们就叫它有序列插入排序
有序列插入排序:在已经按照某一规则排好的一系列数中,再插进一个数,成为新的一序列数,且仍按照原来的规则排列.
要将8插入到{1,3,5,7,9,11,13}中,我们怎样考虑?
确定8在原系列中的位置,使8小于或等于原系列中右边的数据,大于或等于左边的数据,将这个位置空出来,将数据8插进去
1 3 5 7 8 9 11 13
练习:1、用直接插入法把23插入有序列5 8 11 24 33 38 45 48 50 60中,则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、从数组的序号入
序号 1 2 3 4 5
数组 38 39 51 57 66
2、创建新的序号,比较数的大小移动数
旧序号 1 2 3 4 5
旧数组 38 39 51 57 66
新序号 1 2 3 4 5 6
新数组 38 39 51
流程图:
问题二:对一个有序列{ R[1],R[2],…,R[n] },要将新数据A插入到有序列中,形成新的有序列, 应该怎么做呢?根据分析原理画出流程
思考:1、还有其它插入A的方法吗?画出流程2、如何以有序排列的算法为平台进行无序排 { 49,38,65,97,76,13,27,49}
3、有序列插入排序算法的另一种方法折半插入排序法。请同学们参看P84.下段
问题思考:对于一组无序的数据列{49,38,65,97,76,13,27,49}如何完 成排序工作呢 请同学们参看P85
(1)折半插入排序:如果R[1..i-1] 是一个按关键字有序的有序序列,则可以利用折半查找实现“在R[1..i-1]中查找R[i]的插入位置”,如此实现的插入排序为折半插入排序。
(2)、折半插入排序性能分析:1)折半插入排序所需附加存储空间和直接插入排序相同,从时间上来看,折半插入排序减少了关键字的比较次数,但是移动次数不变。2)折半插入排序的时间复杂度为o(n2)。3)折半插入排序是一个稳定的排序方法。
(3)、折半插入排序:
(三)、小结:本次课主要介绍了:1.有关排序的基础知识(1).定义(2).稳定性和存储方式(3).排序算法的评价
2.直接插入排序
3、折半插入排序 (1).基本思想 (2).实例模拟(3).算法描述(4).算法的复杂度。
(四)、作业布置:课本习题2-1A组8、9
五、教学反思:
§2。2 算法的基本结构及设计
第三课时 §2..2。1 顺序结构与选择结构
一、教学目标:1.知识与技能:(1)理解流程图的顺序结构和选择结构。(2)能用文字语言表示算法,并能将算法用顺序结构和选择结构表示简单的流程图。2.过程与方法:学生通过模仿、操作、探索、经历设计流程图表达解决问题的过程,理解流程图的结构。3情感、态度与价值观:学生通过动手作图,.用自然语言表示算法,用图表示算法。进一步体会算法的基本思想——程序化思想,在归纳概括中培养学生的逻辑思维能力。
二、教学重点、难点:重点:算法的顺序结构与选择结构。难点:用含有选择结构的流程图表示算法。
三、学法与教法 :学法:学生通过动手作图,.用自然语言表示算法,用图表示算法,体会到用流程图表示算法,简洁、清晰、直观、便于检查,经历设计流程图表达解决问题的过程。进而学习顺序结构和选择结构表示简单的流程图。教法:探究讨论法。
四、教学过程
(一)、问题引入 揭示课题
例1 尺规作图,确定线段的一个 5等分点。
要求:同桌一人作图,一人写算法,并请学生说出答案。
提问:用文字语言写出算法有何感受?
引导学生体验到:显得冗长,不方便、不简洁。
教师说明:为了使算法的表述简洁、清晰、直观、便于检查,
我们今天学习用一些通用图型符号构成一张图
即流程图表示算法。
本节要学习的是顺序结构与选择结构。
右图即是同流程图表示的算法。
(二)、观察类比 理解课题
1、 投影介绍流程图的符号、名称及功能说明。
符号 符号名称 功能说明终端框
算法开始与结束处理框
算法的各种处理操作判断框
算法的各种转移输入输出框 输入输出操作
指向线 指向另一操作
(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
是 x≥0? 否
打印x -打印x
结束
从图中可以看到由判断框分出两个分支,构成一个选择性结构,其中选择的标准是“x≥0”,若符合这个条件,则按照“是”分支继续往下执行;若不符合这个条件,则按照“否”分支继续往下执行,这样的话,打印出的结果总是x 的绝对值。
在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:(1)使用标准的图形符号。(2)框图一般按从上到下、从左到右的方向画。(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的惟一符号。(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。(5)在图形符号内描述的语言要非常简练清楚。
2、讲授顺序结构及选择结构的概念及流程图
(1)顺序结构依照步骤依次执行的一个算法流程图: (2)选择结构对条件进行判断来决定后面步骤的结构流程图:
顺序结构:由若干个依次执行的处理步骤组成
的逻辑结构。这是任何一个程序都离不开的
基本结构。
(三)、理解应用
例1:已知x=4,y=2,画出计算w=3x+4y的值的流程图。
解:程序框如下图所示:
开始
输入4,2 4和2分别是x和y的值
w=3×4+4×2
输出w
结束
小结:此图的输入框旁边加了一个注释框 ,它的作用是对框中的数据或内容进行说明,它可以出现在任何位置。
例2:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的流程图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
流程图:
例3:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的流程图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
流程图:
a+b>c , a+c>b, b+c>a是 否
否同时成立?
是
(四)归纳小结,巩固课题
1.顺序结构和选择结构的模式是怎样的?2.怎样用流程图表示算法。
(五)练习:P90 2
(六)作业:P90 1
五、教后反思:
§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,a1,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=
输出d
(3) a=10
b=20
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为23.5℃,将它转换成华氏温度F,并输出。( )
分析:首先要先给C赋值,再给F赋值
解:(1)C=23.5
(2) (3)输出F
流程图如右图:
(四)、小结:1、赋值语句的格式、作用、注意事项。2、要熟练掌握赋值语句的用处。
(五)、作业: P93 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:画出的程序框图.
小结:画循环结构程序框图前:①确定循环变量和初始条件;②确定算法中反复执行的部分,即循环体;③确定循环的转向位置;④确定循环的终止条件.
(四)、课堂小结
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组8.9及B组3.4题
学法:小组讨论,教师指导
2、典型例题探析
例1、设计算法,求100个数中的最大数,画出流程图。
解析:引入变量 b与i,并用ai(i=1,2,3…,100)表示待比较的数(b为最大值,先令b=a1)
算法中的循环部分为比较b与ai,如果b
变量i的初始值为2,终止值为100
循环的终止条件
为i>100
例2、设计一个计算1+2+…+100的值的算法,并画出流程图。
算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。
流程图:
i≤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 算法结束。
流程图如下图:
i≤30 是
否
2)、解:流程图如下图:
i≥100 否
是
(五)、课外练习:继续完成课堂上的未完成的习题,预习下节条件语句。
五、教后反思:
§2.4 几种基本语句
第八课时 §2.4.1条件语句
一、教学目标:
1、知识与技能:(1)正确理解条件语句的概念,并掌握条件语句的结构。(2)会应用条件语句编写程序,能运用条件语句表达解决具体问题的过程。
2、过程与方法:经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力与表达能力,进一步体会算法思想。
3、情感态度与价值观:了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到条件语句在解决大量问题中起重要作用。通过本课内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
二、教学重点:条件语句的表示方法、结构和用法
教学难点:将具体问题的流程图转化为程序语句的过程,条件语句的逻辑关系
三、教学方法:探究交流法。
四、教学过程
(一)、新课导入:
1. 提问:学习了哪些算法的表示形式?(自然语言或流程图描述 )
算法中的三种基本的逻辑结构?(顺序结构、条件结构和循环结构)
2. 导入:我们用自然语言或流程图描述的算法,计算机是无法“看得懂,听得见”的. 因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序. 程序设计语言有很多种. 如BASIC,Foxbase,C语言,C++,J++,VB,VC,JB等.
各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句条件语句和循环语句.今天,我们一起用以BASIC语言为例主要介绍条件语句和循环语句.
(二)、条件语句
1、(学法:学生自学P106例1)
教师归纳:1、简单条件语句的一般格式
(1)IF—THEN—ELSE形式
IF 条件 THEN
语句1
ELSE
语句2
END IF
说明:①当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,否则执行ELSE后的语句.②书写时一个条件语句中的IF与END IF要对齐.
(2)IF—THEN形式
IF 条件 THEN
语句
END IF
说明:当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,否则直接结束该条件语句.
2、知识应用 练习:P108第1题
3、程序中为何要用到条件语句?条件语句一般用在什么情况下?
点评:一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌。当判断的后面接着判断,就要用到复合IF语句来描述。
4、学生自学讨论P107 例2
教师归纳:
复合条件语句的一般格式
(1)IF—THEN—ELSE形式
IF 条件1 THEN
语句1
ELSE
IF 条件2 THEN
语句2
ELSE
语句3
END IF
END IF
5、学生以小组为单位完成思考交流和P109 练习2
(三)、课堂小结
1、理解条件语句的两种表达形式以及何时用格式1、何时用格式2.
2、注意多个条件的语句表达方法:如(a+b>c) AND (b+c>a) AND (a+c>b).
3、条件语句的嵌套,注意END IF是和最接近的匹配,要一层套一层,不能交叉.
4、编写一个程序的步骤:首先用自然语言描述问题的一个算法,然后把自然语言转化为流程图,最后把流程图转化为程序语句.
(四)、作业
1.课本:习题2——4 A组第1,2题
2. 某市电信部门规定:拨打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元;如果通话 超过3分钟,则超过部分以0.1元/分钟收取通话费.问:设计一个计算通话费用的算法,并且画出流程图以及编出程序.
3. 编写一个程序,任意输入一个整数,判断它是否是5的倍数.
4. 基本工资大于或等于600元,增加工资10%;若小于600元大于等于400元,则增加工资15%;若小于400元,则增加工资20%. 请编一个程序,根据用户输入的基本工资,计算出增加后的工资.
五、教后反思:
§2.4 几种基本语句
第九课时 §2.4.2循环语句
一、教学目标:1、知识与技能:(1)正确理解循环语句的概念,并掌握循环语句的结构。(2)会应用循环语句编写程序,能运用循环语句表达解决具体问题的过程。
2、过程与方法:经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力与表达能力,进一步体会算法思想。
3、情感态度与价值观:了解循环语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到条件语句在解决大量问题中起重要作用。通过本课内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
二、教学重点:两种循环语句的表示方法、结构和用法,用循环语句表示算法.
教学难点:理解循环语句的表示方法、结构和用法,会编写程序中的循环语句.
三、教学方法:探究交流法。
四、教学过程
(一)、问题情境
1.问题1:设计计算的一个算法,并画出流程图.
(二)、学生活动
解决问题1的算法是:
对于以上算法过程,我们可以用循环语句来实现.
(三)、建构数学
1.循环语句:循环语句一般有种:“For循环”、“While循环”和“Do循环”(由于该种循环变化较多,教材中暂不介绍).
(1)“For循环”是在循环次数已知时使用的循环,
其一般形式为:
例如:问题1中算法可用“For循环”语句表示为:
Print
End
说明:①上面“For”和“End For”之间缩进的步骤称为循环体;
②如果省略“Step 2”,默认的“步长”为1,即循环时,的值每次增加1(步长也可以为负,例如,以上“For循环”第1行可写成:For I From 99 To 1 Step -2);
③“For循环”是直到型循环结构,即先执行后判断.
(2)“While循环”的一般形式为:
其中A为判断执行循环的条件.
例如:问题1中的算法可“While循环”语句表示为:
Print
End
说明:①上面“While”和“End While”之间缩进的步骤称为循环体;②“While循环”是当型循环结构,其特点是“前测试”,即先判断,后执行.若初始条件不成立,则一次也不执行循环体中的内容;③任何一种需要重复处理的问题都可以用这种前测试循环来实现.
(四)、数学运用
1.例题:例1.编写程序,计算自然数1+2+3+……+99+100的和。
解:用“For循环”表示如下: 用“While循环”表示如下:
例3.抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是不可能的,但是假如硬币质量均匀,那么当抛掷次数很多时,出现正面的频率应接近50%.试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.
分析:抛掷硬币的过程实际上是一个不断重复地做同一件事情的过程,利用循环语句,我们很容易在计算机上模拟这一过程.
在程序设计中,有一个随机函数“Rnd”,它能产生0与1之间的随机数.这样,我们可用大于的随机数表示出现正面,不大于的随机数表示出现反面.
解:本题算法的伪代码如下:
Read
For I From 1 To
If Rnd> Then
End For
Print 出现正面的频率为.
End
2.练习:试用算法语句表示:寻找满足的最小整数的算法.
解:本例中循环的次数不定,因此可用“While循环”语句,具体描述如下:
(五)、回顾小结:1.循环语句的概念,并掌握其结构;2.“For循环”、“While循环”在用法上的区别与联系.本节课主要学习了循环语句的结构、特点、作用以及用法,并懂得利用解决一些简单问题。条件语句使程序执行产生的分支,根据不同的条件执行不同的路线,使复杂问题简单化。有些复杂问题可用两层甚至多层循环解决。注意内外层的衔接,可以从循环体内转到循环体外,但不允许从循环体外转入循环体内。
条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。
循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。
(六)、课外作业:课本习题2——4A组第6,7,9题
五、教后反思:
第十课时 算法初步复习课
一、教学目标
(a)知识与技能:1.明确算法的含义,熟悉算法的三种基本结构:顺序、条件和循环,以及基本的算法语句。2.能熟练运用算法知识解决问题。
(b)过程与方法:在复习旧知识的过程中把知识系统化,通过模仿、操作、探索,经历设计程序框图表达解决问题的过程。在具体问题的解决过程中进一步理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
c)情态与价值:算法内容反映了时代的特点,同时也是中国数学课程内容的新特色。中国古代数学以算法为主要特征,取得了举世公认的伟大成就。现代信息技术的发展使算法重新焕发了前所未有的生机和活力,算法进入中学数学课程,既反映了时代的要求,也是中国古代数学思想在一个新的层次上的复兴,也就成为了中国数学课程的一个新的特色。
二、教学重难点:重点:算法的基本知识与算法对应的程序框图的设计
难点:与算法对应的程序框图的设计及算法程序的编写
三、教学方法:利用实例让学生体会基本的算法思想,提高逻辑思维能力,对比信息技术课程中的程序语言的学习和程序设计,了解数学算法与信息技术上的区别。通过案例的运用,引导学生体会算法的核心是一般意义上的解决问题策略的具体化。面临一个问题时,在分析、思考后获得了解决它的基本思路(解题策略),将这种思路具体化、条理化,用适当的方式表达出来(画出程序框图,转化为程序语句)。
四、教学过程
(一)、知识梳理
1、四种基本的程序框
2、三种基本逻辑结构
顺序结构 条件结构 循环结构
3、基本算法语句
(1)输入语句
单个变量
多个变量
(2)输出语句
(3)赋值语句
(4)条件语句
IF-THEN-ELSE格式
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
IF-THEN格式
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
(5)循环语句
①WHILE语句
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
②UNTIL语句
其对应的程序结构框图为:(如上右图)
(二)、典型例题
例1 写一个算法程序,计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数)
解:INPUT “n=”;n
i=1
sum=0
WHILE i<=n
sum=sum+i
i=i+1
WEND
PRINT sum
END
思考:在上述程序语句中我们使用了WHILE格式的循环语句,能不能使用UNTIL循环?
例2 设计一个程序框图对数字3,1,6,9,8进行排序(利用冒泡排序法)
思考:上述程序框图中哪些是顺序结构?哪些是条件结构?哪些是循环结构?
例3 把十进制数53转化为二进制数.
解:53=1×25+1×24+0×23+1×22+0×21+1×20
=110101(2)
(三)、练习:复习题二 A(3) (4)
(四)、作业:复习题二 A(5)(6)
五、教后反思:w.w.w.k.s.5.u.c.o.m
www.
答案4
因为52R[6]:=R[5]
因为52因为52>R[3]
R[4]:=52
空5号位置
R[5]:=R[4]
空4号位置
将52插入
4号位置
high
折半插入排序
待排序元素的插入位置
mid
mid
i
0 1 2 3 4 5 6 7 8 9 10
58
14
36
49
52
80
58
61
23
97
75
L.r
low
low
low
开始
从A出发作一条射线
在射线上取点C
得单位线段AC
作线段CE=EF=FG=GD=AC
连接DB
过点C作BD的平行线交AB于M,
即为线段AB的5等分点
结束
连接程序框图的两个部分
连接点
连接流程框,指明方向
流程线
用于判断,有两个出口
判断框
赋值和计算
处理框(执行框)
表示输入和输出的信息
输入、输出框
表示一个算法的起始和结束
终端框(起止框)
功能
名称
图形符号
选择结构: 在一个算法中,经常
会遇到一些条件的判断,算法的流程
根据条件是否成立有不同的流向,这
种算法结构称为条件结构。
A
B
真
假
条件
步骤甲
步骤乙
开始
p=(2+3+4)/2
s=√p(p-2)(p-3)(p-4)
输出s
结束
开始
输入a,b,c
存在这样的三角形
不存在这样的三角形
结束
a
b
a
S
(2) a=1
b=2
c=a-b
b=a+c-b
输出a,b,c
(4) a=1
b=a+1
b=b+1
b=b+5
输出b
流程图如图所示:
你会制作流程图吗?
开始
输入a1,a2,a3,a4,a5
比较a1,a2,记大数为b
比较b,a3,记大数为b
比较b,a4,记大数为b
比较b,a5,记大数为b
输出b
结束
上面的问题我们可以用赋值结构式表示:
开始
输入a1,a2,a3,a4,a5
b=a1
否
是
b=a4
bb否
是
b=a2
b否
是
b=a3
b否
是
b=a5
输出b
结束
开始
C=23.5
输出F
结束
满足条件?
是
否
循环体
满足条件?
否
循环体
是
b= ai
b< ai
b< ai
是
否
开始
输入a1,a2, ,a100
i=2
b=a1
赋予变量初始值
b是
b=ai
否
循环体
i=i+1
i>100
循环变量的后继
否
循环的终止条件
输出b
是
结束
开始
i=1
Sum=0
i=i+1
Sum=sum+i
输出sum
结束
开始
i=1
p=0
i=i+1
p=pxi
输出p
结束
开始
i=1
p=0
i=i+1
p=p+2i
输出p
结束
语句
满足条件?
是
否
结束
开始
流程图:
S1 S←1
S2 I←3
S3 S←S×I
S4 I←I+2
S5 若I≤99,则返回S3
S6 输出S
For I from“初值”to“终值”step“步长”
…
End for
For I From 1 To 99 Step 2
End For
While A
…
End while
While I≤99
End While
While I≤100
End While
Print
End
For I From 1 To 100 Step 1
End For
Print
End
While S≤10000
End While
Print
End
INPUT “提示内容”;变量
INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
PRINT “提示内容”;表达式
变量=表达式
满足条件?
语句1
语句2
是
否
IF 条件 THEN
语句1
ELSE
语句2
END IF
满足条件?
语句
是
否
IF 条件 THEN
语句
END IF
满足条件?
循环体
是
否
WHILE 条件
循环体
WEND
满足条件?
循环体
是
否
DO
循环体
LOOP UNTIL 条件
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网