C语言程序设计循环语句教学设计
教学案例是对教学过程中的一个实际情境的描述。它有利于教师对教学设计进行整体的规划,它以一个故事的形式,来叙述教学情境的产生、发展的历程,它是对教学现象的动态性的把握。
【案例背景】
C语言是集理论与实践于一体的课程。它既要求学习者有较扎实的理论基础,又要求具备较强的应用实践能力。如果按照传统的知识体系讲,学生要完全理解这些概念是相当困难的,且易挫伤学生学习编程的积极性。因此在教学中,可以改为从案例入手,通过给学生演示、让学生模仿,在实际应用中去探究和领悟这些概念,并适时地加以归纳总结和概念的延伸,让学生在轻松愉快的气氛中学习新知识。所以从课程内容而言,案例教学是适用的。
程序设计的三种基本结构重中之重就是循环结构。而循环中的for循环是程序中运用最多的,它既是前面知识的延续,又是后面知识的基础。本文针对学生的实际情况,具体阐述for循环语句在具体编程时的灵活应用。
教学目标:
1.知识目标:让学生理解题目意图,利用C语言的循环结构语句编写出正确的程序。
2.能力目标:培养并锻炼学生分析、解决问题的能力
3.情感目标:培养学生动手实践、自主探究,合作交流的学习方法,观察,乐于分析的学习态度。
4.教学重难点:重在分析题目意图(即算法分析),并用让学生便于理解的方式描述,难在用所学的语句来编写程序。
学情分析:
本节课我主要针对计算机专业高考班的学生,在学这节课之前他们应准确掌握《C语言程序设计》中关于实现循环结构语句,如 for 或 while,do~while。并拥有能分析并描述简单算法如求累加,累乘的能力。
【案例描述】
案例1、教师准备一张作业本纸给学生展示,然后给大家说,今天老师给大家做个试验,让你们来猜一猜,(学生的兴趣和精神一下就提起来了)然后老师边演示边讲解,将这张纸对折一下后几张?学生都能回答: 2张。继续发问,对折两下几张?学生:4张。对折三下呢?学生:8张。(这个时候学生充满疑惑,老师想干嘛呢,问这么简单的问题)接着老师提出问题:如果纸理想化的大,对折42下,这些纸的厚度将会多高?
这个教室一下就热闹起来了,学生纷纷给出自己想像的答案,有些还纷给比划出手势:伸开双手说:有那么高,有人说桌子那么高的,有说房子那么高的。又有人马上否定,哪有那么高。有些同学拿起笔就开始算,算着算着就不知道该从哪儿下手了。
这个时候老师安静课堂,叫同学分组给出自己心里倾向的答案,可以估计,可不说理由。
四个小组分别给出的答案是:1:书桌那么高(大概50cm)。2:人的高度(大概170cm).3:楼房的高度(大概3000cm).4:珠穆琅玛峰的高度(大概8000多米)。
老师不说哪一组对,只是问同学们,这个高度该怎么算?
接下来和同学一起分析得出以下结论:
纸张的厚度h?  2.有多少张纸n? 3.高度=h*n.
解决问题1:同学自行测量(4组同学各自准备100页纸,测出总高度/100,取4个小组的平均值)。最后得出一张纸的厚度约=0. 1mm.
这个环节的主要目的是让每个学生动手,锻炼他们的动手实践,合作交流的集体合作精神。
解决问题2:有多少张纸?2的42次方。接下来利用循环语句来做(即有42个2相乘)。
编写源程序
所用方法:学生自己编写,小组同学相互交流。
目的:培养并锻炼学生将心中已明确的算法落实到具体的程序语句上。
教师活动:
这个时候巡查教室,检查并了解学生完成情况,对部分有小问题的同学给予及时帮助。
组上有成绩比较好的同学很快就把程序编写完毕,我看了一下,选了一个同学到教室机给大家调试展示。该同学给出的程序如下:
main()
{ int i,k=1;
float s;
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()
{ int i;
float s,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亿公里,如果理想化的去折纸,最多折多少下有这么高?
学生分组讨论,用什么语句最恰当。得出结论。(用 do while语句)
给同学们五分钟,请同学们给出程序并且调试出结果。
教师点评学生的程序,指出程序中容易出现错误的地方。
源程序如下:
main()
{  int i,k=1;
do while语句怎么用float s;
do
{  k=k*2; S=k*0. 1*1.0e-6;i++;}
while(s<=1.5e8);
printf(“最多可折%d下有地球到太阳那么高”,i);
}
【案例反思】
通过这案例教学也给我留下了很多启示:
1、根据平时学生厌学理论知识而乐学实际操作、解决实际问题能力较差的
特点,采用案例教学能充分调动学生学生C语言的兴趣和积极性,使学生处于精神集中的状态,保证学生将知识真正学到手。俗话说兴趣是最好的老师。我发现平时上课喜欢看课外书的都认真分析问题了,平时打瞌睡的精神也集中了。
2、学生编程的信心需要老师去引导和激发。因为C语言程序对于中职学生来讲有些难度,部分学生一看到编程就放弃了,想都不会去想。这个时候老师就要从案例中去引导学生,和学生一起从案例去分析解决这个问题的算法,激发他们编程的尝试。随着程序的成功调试,信心就有了。一个人有了足够的自信,他将有无穷的力量去面对将来的学习和生活。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。