- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
?
?
《C语言程序设计》三层教学法
?
?
摘要:程序设计的教学。以兴趣教学为主线,从学生感兴趣的实例入手,引导学生建立程序思想;适当变换问题,做好学习兴趣的保持工作,加深学生对程序结构的理解;适度延伸、拓展问题,加强学生学习兴趣的培养,遵循这样的思路去安排教学内容,最终提高学生们独立分析问题、解决问题的能力。
关键词:程序设计;兴趣;层次
在全面提高学生自身素质的教学改革大潮下,不少教师致力于语言程序设计的教学研究,通过程序设计教学提高学生分析问题、解决问题的能力,从而使学生初步获取程序设计思想。笔者通过多年的探索,总结了三层次教学法,收到了较好的效果。
第一层次,注重从贴近生活的简单、有趣的实例入手,引导学生建立程序思想。
⑴贴近生活的有趣实例,更可以激发、调动学生的学习兴趣。学习兴趣的激发,使专业知识的传授成为可能,对新知识、新思想的引入起到了铺垫作用。例如,在利用c语言循环结构程序解决求阶乘问题时,先提出问题:“求5!,结果是多少?你能归纳出人脑求阶乘一般过程吗?”学生会很快说出5!是120,经引导也会归纳出人脑求阶乘一般过程:①先用1*2,记住结果2;②再用结果2乘3(2*3),记住结果6;③依次用结果乘后面的数,直到5为止。最后,大脑中记下的是1*2*3*4*5的结果120,在此基础上,向学生提问:想一想,如何用所学的程序思想实现这一过程呢?这种安排充分调动了学生的积极性,并使之维持在最佳状态,为循环结构程序思想的引入做好了铺垫。
⑵抓住学生兴趣的最佳状态,注重人脑处理问题向电脑处理问题的迁移过程。仍以编程求5!为例,计算机用变量存放数据,把乘积的结果放在变量s中,s的初值为1(即s=1),按照s=s*1,s=s*2,s=s*3,s=s*4,s=s*5的阶乘规则,求出5!的值放入变量s中。我用一个课件演示了这一过程,以强化学生对计算机求解阶乘这一过程的认识,初步构建编程的结构思想,完成人脑解决问题模式向编程解决问题模式的迁移。
⑶结合程序设计语言,引导学生建立程序流程图。流程图的建立,是完成程序设计的关键,确立流程图的过程,最能锻炼学生的逻辑思维,从而培养学生分析问题、解决问题的能力。结合求5!问题,可分3步启发、引导学生完成流程图:第一步,抓住最基本、最本质的问题,联系程序设计中的基本结构。上例中,用变量s作为存放阶乘的结果,并为变量s赋初值1,i为中间变量,其值的变化范围为1到5(即为1,2,3,4,5)。在程序的三种基本结构中,用什么结构可以完成这个工作呢?学生们会回答用循环结构。第二步,要把握问题的整体性,联系程序的基本结构解决实际问题。在求解问题的过程中,第一次(i=1时)s=s*1,第二次(i=2时)s=s*2,第三次(i=3时)s=s*3,第四次(i=4时)s=s*4,第五次(i=5时)s=s*5,变量s在每次运算之后值都是变化的,应怎么办?引导学生得到s=s*i这个表达式;第三步,完善流程图。根据上述的分析,采用课件分步骤、形象地表现出设计流程图的思维过程,培养了学生们分析问题和逻辑推理的能力。流程图如下图所示。
⑷根据流程图,由学生写出程序,同时让学生上机验证程序的可靠性。这样做,可以在让学生体会程序结构思想的同时,强化他们对程序设计语言的理解与掌握;学生上机亲手验证,保持了浓厚的学习兴趣,更有助于对知识的理解与掌握,同时也锻炼了学生们的上机操作技能。下面是根据流程图由学生写的源程序。
main()
{ints=1;
for(i=1;i=5;i++)
s=s*i;
printf(“5!=%d”,s);
}
学生通过上机调试,得出结果:5!=120
第二层次,注重学习兴趣的保持工作,适当变换问题,加深学生对程序结构的理解。这层次是在第一层次的基础上引发出来的,目的是让学生灵活处理问题,真正理解、掌握并消化第一层次中的程序设计思想。为此,要注意以下两方面。
⑴提问要紧扣上层次解决的问题去设计,在进一步掌握并消化所学知识的基础上,提高学生对c程序设计思想的认识水平。例如,求5!中,在完成了第一层次教学的基础上,可提出以下两个问题:①若求10!,怎么修改程序?②若把i变量的初值改为0,终值改为4,行吗?为什么?马上会有学生将源程序的第三行改为for(i=1;i=10;i++)并运行程序,结果同学们发现屏幕上并没有如预期想象的那样给出正确结果,而是显示出一个错误对话框,含义为“数据溢出”,同学们百思不得其解。这时教师提示同学们将程序做一点修改,把变量s定义为长整型longint,试试看运行情况如何?通过“数据溢出”同学们明白了,整型只能表示-32768-32767之间的数,而10!已经超出了整型表示的范围,所以会出现“数据溢出”的错误。同学们将源程序的第三行改为for(i=0;i=4;i
文档评论(0)