c语言中for循环语句可以改写,C语言中for循环语句教学研究

摘 要:《C语言程序设计》是一门理论与实践相结合的课程,理论教学是实践教学的基础。理论教学的目的不仅在于取得良好的实验效果,更是为了让学习者在实践教学中更好地掌握和理解知识点。因此,在理论教学中,要尽量避免空洞的理论讲解和“满堂灌”的教学模式,而应该采用“案例式”的启发教学模式,实例切记大、难、繁,应选取实用价值高、趣味性强、容易理解的简单例题。for循环语句是整个C语言程序结构中的一个重点内容,也是学好《C语言程序设计》的基础条件之一。采用案例教学法对C语言for循环语句的运用进行了研究。

关键词:C语言;程序设计;for循环语句;程序算法

中图分类号:G433 文献标识码:A 文章编号:16727800(2013)003018403

0 引言

设计程序就好比写文章和盖房子,写文章要有文章结构,盖房子要事先设计房子的建筑结构,设计程序则要有程序结构。早在1966年,Bohm和Jacopini提出了程序设计的3种基本结构:顺序结构程序设计、选择结构程序设计和循环结构程序设计,并且已经证明所有程序都可以由这3种基本结构组合而成。其中,循环结构程序设计是《C语言程序设计》中最重要和最难掌握的一种结构,几乎每一个实用的程序都少不了循环结构。因此,循环结构程序的教学内容对《C语言程序设计》的学习非常重要,在《C语言程序设计》中提供了3种循环语句:while循环语句、do~while循环语句和for循环语句。其中,for循环语句是最难掌握和最难使用的一种语句,是整个C语言程序结构中的一个重点内容,也是初学者最难理解的一种语句。在《C语言程序设计》中,for循环语句是最常使用的“计数”型循环结构语句。解决实际问题时,一般情况下,如果题目中明确给出循环次数,应该首选for循环语句设计程序,因为for循环语句看起来结构最清晰、最紧凑,在语句结构中循环结构程序设计的四要素一目了然,而且执行效率高,使用灵活,可以完全取代while语句和do~while语句。当然,对于一些循环次数不明确的问题,同样也可以使用for语句来解决。

1 教学问题分析

for循环语句是3种循环语句之一,一般情况下,教学是在学生掌握了《C语言程序设计》的基本语法知识、顺序结构和选择结构,学习了while循环语句和do~while循环语句后,对循环结构程序设计的进一步学习。for循环语句对于那些没有学习《C语言程序设计》的初学者来说,的确有点难度。但是,学好for循环语句对后续章节内容的学习相当重要,因此,作为教师一定要清楚学生学好for循环语句的重要性,明确教学目标。对于学生而言,能够灵活地使用for循环语句解决实际问题,并非一件容易的事情。在多年教学实践中,笔者发现学生学习for循环语句时主要存在以下几个方面的问题:①不清楚什么样的问题需要循环结构来处理;②对for循环语句的执行过程不易掌握和理解;③不能灵活地使用for循环语句解决实际问题;④编写的程序经常出现死循环。2 教学问题解决

教师在教学过程中如何取得良好的教学效果,并很好地达到教学目标,离不开教师的“教”和学生的“学”,如何“教”和怎样引导学生“学”是教师所要探讨的问题。整个教学过程的教学设计、教学环节、教学方法、教学手段和教学思路都特别重要。对《C语言程序设计》这门课程中的for循环语句来说,根据知识点的特点,主要应采用案例教学法和任务驱动教学法,并通过迁移式指导的学习方法,引导学生学会如何运用新知识解决实际问题。

在教学活动中,学生掌握for循环语句的格式,并能够正确地理解for循环语句的流程和功能,对于学生学习和使用for循环语句来编写程序相当重要。所以,本节课的重点确定为“掌握for循环语句的结构”。学生掌握for语句的结构和用法并不困难,难的是在实际应用中,如何分析问题、解决问题,使程序变得更加简洁、高效。因此,本节课的难点确定为“for循环语句的应用”。为了取得良好的教学效果,让学生很好地掌握for循环语句,根据知识点的特点,设计的教学思路是:厚基础、抓重点、破难点。根据知识点难易程度的不同,把教学新内容由易到难、由浅入深地划分为3个层次进行讲解。

第一:讲解for循环语句的一般格式和流程。

在教学过程中,主要采用的办法是把教材原本复杂的内容简单化,变得易于理解和掌握。针对语句格式,首先讲解语句的一般格式:

for(表达式1;表达式2;表达式3)

{ 循环体语句; }

进一步讲解易于理解的应用格式:

for( 循环变量初始化;循环控制条件;修正循环变量 )

{ 循环体语句; }

最后讲解简化为容易掌握的四要素格式:

for( 1 ; 2 ; 4 )

{ 3; }

同时,为加深学生对知识点的理解,将for循环语句与while循环语句、do~while循环语句进行比较学习,并且强调应用for语句格式应注意的事项。

针对语句的流程,并没有讲解教材中描述的复杂流程图,而是想办法把复杂内容简单化后再讲解。在for循环语句四要素格式的基础上,给出一种能够将语句的流程在语句格式上体现得清晰、明了的 “语句格式流程图”。见图1。

