打造新课改下的C语言动态课堂

2013-04-29 23:44:48马华丽
中学时代 2013年7期
关键词:程序段C语言同学

马华丽

【摘要】本文针对C语言教学过程中存在的问题,以新课改标准为依据,提倡采用“理实一体化”的教学模式,体现 “做中教,做中学”的教学思想,以此为依据分析了如何打造新课标下的动态课堂,以及在教学实施过程中的一些具体事项。

【关键词】任务驱动 自主学习

目前,计算机已经成为人们工作、生活中所不可或缺的一种智力工具,它的工作原理是存储程序控制。因此,程序设计语言是计算机专业的一门必修课。如何让学生对这门课感兴趣,让课堂变得轻松、活跃、愉快成了计算机教师一直关注的问题。下面我就如何让枯燥乏味的C语言课堂变成动态课堂,谈一些粗浅的看法。

一、 给学生学习的空间,营造一个自主学习的环境

要有效地实施以学生为主体的“做中学,学中做”教学原则,首先要给学生营造一个自主学习的环境,让学生参与到教学活动中来。要利用“项目教学法”和“任务驱动法”为学生制定一个目标,并要求完成这个目标。在这方面,我充分利用了计算机的可操作性、可实用性等特点,要求学生课程结束后每人完成一个项目,每人交一个小软件或应用程序,内容不限,但必须是利用所学的知识进行编写的。

其次,合理安排教学内容,把教学内容设计在一个个实际“任务”之中,让在完成任务的同时去学习新的知识,产生求知欲望。在学习rand()函数的用法时我就设计了一个小任务:模拟“扫雷”游戏程序,在30×40区域内随机埋藏50个地雷。

任务分析:这是一个WINDOWS自带的小游戏,我们也都玩过,今天我们用C语言来编程模拟如何“埋地雷”。

第一:我们可以利用一个二维数组划定区域。

第二:利用随机函数来确定每一个地雷的位置,在有地雷的地方填“*”,没有地雷的地方填“O”,地雷不能重复埋设。解决这个问题需要注意的问题有:定义一个二维数组、每一个地雷的行列具体位置由随机函数产生、两颗地雷之间位置不能重复等。

通过分析,学生结合课本写出产生某一范围内随机数的表达式:

i=rand()%30+1

j=rand()%40+1

也可由例子随机产生50个两位正整数之间的随机数,引出如何产生一定数量的某一范围内的随机数。

两个例子一样的道理,但我们如何控制产生不相同的随机数据,需不需要对产生的数进行判断呢?我们要引导学生找到产生互不相同数的算法:将产生的一个数与之前的所有数进行比较,若有相同则重新产生一个,这样周而复始,直到产生的个数符合要求为止。

例如:随机产生50个互不相同的[10,99]之间的随机整数,该如何产生。

学生板书(程序段):

for(i=0;i<50;i++)

{l:a[i]=rand()%91+10;

for(j=0;j

if (a[i]==a[j])

goto l }

结合以上程序段,可以引导学生编写埋地雷程序。类似的任务还有“累加求和”等典型的题目,让学生在完成任务的过程中产生求知欲,自主地去寻求解题方法,从而掌握知识、解决任务。

二、 循循善诱,引导学生在探究过程中解决问题

在完成任务的过程中,要引导学生进行独立思考,主动地去探索,学会在探索的过程中找出解决问题的方法。

例如,我们在讲“排序法”时(四种排序法),让学生完成这样一个任务:编程序让计算机给全班同学按总分来排名次。(题目已知每个同学的总分)

在分析问题时,我用了一个小事例:从同学中找出高矮不同的10个人来进行排队,看怎样才能让这10个同学按从矮到高的顺序进行排队,看看有几种方法。

同学们各抒己见,气氛很活跃,方法也很多。就拿其中的一种方法来说,原理是这样的:先让第一个同学分别和他后面的其他同学进行比较,在比较过程中如果第一个同学比其他同学高则两同学交换位置,这样一轮下来最矮的同学就排在了第一。然后,用同样的方法让第二个同学和他后面的同学去比,如果比其他同学高就交换位置,这样第二轮下来,第二矮的同学就排在了第二。依次类推,找到第三、四个同学,直到第九轮,用第九个同学和第十个同学比时,如果高则交换,找到排到最后的两个同学。这就是我们说的“顺序比较法”。

学生板书,程序段如下:

for(i=0;i<9;i++)

for(j=i+1;j<10;j++)

if(a[i]>a[j]) {t=a[i];a[i]=a[j];a[j]=t;}

其他三种方法类似。这样,学生很快就能按实例将排队原理转化成程序语言。有很多这样的例子都可以用这种方法引导学生自己完成从文字语言到程序语言的编写过程。

只有让学生成为知识的主动建构者,他们的主观能动性才能被充分调动起来。在动手实践的过程中学生不仅学会了独立思考、如何去学习,而且从个人的亲身体验中彻底打破了对计算机程序的神秘感,看到了自己亲手编写出来的程序,自信心、自豪感油然而生。看来,能否打造C语言动态课堂,关键在于教师怎样去设计你的课堂。学生都是好学生,怎样才能让学生动起来是值得我们每个教师深思的。

猜你喜欢
程序段C语言同学
基于WinCC的物料小车控制系统设计与仿真
电动工具(2022年2期)2022-05-18 08:40:38
基于Visual Studio Code的C语言程序设计实践教学探索
计算机教育(2020年5期)2020-07-24 08:52:56
数控系统手轮回退功能的研究与实现*
帮助同学
奇怪的新同学
大灰狼(2018年9期)2018-10-25 20:56:42
基于NC程序段的提高数控加工监控阈值与信号同步的方法*
基于C语言的计算机软件编程
电子制作(2018年16期)2018-09-26 03:27:08
同学会上的残酷真相
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用