《C语言循环程序设计—for语句》教学案例漠河县职业技术学校尘威威《C语言循环程序设计—for语句》教学案例漠河县职业技术学校尘威威C语言基础是中职计算机专业的一门必修课,也是要求计算机专业学生学习、掌握的一门重点课程,这门课程核心内容就是要让学生掌握一门编程的语言,学会编写简单的程序,能读懂C语言源程序。案例背景:在计算机应用专业教学中,C语言是一门理论与实践结合得比较紧的课程。要掌握和使用好这门语言,既要求学生有比较扎实的理论基础,又要具备较强的应用实践能力。如果只是按照传统的知识体系照本宣科,让学生理解这些枯燥的概念都难,更不要说达到良好的教学效果,而且易挫伤学生学习编程的积极性。因此,在教学中可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和进行概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的,是切合学生的。循环结构是程序设计三种基本结构的重中之重,而循环中的for循环是程序中运用最多的,也是较灵活的语句之一,它既是前面知识的延续,又是后面知识的基础,在知识构架中起着重要的衔接作用,如果不采用一些恰当有效的方法,学生在学习过程中会难以掌握。在教学过程中教师应结合一些有趣的程序,提高学生的学习兴趣,引导学生全身心地投入课堂。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。教学目标确定(一)知识与技能1、领会程序设计中构成循环的方法2、能使用for循环语句编写C语言语句,并能运用for循环语句编写出正确的程序。(二)过程与方法C语言程序设计中for循环语句教学以行动导向教学为主线,通过“提出问题―分析问题―解决问题―问题扩展―讨论―总结归纳―实践”的程序,过渡到知识应用和练习。本课采用多媒体课件进行教学,通过课件把文字和图片有机的结合,使学生在学习过程中更加容易理解,学习效率高。在课堂讨论和实践过程中,教师适当引导,学生主动探究、归纳总结学习内容,既有利于领会掌握新知识点,又能充分发挥学生的主体作用。在重点的突破上,采用范例比较教学法,给出具体的案例,让学生通过典型的例子掌握知识,同时通过用while、dowhile语句的所编写的程序进行比较,加深学生印象,让学生快速的掌握for循环语句的基本结构及使用方法。(三)情感与价值观1.让学生在自主解决问题的过程中培养成就感,为今后自主学习打下良好的基础。2、培养学生学习的主动性,激发学生学习热情,以及培养团队合作的精神、自主探究,合作交流的学习方法,观察,乐于分析的学习态度。。教学重难点确定C语言程序设计中for循环语句的重点是“for语句的结构”,分析题目意图(即算法分析),并用让学生便于理解的方式描述,学生掌握语句的结构和用法并不困难,难的是在实际的应用中那些时候该使用哪种循环来解决问题比较简洁、高效,所以我把本节课的难点确定为“for语句的应用”。学情分析:本节课我主要针对计算机专业高三高考班的学生,在学这节课之前他们应准确掌握《C语言程序设计》中关于实现循环结构语句,如for或while,do-while。并拥有能分析并描述简单算法如求累加,累乘的能力。案例描述案例1:教师将一张空白A4纸向学生展示,跟同学们说,今天老师给大家做个试验,让你们来猜一猜(学生的兴趣和精神一下就提起来了),然后老师边演示边讲解,将这张纸对折一下后几张?学生都能回答:2张。继续发问,对折两下几张?学生:4张。对折三下呢?学生:8张。(这个时候学生充满疑惑,老师想干嘛呢,问这么简单的问题)接着老师提出问题:如果纸理想化的大,对折42下,这些纸的厚度将会多高?这个教室一下就热闹起来了,学生们纷纷给出自己想像的答案,有些同学比划出手势:伸开双手说:有那么高,有人说桌子那么高的,有说房子那么高的。又有人马上否定,哪有那么高。有些同学拿起笔就开始算,算着算着就不知道该从哪儿下手了。这个时候老师组织安静课堂,叫同学分组给出自己心里倾向的答案,可以估计,可不说理由。四个小组分别给出的答案是:1:书桌那么高(大概50cm)。2:人的高度(大概170cm)。3:楼房的高度(大概3000cm)。4:大概10厘米。老师不说哪一组对,只是问同学们,这个高度该怎么算?接下来和同学一起分析得出以下结论:1、纸张的厚度h?2、有多少张纸n?3、高度=h*n.解决问题1:同学自行测量(4组同学各自准备100页纸,测出总高度/100,取4个小组的平均值)。最后得出一张纸的厚度约=0.1mm。这个环节的主要目的是让每个学生动手,锻炼他们的动手实践,合作交流的集体合作精神。解决问题2:有多少张纸?2的42次方。接下来利用循环语句来做(即有42个2相乘)。编写源程序所用方法:学生自己编写,小组同学相互交流。目的:培养并锻炼学生将心中已明确的算法落实到具体的程序语句上。教师活动这个时候巡查教室,检查并了解学生完成情况,对部分有小问题的同学给予及时帮助。组上有成绩比较好的同学很快就把程序编写完毕,我看了一下,选了一个同学到教室机给大家调试展示。该同学给出的程序如下:main(){inti,k=1;floats;for(i=1;i=42;i++)k=k*2;/*k是纸张的张数*/s=k*0.1*1.0e-6;/*将mm转换成km*/printf(“将一张纸折42下的高度为:%.2f公里”,s);}调试结果:将一张纸折42下的高度为:0.00公里.这个时候老师提问:为什么会出现0.00的情况?请同学们为他指出问题。同学们思考了一会无人作答。这个时候老师提醒:k的值将会很大.结果部分同学作恍然大悟状态,有同学马上举手:老师,变量k的值不能定义为int,应定义为long;问他为什么?他说:int类型的取值范围是:32767,装不下k。老师微笑表扬:方向对了。改好,调试,结果还是0.00公里。这个时候又有同学发言了:老师,不会定义为long都装不下k吧。这个时候老师提问:如果整型数据long都装不下的数据该定义为什么?学生回答:实型float。改好,调试,Ok,成功!源程序如下main(){inti;floats,k=1;for(i=1;i=42;i++)k=k*2;/*k是纸张的张数*/s=k*0.1*1.0e-6;/*将mm转换成km*/printf(“将一张纸折42下的高度为:%.2f公里”,s);}调试结果:调试结果:将一张纸折42下的高度为:439804.66公里.全班同学的脸上都露出成功的喜悦。可同学们看到结果,表示不太相信,问老师,是不是算错了,有这么高呀。老师作肯定的答复:没错,就有这么高。比地球到月亮的距离(384,401公里)都还要高。这里可以告诫学生,科学不是凭想像,实践出真知。问题延伸:已知太阳离地球有1.5亿公里,如果理想化的去折纸,最多折多少下有这么高?学生分组讨论,用什么语句最恰当。得出结论。(用dowhile语句)给同学们五分钟,请同学们给出程序并且调试出结果。教师点评学生的程序,指出程序中容易出现错误的地方。源程序如下:main(){inti,k=1;floats;do{k=k*2;S=k*0.1*1.0e-6;i++;}while(s=1.5e8);printf(“最多可折%d下有地球到太阳那么高”,i);}案例反思:通过这案例教学也给我留下了很多启示:1、根据C语言的学科特点,和学生的现状,特别是根据学生平时厌理论而乐操作、解决实际问题能力较差的特点,采用案例教学可以充分调动学生学习C语言的兴趣和积极性,使学生处于精神集中的状态,确保学生将知识真正学到手。通过新鲜的案例引领课堂,平时上课精神不集中的学生都认真分析问题了,个别平时打瞌睡的学生精神也集中了。2、学生编程的信心需要老师去引导和激发。因为C语言程序对于中职学生来讲有些难度,部分学生一看到编程就放弃了,想都不会去想。这个时候老师就要从案例中去引导学生,和学生一起从案例去分析解决这个问题的算法,激发他们编程的尝试。随着程序的成功调试,信心就有了。一个人有了足够的自信,他将有无穷的力量去面对将来的学习和生活。