王秋梅
摘要:《C程序设计》在江苏省对口单招计算机专业考试中占有很大的比重,也是重点、难点。历年考试中,很多学生在程序部分都会失去很多分,原因是学生没有掌握编写程序的方法。文章对其展开探索,试图解决这一问题。
关键词:C语言编程;教法;解决问题
中图分类号:G712 文献标识码:A 文章编号:1671-0568(2013)32-0182-02
《C程序设计》在江苏省对口单招计算机专业考试中占有很大的比重,在600分的专业考试中,理论占60分,技能占80分。语言程序阅读与设计是考试中难度最大、最容易拉开差距的项目,也是重中之重,难中之难。这是一个理论性较强的项目,不仅要具备良好的程序阅读和调试技能,还要有较强的逻辑思维能力。在历年的对口单招考试中,很多学生在程序部分都会失去很多分,特别是技能考试部分,往往80分中只拿到20分。大部分学生对程序题无从下手,甚至被迫放弃,主要原因在于学生没有掌握编写程序的方法。因此,计算机教师应选择适当的教学方法,让学生易于接受教学内容。教学方法包括教师教的方法和学生学的方法。有什么样的教育目的和教学内容,就有与之相应的教学方法。在对口单招考试的计算机教学中,应选择与之对应的教法。
一、循序渐进,由浅入深
循环结构程序设计是程序结构的重点内容,也是对C语言设计内容加深学习的基础。在讲到循环语句中的累加和累乘类问题时,笔者考虑到此类题型是对口单招考试的重点、难点,且出现频率较高。如果用常规方法直接讲解,学生很难接受,因而运用循序渐进、由浅入深的方法来讲解,结果学生反映非常好。例如,编程求Y=X2/1!-X4/3!+X6/5!-X8/7!+…+(-1)N+1X2N/(2N-1)!,其中N、X由键盘输入。此题同样可以采用上述方法解决,首先分析此题,本题Y是由N项加或减构成,减某一数其实可以看作是加某一负数,这样,上式就可变成Y=X2/1!+(-X4/3!)+X6/5!+(-X8/7!)+…+(-1)N+1X2N/(2N-1)!即本题实质上也是N项求和的问题,既然是N项求和,循环体内—定有:Y=S+T这样一条累加赋值语句,只不过T是一个正负相间的数(在此可以用F=1,F=-F来解决),其中T为重点内容,应仔细分析,T的分子部分为X的偶次幂,分母为奇数的阶乘。这样,本题就可以把一个复杂问题转化为三个简单的小问题来解决:①T的分子部分:X2I;②T的分母部分:p=p*I;③累加部分:Y=S+T。
分析过后,编写程序就非常简单了,学生解决起来也很容易。在程序设计求和、求积问题中,一般都要使用累加器和累乘器,并用循环语句来反复累加和累乘。循环体中赋值语句形式的选择,应根据题目中需要求的各项的特点而定。用循环程序结构计算求和、求积的题目一般各项间有规律可循,找出它的特点就不难确定循环体中应该用什么形式的赋值语句来表示这些项。累加、累乘问题的算法是各种程序的基础,只有掌握好此算法,才能更好地学习其他编程。循序渐进、由浅入深也同样适应其他类型的编程讲解。
二、归纳整理,举一反三
“反”有“类推”之意,指学生对所学知识能融会贯通、善于类推、由此及彼地归纳或发现新知。例如,讲解文本作图类问题时,首先给出几个有规则的图形,请学生分析图形的组成,然后归纳编写一个文本方式下的图形程序,需要确定以下内容:图形由几行组成、每行显示的字符位置、每行显示的字符个数、显示什么样的字符。在此基础上变化图形有以下方法:对组成图形的行数进行变化、对每行显示的首字符位置进行变化、对每行显示的字符个数进行变化、对显示的字符进行变化。学生再根据一般文本作图类程序的编写方法逐一解决,从而完全掌握文本作图类程序。
三、分析问题,自主探究
自主探究法在C语言教学中非常实用,能充分发挥学生的思维,突出主体作用,有效培养学生分析问题与解决问题的能力。例如,讲解“冒泡排序”时,没有平铺直叙地介绍算法与程序代码,而是先讲解什么叫“冒泡”,引导学生将一组数据用“冒泡法”进行排列,帮助学生理解。然后,让学生思考冒泡排序的算法思路,讨论并绘制冒泡法算法流程图,尝试练习如何用for程序结构实现算法,直至整个程序编写完整。整个过程让学生分析问题,自主探究,逐步引导,层层深入,取得较好的教学效果,学习其他排序法就轻而易举了。
四、分解任务,模块训练
C语言程序设计是一门实践性很强的课程,需要不断地实践和练习。在单招考试中,技能操作占有很大的比重,只有让学生动手编写程序,才会有成就感。在实践教学应做到教、做、学一体化,一般有以下环节:分组学习(指定小组长,组内要有技能操作比较好的学生)——引入实验项目(创设情境,激发兴趣)——分析程序功能、剖析知识点(任务设计、任务分解,知识点渗透)——学生练习操作(组内探究,教师指导)——模块学习总结归纳,各个环节均需教师精心设计。例如,讲授“顺序结构”时,可以设计任务为编程计算学生的总分、平均分;选择结构的任务可以设计为输入学生的成绩,输出该生成绩的等级;循环结构的任务可以设计为采用while语句、do-while语句、for语句分别来完成从1累加到100的程序设计。完成这些任务的过程中,学生还会不断获得成就感,激发求知欲望,逐步形成感知心智活动的良性循环,培养出独立探索、勇于开拓进取的自学能力。
总之,C语言程序设计作为重要的编程语言,在计算机教学中占据重要位置,也是对口单招考试的重点内容。科学的教学方法会为学生提供较大的帮助,教学过程中应以学生为主体、教师为主导,采用符合学生认知规律的教学方法,充分调动学生学习的主动性,提高实际应用能力。
参考文献:
[1]谭浩强.C程序设计[M].清华大学出版社,2005.
[2]周强.C 语言教学方法探讨[J].滁州学院学报,2004,6(4).
[3]曾正军.在教学中对学生C 语言编程能力的培养[J].南昌高专学报,2004,(1).
[4]李美满等.浅析任务驱动教学法在C语言程序设计教学中的应用[J].现代计算机,2010,(10).