在讲解了语句格式和流程后,紧接着采用案例教学法和任务驱动教学法,引导学生自己设计一个简单程序:运用for语句在屏幕上输出20个“*”。主要目的是给学生创造一定的条件,引导学生主动探索、独立思考、发现问题、分析问题和解决问题,以培养学生的探索精神和自学能力,从而提高学生学习新知识、解决新问题的能力。

第二:讲解for循环语句灵活多变的语句格式。

for循环语句灵活多变的格式是学习for循环语句的重点内容。紧抓重点,在教学活动中主要采用迁移式指导的学习方法,教师“举一”,主要以输出20个“*”的问题为例,培养学生“反三”,反复变化for语句的格式来解决同一个问题。结合循环结构程序设计的四要素,对for循环语句的各种形式进行详细地剖析,并且演示程序的运行结果,使学生完全透彻地理解for语句灵活多变的结构。从而解决教学的重点内容:for语句的结构,并从中拓展以提高学生对知识点的学习。

第三:for循环语句的应用。

运用for循环语句解决实际问题是教学的难点所在。教师在授课时应尽量结合生活中的实际问题,讲解程序设计的基本思想和方法。既让学生掌握for循环程序设计的思路和方法,同时教会学生学习新知识,并培养其解决实际问题的能力。在教学活动中通过解决一个实际问题:判断素数(输入一个正整数m,判断它是否为素数),来突破教学的难点内容。教学活动中采用了案例教学法和情景教学法,并辅以任务驱动及讨论的方式。从问题的概念出发,教学活动通过如下的一系列问答来开展:

问:什么是素数?

答:除了1和它本身,不能被其它数整除的数叫素数。

问:17是不是素数?

答:是。

问:你们是怎么知道17是素数的?怎么才能让计算机明白?

答:从2开始一个一个去找,看是否能找到一个能被17整除的数,如果找到了,就不是素数,如果找不到,就是素数。

教学的目的是为学生创造自主体验的情景和语言描述的情景,使学生在课堂上处于主体地位,并且为学生提供良好的暗示和启迪,从而锻炼学生的创造性思维,以培养学生的适应能力为目标。在学生主动参与教学活动的前提下,详细讲解算法分析,从而获得良好的教学效果。

算法分析如下:

判断一个数m是否为素数,需要判断该数是否能被除了1和自身以外的其它数整除,即判断m能否能被2~m-1之间的数整除。运用C语言算术运算符中的求余运算来判断整除。

设i取值\[2,m-1\],如果判断m不能被该区间上的任何一个数整除,即对每个i,m%i都不为0,则m是素数;但是只要m能被该区间上的某个数整除,即只要找到一个i,使m%i为0,则m肯定不是素数。显然,这个判断过程是一个循环问题。

从数学的角度考虑,m不可能被大于m/2的数整除,所以上述i的取值区间可以缩小到\[2,m/2\]。

引导学生编写程序代码如下:

#include

void main ( )

{ int i , m ;

printf (“ 请输入m的值:”);

scanf (“%d” , &m);

for ( i=2 ; i

if ( m%i==0 ) break ;

if ( i>m/2)

printf (“%d是一个素数\n” , m);

else printf (“%d不是素数\n” , m);

}

数学上可以充分证明,i的取值区间还可以缩小到\[2,sqrt(m)\]。从减少判断范围的角度出发,进一步优化程序的算法,编写出更加简洁、高效的程序,从而提高学生的程序设计能力,激发学生的编程兴趣。

#include

#include

void main ( )

{ int i , m ;

printf (“ 请输入m的值:”);

scanf (“%d” , &m);

for ( i=2 ; i

if ( m%i==0 ) break ;

if ( i>sqrt(m))

printf (“%d是一个素数\n” , m);

else printf (“%d不是素数\n” , m);;

}

为巩固学生对新知识点的掌握,安排课堂作业:仍然解决判断素数的问题,在以上讲解的基础上,引导学生从排除偶数的角度出发,进一步优化程序的算法,要求学生分组讨论问题,课堂完成作业。教学设计的主要目的是实现学生情感目标的培养,增强学生的编程兴趣,提高学生的学习积极性。

3 循环程序实现要点

实现循环结构程序必须具备4个组成部分:循环变量的初始化;循环控制条件;循环体语句;循环变量的修改。其中,最关键的是要确定以下两点:①归纳出哪些操作需要反复执行?――循环体语句;②这些操作在什么情况下重复执行?――循环控制条件。只要明确地分析出循环体语句和循环控制条件,那么循环结构也就基本确定了,再根据具体问题,加上循环变量的初始化和循环变量的修改,最后从《C语言程序设计》提供的3种循环语句中选择一种具体循环语句来实现程序代码。

4 结语

for循环语句在整个《C语言程序设计》的学习中相当重要,在程序设计中几乎是无处不用。因此,在教学过程中一定要想办法让学生很好地掌握for循环语句,为学好《C语言程序设计》打下坚实的基础。

参考文献:

\[1\] 廖雷.C语言程序设计\[M\].北京:高等教育出版社,2002.

[2] 谭浩强.C语言程序设计\[M\].北京:清华大学出版社,2000.

[3] 杨起帆.C语言程序设计\[M\].杭州:浙江大学出版社,2006.

[4] 杨路明.C语言程序设计教程[M].北京:北京邮电大学出版社,2006.

[5] 刘玉英.C语言程序设计――案例驱动教程\[M\].北京:清华大学出版社,2011.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值