C语言循环结构的教学设计探析
摘要:c语言循环结构设计是程序设计的基础,其也是结构化程序设计中三种基本结构中最为基本的结构之一。目的是为了能够提高教师在c语言循环结构的教学中能取得较好的教学效果,使学生更加容易理解和掌握。
关键词:c语言;结构化程序设计;循环结构;效率
中图分类号:tp312.1-4    文献标识码:文章编号:1007-9599 2012 17-0000-02
用循环结构输出几何图形
通过c语言输出实心三角图形如图1所示:
以上图形可以通过若干条printf输出语句完成,但是这只是简单的输出语句完成的图形,这与教师教学的项目要求不同,此图形的教学目的是通过图形的输出使学生灵活的掌握图形的构成与规律,通过循环结构的形式完成图形的输出。
例如图1中的(a)图形,其是以*号组成的实心三角形,在第一行的输出中是由一个*号和若干
个空格组成,经过回车换行;第二行的输出是由三个连续的*号和若干个空格组成,经过回车换行后;第三行的输出是由5个连续的*号和若干个空格组成,经过回车换行后;第四行的输出是由7个连续的*号和若干个空格组成,经过回车换行后;第五行的输出是由7个连续的*号和若干个空格组成。如果将号、空格数和*号数分别设为imn,建立关系表如表1所示:
通过上表1,观察行号i与空格数m、星号数n之间的数学关系为:
m=5-in=2×i-1
实心三角形的构成规律通过语言可以描述为,在第i行是由(5-i)个空格、(2×i-1)个星号和一个回车符组合而成。如果将行号i作为for语句的循环变量,则输出图形程序段为:
fori=1i<=5i++
{
/*输出(5-i)个空格;*/
form=1m<=5-im++
printf(“”);
/*输出(2*i-1)个星号;*/
forn=1n<=2*i-1n++
printf(“*”);
/*输出回车符;*/
printf(“\n”);
}
采用上面的方法,可以使学生很容易编写出类似的程序,其中的关键在于让学生出图形中行号与每一行的空格数以及星号数的关系(对于图1b)、(c)需要把图形分成几个部分,从而能够分析出他们之间构成的规律)。
数组中循环结构的应用
c语言中数组循环结构常用for语句对数组元素进行赋值、输入、输出,我们在写程序时,首先想到的就是顺序结构,如图2中左边所列举的编写形式,这种程序的编写方法较为复杂,通过观察可以看出左边程序中只有数组的下标不同,针对这一关系可以将左边的语句通过for语句建立循环结构,如右边程序,将数组的下标换成for语句的循环变量i,对i进行赋值,从04。根据c语言中for语句的语法规则,程序最终的输出结果与左边相同。
再举例,输出二维数组元素,其与输出素数方法相同,只是结构相对复杂一些。如图3所示,左边是按照顺序结构的方法编写程序,一共需要编写12条语句,程序编写方法比较复杂,通过观察可以看出左边程序中的数组下标发生变化,但是二维数组的行与列的下标同时都在变化,所以通过上例中的一条for语句无法完成循环结构,对左边的顺序结构进行分析发现每三条语句为一组进行划分,可以划分出4组可以用for语句建立循环结构,那么我们将列的下标通过循环变量j来替代建立for语句的循环结构,如图右边所示,可建立4for语句,对不不同行的下标通过循环变量i来代替,合并4for语句,最终简化为二重for循环的语句,同样可以输出二维数组元素。
通过上例分析,通常情况下我们对输出二维数组元素的编程思路都采用二重for循环与二维数
组相结合的方式来实现,但是在实际运用中,我们也可以通过一重for循环来实现输出二维数组元素。通过一重for循环来实现是无论数组下标如何变化,我们都可以首先确定输出语句printf一定会执行12次,那么如果采用一重for循环,那么循环变量i的值就需要从0递增到11。接下来我们可以分析数组行下标m和列下标n与循环变量i之间的关系,通过观察可以得出循环变量i=行下标m*3+列下标n,根据整数除法的思想,行下标m是循环变量i整除3后的商,而列下标n是循环变量i整除3后的余数,即:
m=i/3n=i%3
从而可以写出下面的for语句:
fori=0i<12i++
printf(“%d”,a[i/3][i%3]);
结束语
通过上面简单的c语言循环结构实例,能够使学生在刚刚接触c语言循环结构课程时,较为容
易的理解和掌握,并能够通过学习改变思维方式,理解程序设计中的精髓,通过c语言入门,往更深层的计算机语言学习,为成为一名合格的程序员而努力。同时教师通过建立c语言循环结构教学课件循序渐进的引导,帮助学生完成计算机语言课程内容的学习。
参考文献:
[1]古力米热·阿吾旦.c语言中for循环语句的应用研究[m].现代商贸工业,201013printf能输出空格吗.
[2]宁雪静等.高级语言程序设计课程整合研究[m].计算机教育,20092.
[3]田霓光.浅谈c程序设计中循环结构的教学[m].咸宁学院学报,20096.
[4]李霞.浅谈启发式教学法在c语言循环结构的应用[m].科学大众.科学教育研究,200910.
[5]胡绪英.c++语言中循环结构的教学设计[m].软件导刊,201011.

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