设为首页
加入收藏
学习算法应注意的几个问题
潍坊市 寒亭区一中 李曰富 陈洪光
在新高中数学课程标准中,“算法初步”作为必修部分进入了高中数学。标准中写道:“算法是一个全新的课题,已经成为计算机科学的核心,它在科学技术和社会发展中起着越来越重要的作用.算法的思想和初步知识,也正在成为普通公民的常识.在必修课程中将学习算法的基本思想和初步知识,算法思想将贯穿高中数学课程的相关部分.”这是我国以前所有高中数学课本从未有过的.它体现了新教材的时代特点,同时也给广大师生提出了新的问题:
学习算法应注意什么?本文将从以下四个方面加以阐述:
明确算法的概念
“算法”并不能简单的理解为“计算(或运算)方法”的简称,而是为了解决一类问题而设计的,进行某一工作的方法和步骤.比如某道菜的菜谱,某个品牌空调的使用说明,某首歌的歌谱,我们熟悉的带余除法,解线性方程组的消元法,求两个数的最大公因数等都是算法。
而现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤.只要 正确的输入原始数据,按操作程序去做就能得出结果(输出相应的数据)可见算法的产生是与计算工具相联系的,不同的计算工具有不同的算法,如算盘有相应的珠算口诀,电子计算机有相应的电子计算机的算法,但由于机器不能直接与人对话,所以必须有相对应的算法语言来作为人机之间的交流使者.人们曾设计出数十种算法语言,并不断改进,使其更接近数学语言,更方便使用,不论哪种算法语言都是由一系列符号和英文字母组成的,但不同的算法语言各有规则,不能混用.一般用计算机解决问题的步骤是:将数学语言写成解题程序——用选定的算法语言写成算法程序——上计算机运算,得出结果——得出问题答案.
明确算法的意义
算法学习有助于我们全面的理解运算能力
很多时候,人们对运算存在一些误解,认为运算就是按照各种运算法则进行加、减、乘、除,从而学习运算就是背诵书本中给出的计算法则,形成一些基本的计算技巧,也就是说,能够根据熟记的法则,迅速的计算给定式子子的正确答案.
实际上,按照算法规则进行逻辑推理而获得正确结果仅仅是计算的很小的一方面,更重要的是,在运算中中构造、设计、选择一个合理的算法,理解相应的算理.在算法学习中,我们要让学生给出一个问题的不同算法,并比较这些算法的优劣,并作出选择,从而提高效率,而这个过程才是一个真正的运算过程,因此算法学习使得我们更加全面的理解运算能力.
算法学习能够培养学生的逻辑思维能力
我们常常说数学是思维的体操,能够训练学生的思维能力。算法作为数学的一个基本内容,在培养学生的逻辑思维能力上能够发挥重要的作用.
算法是解题方法的精确描述,算法一方面具有具体化、程序化、机械化的特点,同时又有高度抽象性、概括性和精确性。因此,将解决具体问题的方法整理成算法的过程是一个条理化、精确化和逻辑化的过程,有助于培养学生的逻辑思维能力.
明确算法的要素和结构
算法含有两大要素:一是操作,计算机算法由计算机实现,组成它的操作主要包括:(1)算术运算,即+,-,×,÷等;(2)逻辑运算,即与(∧),或(∨),非( )等;(3)关系运算,如<,>,≤,≥,=,≠等;(4)函数运算,如ex,lnx,sinx等.
二是控制结构.控制结构的作用是控制算法各操作的执行顺序.一个算法通常由三种基本结构组成,这三种基本结构是:
1.顺序结构
顺序结构的算法是操作顺序是按照书写顺序执行.
如:“乘数是两位数的乘法”的一个算法.
S1:用乘数个位上的数去乘被乘数,得到的末位和乘数的个位对齐;
S2:用乘数十位上的数去乘被乘数,得到的末位数和乘数的十位数对齐5;
S3:把两次乘得的数加起来.
我们只要“按部就班”地照着这三个步骤认真地算,像“123×45”、“67×89”这类的乘法运算都不在话下.
2.选择结构
选择结构的算法是根据指定的条件进行判断,由判断的结果决定选择执行两条分支路径中的一条。
对任意给定的三个整数x,y,z,设计求出其最大值.这个算法是简单的,只要先比较出x和y ,得到一个大的值,再用这个值与z 比较,这两者中大的值即为所求的最大值.
可以将这个算法描述为:
输入变量:x,y,z;
b:=x;
比较b与y:如果b 比较b与z:如果b 输出b. 在这个算法中,我们变量b比较的不同的结果决定后面的操作. 3.循环结构 循环结构的算法要根据条件是否满足决定是否继续执行循环体中的操作. 我们知道求三个数中的最大数,我们要进行两次比较,假如我们要找出100个数中的最大数,按照这样的算法就需要比较99次,算法步骤就是101步。既不便于书写,也不便于阅读。解决这个问题,就需要利用循环结构了,对于求100个数中的最大数的问题,相应的算法控制结构可以用下列流程图来表示: 象这样的算法控制结构我们称为循环结构. 四. 明确算法的要求 我们在具体写出解决某一个问题的算 法时,必须注意以下几个方面: 1.有明确的规则 用某种算法解决一个问题,是指使用一系列预先指定 的运算规则求解这个问题。其中的规则必须是明确可 行的,不能含糊不清或不可行. 如求1+2+3+4+5+6的一个算法: S1:计算1+2; S2:计算3+4; S3:计算5+6; S4:输出运算结果. 由于在第四步输出运算结果之前,部位规定对第一步、第二步、第三步中的运算结果如何处理,因此这个规定不明确,也不可行,这个“算法”不能称为真正的算法. 2.只能有限次的运算 对于一个算法来说,必须要求在有限的步骤内完成,否则,会因为步骤无限多,而使计算机陷入永无尽头的无穷多次运算,致使无法输出结果. 如求1×3×5×7值的一个算法: S1:T=1; S2:I=3; S3:T=T×I;{求T×I,乘积结果存放在变量T中} S4:I=I+2,转第三步. S5:输出结果. 由于对I的大小没有限制,致使第三、四步无限地运行,进入“死循环”,使结果无法输出,运行失效,算法失败. 3.流向必须唯一 算法从初始步骤开始,每一步只能有一个确定的后继步骤,即流向唯一.否则,将会因为流向多元化而使程序混乱,不能顺利运行.
|