关键词:算法;程序;
作者简介:黄成发,男,安徽师范大学教育硕士在读,芜湖市第二中学数学一级教师。
一、算法与程序框图不吻合
我们知道算法步骤有明确的顺序性,学生刚开始学习算法与程序框图时教师一般会强调根据算法去画程序框图,这一点从课本例题的编排上可以看出来。但课本算法与程序框图的第一个例子“判断整数n(n>2)是否为质数”就出现了不吻合的地方!先看看课本第4页、第6页分别给出的算法和程序框图:
对比上述算法与程序框图可以发现,算法中的第四、五两步和程序框图不完全对应,编者在这儿对算法和框图进行了一定的优化!这对刚刚学习这个新内容的学生来说理解时就会有一定的困难。建议在此部分教学时先将程序框图稍加修改使之符合算法步骤顺序,修改后的程序框图如下:
待学生具备一定的学习基础后再介绍现在课本的框图结构,这样既起到温故知新的目的,又可以促使学生思考,明确优化对算法、程序的重要性,也会对后面秦九韶算法的先进性有更深刻的认识!
二、框图与程序不对应
课本上有这样一句话:“按照程序框图中流程线的方向,依次将程序框中的内容写成相应的算法语句,就得到了相应的程序。”显然,编者是想强调框图与程序的关系,引导学生学会简单的编程并养成良好的编程习惯,课本上的大多数例题也是这样做的,但也的确存在个别考虑不周的地方,比如课本第41页例4:将k进制数a(共有n位)化为十进制数b。课本给出的框图与程序如下:
从程序框图可以看出,这是一个应用“直到型”循环结构的例子,整个结构简洁明了,思路清楚!明显的:“把a的右数第i位数字赋给t”就是循环体的一部分,但课本程序第四行“t=amod10”却在循环体之外凭空出现,乍一看不知它起什么作用,让人感觉丈二和尚摸不着头脑,框图和程序实在对不上号!而在循环体内为完成此功能重复出现的“t=amod10”语句使整个程序显得冗余和复杂。事实上,只要将程序做如下修改就可以了:
三、部分语句表述不够严密
课本第11页例5:“设计一个求解一元二次方程ax2+bx+c=0的算法”,课本第27页例6给出了这个题的程序。通读这两个例题的解答可以发现,它们都未强调二次项系数a≠0,在第11页例5还没有太大的问题,但第27页例6给出了这个题的程序:
显然,p、q的赋值语句中不强调a≠0是不严密的!因此,在题目中强调a≠0是必要的。(当然也可以在程序中多写一段判断a是否为零的语句)
同样的问题还出现在第43页例6“设计一个程序,实现除取余法”。课本给出了解决这个问题的通法,但考虑到大多数学生对程序语言的了解,绝大多数学校还是以教授QBASIC语言为主,在不提高程序语言学习要求的情况下(实际上编者也明确说明不要把算法上成计算机程序语言课),课本给出的算法、程序只能完成十进制以内的问题,像常见的十六进制的转换就无法进行,这同样是应该标注说明的。
参考文献:
[1]中学数学课程教材研究开发中心.数学教学法[M].北京:高等教育出版社,2003.
作者单位:安徽师范大学
邮政编码:241000
SomeDebatableExamplesin“PreliminaryArithmetic”
HuangChengfa
Abstract:“Preliminaryarithmetic”isnewteachingcontentsinAnhuiprovince.Basedontheteachingofthefirstround,theauthordiscoverssomedebatableproblems;thispapermainlystudiestheseexamples.
Keywords:arithmetic;procedures;problems