浅析C语言中循环结构的教学方法
摘 要:循环结构是结构化程序设计中的三种基本结构之一,也是程序设计的基础。但对于初学者来说,由于循环结构与我们平常的思维方式不同,因此较难掌握。在学习这一部分时,学生往往会感觉到自己编写循环程序无从入手。本文结合实例阐述了在《C语言程序设计》课程中循环结构的教学方法,这些方法在日常授课中取得了良好的效果。
关键词:C语言;程序设计;循环
1. 前言
顺序结构、选择结构、循环结构是结构化程序设计的三种基本结构,一个程序的任何逻辑问题均可用这三种基本结构来描述。所以在高级语言程序设计课程中,掌握这三种结构是学好程序设计的基础。而循环结构是这三者中最复杂的一种结构,几乎所有的程序都离不开循环结构。在C语言中,循环结构主要包括for、while和do-while三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。本文从初学者的角度,阐述了C语言中如何建立循环的思想。
2. 如何设计引例
英文原版教材,循环是这样描述的:repeatation,重复。《辞海》上说循环是指事物周而复始的运动或变化。由这两个定义可以看出,循环重在强调重复。
2.1 运用实例解释循环思想
在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。例如:春夏秋冬四季的更替,汽车内燃机的作功过程:进气——压缩——燃烧——排气,叉车装货、运货、卸货的过程。3个例子的共性在于,它们都是周而复始的、重复的运动,为了研究问题本质,只要找出规律,将重复频率高的相同部分作为重点进行突破,可以为我们的研究节省时间,提高工作效率。
比如,我们要提高发动机效率,并不需要要研究千次、万次的燃烧过程,只要从研究一次进气、压缩、燃烧、排气一个周期入手;
再如运输问题,我们可以通过一次往返运输过程的研究,明确该从哪些环节下手实现安全、快捷、节能等问题。
2.2 编程中的循环问题
现在我们可以提出一个问题:在计算机程序设计的世界里是否也有类似的这种相同操作重复出现的问题呢?我们又当如何提高程序设计的工作效率呢?
利用最简单累加求和的例子。
例:求1+2+3+4+5+…+10的和。
利用所学知识学生很快能写出这个问题的程序:
#include<stdio.h>
main()
{int s;
s=1+2+3+4+5+6+7+8+9+10;
printf(〝%d〞,s);}
接下来把题目改成:求1+2+3+4+5+…+100的和。
同样学生可以利用上面的方法实现:
#include<stdio.h>
main()
{int s;
s=1+2+3+4+5+6+7+8+9+10;
printf(〝%d〞,s);}
在编写的过程中学生会发现此种方法虽然可行,可是写起来麻烦费时。我们如何对其进行改进呢?
首先,复杂操作简单化——将一个复杂操作化为多个简单操作;
#include<stdio.h>
main()
{int s=0;
s=s+1;
s=s+2;
s=s+3;
s=s+4;
………
………
………
s=s+100;
printf(〝%d〞,s);}
经过改进之后会发现,虽然每一行变简单了,但是行数却增加了,在工作量上并没有减少。经过观察可以发现,被框起来的部分虽然不同但已经十分相似。下面引导学生如何利用常量与变量的关系把不同的行变成相同的,也就是第二步变化。
接下来,简单操作相同化——多个简单操作整理成相同操作;#include<stdio.h>
main()
{int s=0,i=0;
i=i+1; s=s+i;
i=i+1; s= s+i;
i=i+1; s= s+i;
i=i+1; s= s+i;
………
………
………
i=i+1; s= s+i;
printf(〝%d〞,s);}
经过第二步之后会发现原本不同的语句变成了相同的语句,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环。下面就可以引出本节课的重点循环结构。
最后,相同操作重复化——设计控制相同操作执行多次。
#include<stdio.h>
main()
{int s=0,i=0;
i=i+1; s=s+i;
i=i+1; s= s+i;
i=i+1; s= s+i;
i=i+1; s= s+i;
………
………
………
i=i+1; s= s+i;
printf(〝%d〞,s);}
通过实例总结,循环结构程序设计的思想:
①复杂操作简单化——复杂操作化为多个简单操作;
②简单操作相同化——多个简单操作整理相同操作;
③相同操作重复化——循环控制相同操作重复执行
经过这几步变化可以将循环的思想简单明了的呈现在学生眼前,学生只有真正理解掌握了循环的本质,才能在以后的学习过程中很好的去运用。这种方法在日常教学中得到了很好的效果,也得到了学生的认可。
3. 循环本质
循环结构程序设计的任务就是设计一种能让计算机周而复始地重复地执行某些相同代码的程序。换句话说就是:相同语句程序员只编写一次代码、并让计算机多次重复执行。将程序员从大量重复编写相同代码的工作中解放出来,计算机的工作量并没有减少。
利用循环的好处是:节省编程的书写时间,减少程序源代码的存储空间,减少代码的错误,提高程序的质量。
这就是程序设计过程中循环的本质。
了解掌握了循环的本质接下来讲解循环的三要素、三种循环语句的结构及执行过程就很容易被学生接受了。
4. 结束语
此方法较以前的教学学法有了很好的改进,对于循环问题学生不再有畏惧感,也为以后数组及其他知识的学生打下了基础。
如何让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。
参考文献:
[1] 谭浩强. C 语言程序设计(第二版)[M]. 北京:清华大学出版社,1999
[2] 苏运霖译. 计算机程序设计艺术第1 卷 基本算法[M]. 北京:国防工业出版社,2002
[3] 浅谈C语言中循环结构的教学方法,王宏威
上一篇:天台自来水有限公司信息化建设