前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇算法初步范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
《算法初步》一章的教学终于在高二开学后三周内结束了。这是高中数学必修模块中唯一新增章节,对于进行这一章节教学的数学教师而言,实在是感触良多。因为不但没有教过,自己也未学过。可以说对于这一章的教学,教师是与学生同摸索共成长。笔者就以下几个方面进行这一章的教学反思:
一、渗透算法意识,展现知识体系
对数学概念的认识,既要呈现知识,又要使学生体会人类认识数学经历的一切,因此很多时候教材中只能看到漂亮的结论和严格的证明。由此产生的认识困难问题必须通过教师的教学加以解决。这就需要教师首先了解清楚所教的内容的发生发展过程,在教学过程中,有意识有目的地进行渗透和展现。
正如本章引言中所述:“算法并不是一个全新的概念。”算法是学生既陌生又熟悉的内容。因为新课程的关系,在高中数学学习阶段会让教师学生都不断地有“归零”的机会,经验有时是垫脚石,有时又是绊脚石,教科书上是用回顾一元二次方程组x-2y=-12x+y=1的求解过程,归纳出步骤来引入算法的。而以学生的固有思维,往往只关注解法,会对书上明确而有限的共五步步骤解决x-2y=-12x+y=1觉得费解。在他们看来,如此简单的题目,一两步就够了,为什么要分五步进行?
由于算法思维侧重于思维的构造性实践,注重于获得结果并将取得的结果构造出来,即注重归纳思维,算法可以使抽象的数学知识转化为一种可操作的教学过程,通过自主探索、发现和再创造,经历反思性循环、体验和感受数学发现的过程,从非形式化的、算法的、直觉相互作用与矛盾中形成数学,注重对数学本质的认识,体验创造性工作的历程。算法有利于发展数学应用意识和创新意识,有利于对现实生活中蕴涵的一些数学模式做出理性思考和判断。因此,对算法思想的初步认识,已经成为现代人所具备的一种数学素养。有意识地培养学生的算法思想,帮助他们构建算法意识,从“算法的视角”看待和解决问题,必将有利于提升学生的创新性思维水平。
二、体现算法应用,展示框图意义
程序框图能够更加直观、清楚地描述算法步骤。教科书首先展示了一个较为复杂的、完整的程序框图,然后分解出这个程序框图中的三种基本的逻辑结构,接着分别用简单的例子对这三种结构作详细的阐述。三种基本逻辑结构与程序框图是算法的教学重点,但是程序框图感觉上有点“不上不下”的状况。因为程序框图既不同于算法的自然语言描述那样浅显易懂,又不同于程序那样能被计算机所识别,那么程序框图为什么是算法的教学重点?依据是什么?重要地位如何凸显?
随着教学的展开,对于算法的基本思想,学生都已有所了解,有所掌握。但在做练习题时困难也开始显现。因为算法这一块内容是全新的,刚开始接触时,了解的少,未知的也少。随着对算法了解的深入,未知的东西也会越来越多。例如:作业本上有这样一道题:
x=1
y=1
WHILE x<=4
z=0
WHILE y<=x+2
z=z+1
y=y+1
WEND
PRINT z
x=x+1
y=1
WEND
END
问程序运行后输出的结果。
学生解决这道题时觉得眼花缭乱。连本身已经对自己挺自信的学生都觉得有些头疼,因为从程序上看来,确实有些千头万绪,找不到切入点,但如果将其改写成算法程序框图,马上可以做到“其意自现”。其实算法教学越进行到后段,越有体会和感触――程序框图真是十分重要十分有效。算法程序框图的确能起到桥梁的作用,它将自然浅显的算法自然语言描述与计算机语言紧密地结合在一起,它既有算法自然语言的直白也有算法程序的理智和条理。把握住了算法程序框图,实际上也就是把握住了算法的精髓。
因此在教学中教师要强调算法程序框图,要求学生不但能将程序框图转化为算法程序,还能将算法程序转化为程序框图。事实上,每一种程序设计语言都是为特殊的目标而创建的,都是将算法转换为计算机程序的工具,因此它们之间的差别只是一件小事,算法才是关键所在。在数学课程中,教师应该尽力让学生在简单的计算机语言环境中学习算法的基本知识,而把有效设计、实现、调试和测试程序的任务留待信息技术等课程来解决。就此方面来说,在教学中应把程序框图作为描述算法的主要工具。
三、重视算法本质,引导学生思考
“在算法教学中,学生将学习算法的初步知识,并通过对具体算法案例的分析,体验算法在解决问题中的重要作用,培养算法基本思想,提高逻辑思维能力,发展有条理的思考与数学表达的能力”。
输出S
结束
毫无疑问,正确。可是为什么教科书上用的是累加的“笨”办法,而对于这种看起来简捷又很好的办法却提都不提?
事实上,对于从1到100的100个数相加的问题,依次累加存在着基本逻辑结构:①顺序结构:第一步,第二步,……,一直做至第一百步,在这样的操作顺序下可以得出求和的结果。②循环结构:每一行都在“重复”同一结构A+i=S的运算。③条件结构:“重复”操作至i=100停止。
所以,教科书上所提出的两种程序框图都是在关注结构的背景之下产生的。算法是一种解决问题的方法,算法与解法有联系也有区别,算法关注问题的基本逻辑结构。同一个问题虽然会有不同的算法可以解决,但设计算法通常针对解决“某一类问题”,也就是算法所追求的普适性。
由此可见,在算法教学中,一条最基本的原则就是在各种教学活动中,努力创造各种适用于解决各种问题的有效算法,不断提升学生的算法思维层次和水平。
四、寻求算法原型,体会古典算法
通过对解决具体问题过程与步骤的分析,学生也能体会到算法的思想,理解算法的含义;通过模仿、操作、探索,把算法转化为计算机可执行程序,应用计算机解决相应的问题,从而让学生体会到虽然有时算法过程很复杂或计算很繁杂,但在计算机上运行,很快就可以获得解决问题的结果,并且一种算法可以解决一类的问题。
从古到今,“算法”都在扮演着重要的时代角色。中国古代数学在世界数学史上一度居于领先地位,古典算法注重实际问题的解决,以算法为中心,寓理于算,其中蕴涵了丰富的算法思想。比如说秦九韶算法。
如果说对秦九韶算法的学习是“认识”,那么,让学生对秦九韶算法的认识过程及运用则是“实践”,实践―认识―再实践―再认识,这是认识发展的必然规律。因此,教师要精心设计训练的平台,将秦九韶算法的思想与学生原有知识建立起联系,让学生感受到中国古代数学对世界数学发展的贡献。教育心理学表明,学习的疑难太多,会影响到学生的信心。对于一些新的知识,其与学生已有的知识没有内在的逻辑联系,必须提前给予解释,对于如何表述要给予示范。如程序框图能使学生的思维更规范、更科学。对秦九韶算法的认识、理解,不仅来源于会写算法,会将算法转化成程序框图,更来源于用程序框图写出计算机识别的程序。由以上程序框图对应写出程序:
评析:根据程序框图及前面提到的循环结构、递推公式,引导学生选对循环语句写出程序,问题就会迎刃而解。
再如,中国古算中用“更相减损术求等”的方法,其原理是在运算过程中,实施“更相减损”的机械化程序,使整数逐步减少,但“等”却始终不变,而且总可以在有限步骤内将其求出,故它是一种构造性的思维方法。有限构造是算法的核心,构造性解决问题是数学解题的重要方法,也是数学哲学的重要流派。因此,算法思维的学习有助于学生理解构造性数学。
实践证明,在算法教学过程中,应尽可能选取最简单、最典型的算法模型作为载体。这是因为,一方面,算法教学目标就是介绍算法的基本思想和初步知识,另一方面,算法本身来源于具体问题。古往今来,一直如此,所以空讲理论学生难以真正理解,而从简单典型、学生熟悉的算法模型中挖掘、提炼出来的思想方法,更容易被学生接受。
把算法转化为计算机可执行程序,应用计算机解决相应的问题,可使学生体会到,虽然有时算法过程很复杂或计算很繁杂,但在计算机上运行,很快就可以获得解决问题的结果,并且一种算法可以解决一类的问题,让人从一些机械重复、繁杂的工作中解放出来。同时通过电脑操作,让学生自我去探索,及时验证自己的算法是否可行,及时获得成就感,激发其学习兴趣,也符合新课程的理念。我们拥有丰富的资源,只要认真去探索、研究、实践,我们就可以大有作为,这也是数学教师的重要使命。
参考文献:
[1]普通高中课程标准实验教科书数学必修3.人民教育出版社,2007.2.
[2]普通高中课程标准实验教科书数学必修3教师教学用书.人民教育出版社,2007.2.
[3]李亚玲.算法及其学习意义[J].数学通报,2004.2.
[4]李建华.算法及其教育价值[J].数学教育学报,2004.3.
一、高考的命题特点与形式
在江苏高考中对算法初步的考查一般以填空题的形式出现,考查的热点是算法的流程图、基本的算法语句等内容.在高考中算法初步知识常与函数、数列、三角、概率、实际问题等知识点进行整合,是高考试题命制的新”靓”点.
二、高考命题的趋向和预测
1.考察算法流程图的功能
此类题目有两种题型:一是给出流程图考察其功能;二是考查流程图输出的结果.主要考查学生阅读流程图的能力,对算法理解的程度.
例1 (2007·山东,理10文10)阅读下面的程序框图,若输入的n是100,则输出的变量S和T的值依次是( ).
A.2500,2500;_____________B.2550,2550;
C.2500,2550; D.2550,2500.
答案 D
解析 对整个系统来说,“n
对S而言,n从100开始,可运算到n=2(n≥2),共进行了50次运算.
对T而言,n从99开始,可运算到n=1,共进行了50次运算.其运算为:
第1次循环后,S=100,T=99;
第2次循环后,S=100+98,T=99+97;
……
第50次循环后,S=100+98+96+…+2=2550,
T=99+97+95+…+1=2500.故选D.
点评:本题主要考查算法程序框图、数列的简单求和等基础知识,以及数据处理能力、语言转换能力和算法思想.此类题型的易错点是:如果对控制变量没有“控制”好,将会导致运算次数多或少.
例2 (2009江苏卷)图是一个算法的流程图,最后输出的_____________.
答案 22
解析 根据流程图可得
由以上分析,输出结果是“W=22”.
点评:本题主要考查了对流程图的认识,题目中含有三个变量,其中T是计数变量,它的初始值是1,步长是2,S和W是求和(差)变量,它们随T变化而变化,当满足条件“S≥10”时输出结果.
2.完善算法流程图中的条件或内容
在不完整的算法流程图中,填补一些条件或内容,是高考考查算法知识的另一种重要题型.此类试题要求学生首先要能读懂所给算法想要解决什么问题,在这个基础之上再补全流程图中的条件或内容以达到解决问题的目的.
例3 图(1)是某县参加2012年高考学生身高的条形图,从左到右的各条形图表示学生人数依次记为A1,A2,…,A10(如A2表示身高(单位:cm)在[150,155) 内的人数.图(2)是统计图(1)中身高在一定范围内学生人数的一个算法流程图.现要统计身高在160~180cm(含160cm,不含180cm)的学生人数,那么在流程图中的判断框内应填写的条件是 .
答案 i
解析 这是一道算法与统计相结合的题目,要求我们通过阅读、理解题目意思,理解程序框图的功能,从而完成算法.要统计的是身高在160~180cm之间的学生的人数,即是要计算A4,A5,A6,A7的和,流程图使用了当型循环结构,判断框内需填写循环的终止条件,下标i为循环变量,4为i的初始值,7为i的终止值,执行4次循环即可得到所需的结果,故流程图中空白框应是i
点评:本题主要考查条形图和算法的程序框图.由条形图确定算式是基础,弄清算法流程图的逻辑结构是解决本题的关键.
3.算法初步知识的综合应用
算法初步知识的综合应用主要是借助流程图与函数、数列、统计等知识进行融合,这类试题是高考命题的热点,应引起足够的重视.
例4 (2010江苏卷7)图是一个算法的流程图,则输出的S值是_____________.
答案 63
解析 流程图求解过程如下:
点评:本题考查对流程图的理解,属于循环结构中的直到型循环,在执行了一次循环体之后,对控制循环结构的条件进行判断,当条件不满足时就执行循环体,满足则停止.本题融算法、数列求和于一体,虽属常规题,但由于背景不同,有力地考查了学生对数列、流程图等知识的掌握情况以及分析问题和解决问题的能力.
例5 (2012江苏高考)图是一个算法流程图,则输出的k的值是_____________.
答案 5
解析 由k2-5k+4>0,得k>4或k
点评:本题将算法与不等式有机地结合在一起,解决问题的关键是理解流程图的含义,当输入的数据满足不等式k2-5k+4>0时,输出结果“k=5”.
例6 根据图(6)所示的程序框图,将输出的x,y的值依次分别记为 x1,x2…xn,…,x2008;y1,y2…yn,…,y2008.
(1)求数列{xn}的通项公式xn;
(2)写出y1,y2,y3,y4,并由此猜想数列{yn}的通项公式yn,证明你的结论;
(3)求zn=x1y1+x2y2+…+xnyn(x∈N,n≤2008).
答案 (1) xn=2n-1(n∈N,n≤2008);
(2)y1=2,y2=8,y3=26,y4=80;
yn=3n-1(n∈N,n≤2008);
(3)zn=(n-1)3n+1+3-n2 (n∈N,n≤2008).
解析 (1)由题意和框图知,
数列{xn}中,x1=1,xn+1=xn+2,
故xn=2n-1(n∈N,n≤2008);
(2)y1=2,y2=8,y3=26,y4=80;
猜想yn=3n-1(n∈N*,n≤2008),
证明:由框图知,数列{yn}中,yn+1=3yn+2,
即yn+1+1=3(yn+1), 又y1+1=3,
故yn+1+1yn+1=3,
所以数列{yn+1}是以首项为3,公比为3的等比数列,
故yn+1=3n,
即yn=3n-1 (n∈N,n≤2008).
(3)zn=x1y1+x2y2+…+xnyn=1×(3-1)+3×(32-1)+…+(2n-1)(3n-1)=1×3+3×32+…(2n-1)×3n-[1+3+…+(2n-1)]
设sn=1×3+3×32+…+(2n-1)×3n ①,
则3sn=1×32+3×33+…+(2n-1)×3n+1 ②,
①-②得
-2sn=3+2×32+…+2×3n-(2n-1)×3n+1
=2(3+32+…+3n)-3-(2n-1)×3n+1
=23(1-3n)1-3-3-(2n-1)×3n+1
=2(1-n)3n+1-6,
故sn=(n-1)3n+1+3,
而1+3+5+…(2n-1)=n2,
故zn=(n-1)3n+1+3-n2 (n∈N,n≤2008).
点评:本题主要考查学生对流程图的识别能力以及数列中的归纳、猜想、论证等能力,同时考查通过构造数列求通项公式、错位相减法求和等重要方法.
三、算法初步的复习建议
1.把握算法初步的重点
算法的重点是学习程序框图的基本逻辑结构和语句,应着重体会算法思想,提高逻辑思维能力,在学习中要选择数学中具有重要价值的算法范例,不要在算法的概念、算法的设计及一些难且偏的题目上花时间,应加强基础题训练.
2.始终抓住算法流程图的关键——变量
算法流程图要求我们掌握的无非是两个方面:一是会根据流程图概括出算法,明白所要解决的问题及解题过程;二是给出问题设计出算法解决问题,只要掌握了变量在程序中的作用,就掌握了算法的精华.
3.研究并改编高考算法试题,探求高考命题规律
关键词: 算法 算法教学 高中数学教学
新课程改革后,算法作为重要内容被列入高中数学的必修课程中。对于算法,大部分数学教师自从大学毕业后就没有直接接触过,而且这一全新的内容与计算机语言有着密切的联系,是计算机科学的基础。所以它既给一些教师造成了巨大的压力,成为教师教学的难点,又激发了一些教师极大的兴趣,为教师发挥创造力和施展个人特长提供了很好的机会。如何进行算法教学,教学中应注意哪些方面?这是广大数学教师目前急需解决的问题。本文试结合我的教学实践和体会作些探讨。
一、深刻理解引入算法初步的必要性。
算法是计算机科学的核心。随着社会和科学技术的发展与进步,计算机和网络改变了我们的生活方式,成了人们生活中不可缺少的重要工具。计算机工作靠的是程序,而程序的灵魂就是算法。它将人类的思维能力形式化为计算机可以执行的步骤——程序。因此,算法是计算机程序的基础。没有算法,计算机的存在也就失去了意义。
算法具有广泛的教育价值。学习算法有利于培养学生的逻辑思维能力;有利于培养学生的理性精神和实践能力;有利于学生理解构造性数学。中国古代数学以算法为主要特征,形成以构造性与机械化为特征的算法体系,产生了一些特殊的算法流传至今,并在现代得到了广泛的应用。学习算法对于继承和发展我国传统数学,弘扬我国文化,培养学生爱祖国、爱民族的优良品德,都有着十分重要的意义。
二、对数学课程中算法的切入点要把握准确。
算法和计算机语言有着密切的联系。算法教学是程序语言教学的基础,程序语言教学是算法教学必要的延续,两者相辅相成。如果切入点把握不准确,一些教师就有可能把算法教学讲成计算机语言课。实际上,在数学课程中,算法的教学更应该关注的是算法对问题抽象过程和算法的构建过程。在这个过程中,是学生着重理解算法的“算理”,同时体会算法的程序性、明确性、有效性和有限性等特点,学习设计和描述算法以解决实际问题和与人交流,发展有条理的思维和表达能力,提高逻辑判断能力。
三、在算法教学过程中,选取的例子要合理、恰当。
1.应尽可能选取最简单、最典型的算法模型作为载体进行算法教学。
因为算法本身就是与具体问题结合在一起的。空讲理论只能导致学生不能真正理解算法,不会设计具体问题的算法。而从简单、典型、学生熟悉的算法模型中挖掘提炼出来的思想和方法更易被学生接受。例如,在进行条件结构的教学时,可以选取比较基础且具有代表意义的分段函数的例子。这样既能帮助学生理解条件结构的基本思想,又能帮助学生更好地掌握分段函数。
例1:根据右面的流程图,说明该算法解决什么问题?写出相应的算法。
解析:该流程图解决的问题是求函数y=x-2x?摇?摇x≥2-2?摇?摇?摇 x
算法如下:
S:输入x
S:如果x
S:输出y
2.尽量从学生已学过的数学知识中选取例子,这样学生就易于理解算法的程序化思想。
例如,在讲解循环结构时,可以选择数学必修1中的二分法,便于承前启后,导入新知识。
例2:写出用二分法求方程f(x)=0的近似解的算法并画出流程图。
解析:算法步骤如下:
S:确定有解区间[a,b](f(a)·f(b)
S:取[a,b]的中点
S:计算f()
S:判断f()是否为0。如果为0,那么x=就是方程的解,否则执行下一步
S:若f(a)·f()
若f(a)·f()>0,则确定新的有解区间为(a,)
S:判断新的有解区间的长度是否小于精确度。如果新的有解区间的长度小于或等于精确度则取新的有解区间的中点为方程的近似解,否则在新的有解区间的基础上重复上述步骤。
流程图:
3.选取的例子要蕴含中国传统数学思想,贴近生活,有一定的趣味性,能调动学生的积极性,激发学生探究算法知识的兴趣。
例如,在讲解算法概念时,可选取我国隋朝时期的数学著作《孙子算经》中的一个有趣而且有着深远影响的问题——“鸡兔同笼”问题。
例3:今有鸡兔同笼,上有35头,下有94足,问鸡兔各有几只?
解析:按照方程的思想,设有x只鸡,y只兔,则x+y=352x+4y=94。
下面设计一个解二元一次方程组的通用算法:
设二元一次方程组为ax+by=cax+by=c(ab-ab≠0),
用消元法得x=y=,
因此,只需要输入相应的未知数的系数和常数项,就能计算出方程组的解,即可输出x和y的值。上述二元一次方程组的算法如下:
S:输入a,b,c,a,b,c
S:x=
S:y=
S:输出x,y
算法除了作为数学必修3的教学内容之外,其思想方法也应渗透到高中数学课程的其他内容中。因此,在教学算法时,还应鼓励学生今后要尽可能地运用算法解决相关问题,让程序思想成为我们思考问题的习惯。
参考文献:
一、算法如何在学生原有的认知结构中生长
在必修3中第一章算法是独立的一章,看似与传统数学内容的联系很少,因此教师在教学中容易将它孤立起来,机械地、照本宣科地实施教学任务,教完后不会像函数、方程、数列那样在后续的教学中重复出现。学生常常是在高一新授课时利用两周学完,在高三复习的最后阶段做两套练习,此外就极少再接触到算法,有些学生及教师将算法比喻成“鸡肋”,食之无味,可有可无。
《普通高中数学课程标准》写到“算法是一个全新的课题,已经成为计算机科学的重要基础,它在科学技术和社会发展中起着越来越重要的作用。算法的思想和初步知识,也正在成为普通公民的常识。在高中数学必修课程中将学习算法的基本思想和初步知识,算法思想将贯穿高中数学课程的相关部分。”由此可见,不能孤立地教学算法,要使学生将算法的核心思想融入到已有的认知结构中去。结构主义也提出:学科教育的实质是使学生理解学科的基本结构,建立新知识和原有知识之间的联系。
二、数学的算法如何和信息技术的算法整合
如何整合数学的算法和信息技术的算法,将两者有机地结合起来,使得算法课既有数学味,又不失计算机的特色,这是困扰中学教师的又一个问题。
《标准》明确指出:“在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索,学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力。”可见数学的算法和信息技术的算法是不同的。信息技术的算法即编程,是一项浩大的工程,通常要涉及大量细碎的技术问题。数学的算法不会让学生过多地纠缠于程序的调试和实现,而是要让学生感受算法的思想,理解算法的“算理”。
当然数学的算法也不可能完全脱离计算机的技术,教学中也要让学生体会算法的程序性、明确性、有限性等特点。必须帮助学生认识计算机工作的一些基本原理。
三、算法思想如何自然地在高中数学教学中渗透
《标准》要求“算法的思想方法应渗透在高中数学课程其他有关内容中,鼓励学生尽可能地运用算法解决相关问题。”其实这个要求不过分,算法对学生来说并不陌生。从小学的四则运算所遵循的先乘除、后加减的规则,括号的处理规则,到初中的方程组的解法,高中的二分法求方程的近似解,数列、递推数列求和都是算法的典型体现。几乎每个问题的解决都对应一个算法,高中数学的教学需要让学生站在较高的角度解决问题,算法思想的渗透和研究是必要的,这是每位高中数学教师都明白的。要学生很自然地认识到算法思想的重要性,使之成为学生的一种意识、一种思想、一种方法、一种工具,这也是教学过程中的重中之重。
四、突出算理,牢牢把握算法教学的重点
笔者认为首先必须明确算法的教学重点,算法的含义是“对一类问题的机械的、统一的求解方法”,其精髓是算理,算理具有概括性,它指向一类问题,以系列步骤为载体。因此教学的重点是突出算理,以教科书中提供的案例为载体,体会算法的基本思想,提高学生的逻辑思维能力,要防止将算法的教学变成程序语言和程序设计的教学。
五、注重结构,有效突破算法教学的难点
1、准备原料。即蒜瓣,食用油,盐,桂皮,香叶,芝麻油。
2、将蒜瓣去皮。然后将原料洗净,并且将水分晾干即可。
3、将蒜瓣剁碎。然后将蒜瓣末倒入锅内。
4、然后锅里倒入油,并且加热。然后将其余材料一起放入。同时小火加热即可。
5、随着油温升高。锅内开始溢出香味。当葱和洋葱开始变色时,将香料夹出放置在碗内即可。若原料炸太久成品会发苦。
6、等待油温降低。然后把蒜蓉倒进锅里翻炒即可。等待蒜末变成金黄时即可停火。