对教材解一元二次方程程序的完善
2018-06-28张效燊
摘要:数学新课程标准对算法内容的教学建议是:对算法内容,应着重强调使学生体会算法思想、提高逻辑思维能力,不应将算法简单处理成程序语言的学习和程序设计,同时应通过具体实例的上机实现(或编程)帮助学生理解算法思想及其作用,体会算法对同一问题的通用性。
关键词:一元二次方程;算法;流程图;框图;程序;程序设计
一、 问题提出与教学遇到的问题
在高中数学必修③(人民教育出版社2007年2月第3版,2011年6月第13次印刷)1.1.2节中(第12页)的“例5:设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图表示”。在教学中遇到了几个问题:
1. 书中的“算法分析”有让学生困惑之处,就是p,q的问题,教学实践表明p,q的存在,反而让基础薄弱的学生难以理解,学生也不知道为什么要这样做,而且学生也不容易读懂程序框图,倒不如去掉这两步。
2. 教科书讲到“为了避免重复计算,可以在计算x1和x2之前,先计算p,q”,其实如果Δ=0,那么q这步就白白计算了,反而做了无用功。
3. 成绩好的学生或者个别“调皮捣蛋”的学生会问到:“我就是要输入a=0,会怎么样?”按照书上的框图和程序,输入a=0是可以的,程序也会运行,只是程序会出错,会提示“OVERFLOW”,然后高亮显示出错语句。程序运行到计算p这一步就出错了,后面的更加不用看了。那么怎么解决呢?对刚接触算法的学生来说,这个知识超越了学生现有的知识水平和理解程度,甚至部分教师也不懂,也有部分教师直接回答“当a=0时,它就不是一元二次方程了,而是一元一次方程,所以不能输入a=0哦。”这样回答就是授之以鱼而不是授之以渔了。如果不能很好的解决这些问题,而是照本宣科,这样学生以后还能提高学习积极性?学生对学习算法还有兴趣吗?对于培养学生算法的思想、创新的能力从何谈起?
二、 问题探讨与解决方案
针对问题1:教科书中p、q的问题,我认为应该直接把p、q去掉,不必花费力气去思考p、q的作用,同时程序框图也简洁、明了(可以参考教参第十页的图)。有了这个例题的学习,第33页书习题1.2,A组的第一题和B组的第三题就可以让学生尝试自己进行练习了,毕竟是基本一样的程序框图,只是内容变成了一个三段的分段函数。相信学生学习的效果比使用教科书原版的要好。
当然,这个时候还没有解决“输入a=0的问题”。我会引导学生尝试去解决这个问题,首先:“日常生活中,我们上网注册邮箱或者其他账号时,大家有没有留意到或者是体会过:当我们输入一个自己喜欢的账号,然后点击输入密码这一栏时,电脑提示‘该用户名已被使用,请重新输入,如果三番四次都这样,我们心里是不是很郁闷?”然后提出:“这个经验中,你想到了什么?怎样解决输入a=0的问题?”挑起学生的兴趣,让他们的心和脑动起来。
这里,要提醒的是,要解决“输入a=0的问题”,我们要先讲授循环结构。引导或提示学生:我们可以在程序里加入当型循环,让我们可以先检查输入的二次项系数有没有错误,然后再放行运算。
最后,跟学生一起总结,给出下面程序框图。在循环结构里的“提示”输出,我们可以活跃一下课堂的气氛,就来个输出“亲,a不能为0哦,请重新选购”,学生发笑了(现在上淘宝网的学生蛮多的),学习的动力出来了。最后,给出相应的完整程序:
Input “二次项系数a=”;a
While a=0
Print “a不能为0,请重输”
Input “二次项系数a=”;a
Wend
Input “一次项系数b=”;b
Input “常数c=”;c
d=b^2-4*a*c
IFd>0 THEN
Print“x1=”;(-b-Sqr(b^2-4*a*c))/(2*a)
Print“x2=”;(-b+Sqr(b^2-4*a*c))/(2*a)
ELSE
IF d=0 THEN
Print“方程有两个相等的实数根=”;-b/(2*a)
ELSE
Print“方程没有实数根”
END IF
END IF
END
以上程序要留意第一行和第四行,是重复写的,但是在程序框图里面没有体现。解一元二次方程的例子,讲透了、引导学生懂得思考了,那么学生对程序的顺序结构、条件结构和循环结构这三种程序设计的基本结构就有了较为全面的了解。
在程序的教学当中,要注意的是哪些该顶格编写,哪些该退格编写,一定要讲清楚“为什么”。如果大家都不注意格式,则自己编写的程序别人不容易看懂,自己也不容易看懂别人写的程序。就如上面程序字体加粗部分,本来就是一个完整的条件结构,在这里作为另外一个条件结构里面的一个“否”的分支,退格写就容易看出来。
在算法的教学中,教科书忽略了一点,这容易让学生理解为input与print只能是程序的开始与结尾,全章内容有第31頁的程序、第39页的秦九韶算法中,input与print语句是在循环结构里面出现的,这点我们要提醒学生。
三、 诠释与研究
在计算机环境下进行算法教学既是《课程标准》的要求,也是教师教学的愿望,更是学生学习的需要。教师是课堂教学的组织者、学生学习的引导者。我认为教师应强化课程开发的意识,具体表现在教学设计时既要深入钻研教材,又要跳出教材,又要结合学生学习的情况进行总结,再也不能把教学的过程纯粹地看作是忠实地执行与实施教材,而应该在课程目标的导向下因时、因地、因生、因己灵活地处理、开发教材,创造出有利于学生主动学习、全面和谐发展的教学方案。
作者简介:
张效燊,广东省云浮市,广东省云浮市新兴县惠能中学。