C语言循环嵌套结构教学设计探究
摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,通过教学实例的设计,由浅入深,采用类比、启发等多种教学方法,分析循环嵌套结构程序的设计思路与设计方法,帮助学生掌握C语言循环嵌套结构设计的实质,提高利用循环嵌套结构解决实际问题的能力。
关键词:C语言 循环嵌套 教学设计
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)03(a)-0120-02
The Inquiry Teaching Design of Nested Loop Structure on C Language
Duan Hongyi,Wang Huihui
(Science Department of Hetao College,Bayannaoer,Inner Mongolia,015000,China)
Abstract:The C program nested loop structure design is the key and difficult points in chapter C program loop structure teaching, is the follow-up data structure course algorithm in the most frequently used sentence, is the basis for complex programming. This paper will according to the actual situation of beginners, by design, the teaching examples from the shallower to the deeper, by analogy, inspiration and so on many kinds of teaching methods, design analysis and design method of loop nesting structure of the program, to help the students to grasp the essence of C language nested loop structure design, improve the ability of using the nested loop structure to solve the practical problems.
Key Words:C language;Loop nests;Teaching design
C语言是一门面向过程的结构化程序设计语言,其程序设计的基本结构单元主要由顺序结构、选择结构与循环结构三种基本结构组成。其中选择结构与循环结构在程序设计中最为重要且使用较多,对于后续课程数据结构来说,其算法实现主要以这两种结构为主,所以在学习数据结构之前,学生必须要通过C语言的学习打下良好的程序设计基础,深入理解并掌握这两种程序结构,并能够正确设计与阅读理解这两种结构的程序。在循环结构程序设计中,循环的嵌套程序设计是一个重点与难点内容,该文结合作者从教以来教授C语言的教学经验及心得体会,探讨如何教会学生理解并掌握循环嵌套结构的设计,提高利用循环嵌套解决实际问题的能力。
1 循环嵌套教学内容引入及设计
循环嵌套结构程序设计的基础是循环结构,在学习循环嵌套结构程序设计之前需要掌握C语言中实现循环结构的三种语句,while语句、do...while语句以及for语句,在此基础上学习循环的嵌套。首先需要知道循环嵌套的概念:一个循环的循环体内包含另外一个完整的循环结构,称为循环的嵌套,内嵌的循环还可以继续嵌套循环,构成多层循环。循环的嵌套结构本质上仍是一个循环语句,只不过其循环体为一个循环语句罢了。C语言中三种循环语句可以互相嵌套构成循环嵌套结构。由于for语句在C语言中最为灵活,下面以for语句为例来讨论循环的嵌套结构。
1.1 循环嵌套结构程序的引入
为了便于理解循环嵌套,首先举一个简单的循环结构的例子来引入嵌套。
例1:输出123456789。
该例子如果利用for循环设计,学生可以轻松写出如下语句。
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
如果对该例进行修改,要设计以下程序。
例2:输出5行123456789。对于该例来说,可以使用循环的嵌套来设计程序。
1.2 循环嵌套结构设计
我们可以利用循环语句的设计思路来解决这个问题,这个例子的关键在于循环体语句为输出123456789及换行符,即要循环5次123456789以及换行符。这里我们先把上述代码以及输出换行符语句看成一个整体即一个语句块。比如用语句块一来表示,则可以写出如下的程序代码。
int j;
for(j=1;j<=5;j++)
{
语句块一;
}
由于语句块一的代码为:
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
所以将语句块一用上述代码进行替换,可以写出例2完整代码如下:
int j;
for(j=1;j
{
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
}
通过这个例子看出,外循环决定内循环(把内循环看成一个整体)的执行次数,而内循环则控制每行内循环的次数。在这个例子中,内循环变量与外循环变量之间没有关系,下面我们再来看一个稍微复杂一些的例子,内循环变量执行的次数取决于当前的外循环变量,来进一步理解循环嵌套结构程序。
例3:设计程序输出如下的图案数字。
1 2
1 2 3
1 2 3 4
1 2 3 4 5
这个例子要打印5行数字,故外循环次数为5,设外循环变量为i,取值为1~5,再看每一行要打印的数字的个数为1,2,3,4,5,即循环的次数为1,2,3,4,5,假设用j表示内循环变量,那么,内循环变量与外循环变量有什么关系?假设我们要打印的是第i行上的数字,可以发现其打印的数字j取值为1到i。找到了规律就可以写出的循环嵌套程序段:
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf(“%d ”, j);
printf(“\n”);
}
通过这个例子我们可以引导学生,写出如下图案的程序段。
例4:设计程序输出如下的图案数字。
1 3
1 3 5
1 3 5 7
1 3 5 7 9
提示学生这个程序可以有2种写法。
第一种写法:通过观察,发现例3与例4只是每一行上输出的数字不同,即需要修改例3的内循环语句printf(“%d ”, j);即可。显然第i行上打印的是一个等差数列,其打印的第j个数字应为2*j-1。即例4对应的语句为printf(“%d ”, 2*j-1);
第二种写法:不改变例3的printf(“%d ”,j);输出语句,则需要修改内循环for(j=1;j<=i;j++),分析可知第i行的内循环次数为i,而打印的数字最大值j为2*i-1,后一个打印的数比前一个数大2,即步长为2,则将例3的内循环语句改为for(j=1;j<=2*i-1;j+=2)即可。
通过上面例
3、例4两个程序的设计,学生基本上能够掌握循环的嵌套结构了,对循环的嵌套有了更深入的理解,并能利用循环嵌套结构设计并解决简单的实际问题了。
例5:打印如下图的九九乘法表。
这个例子与例3比较相似,一共要打印九行,故外循环为9次,假设用i来表示外循环变量,其值应为1到9;第i行打印输出i个数,假设用j来表示内循环变量,即内循环变量j取值为1到i。并且能写出第i行第j个要打印输出的数为:printf(“%d×%d=%4d”,j,i,j*i);有了例3,例4的基础可以写出如下的程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%4d ”,j,i,j*i);
printf(“\n”);
}
2 结语
在循环嵌套结构设计教学中,教师要充分考虑学生的实际情况,要考虑不同专业、不同层次学生的理解能力,设计针对学生实际情况的教学用例,从浅显易懂的例子出发,逐步引导学生思考,采用类比,启发等多种教学方法,教学实践证明,这种方法能够很好的调动学生的学习积极性,学生的理解能力与程序设计能力有了明显的提高。
参考文献
[1] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.
[2] 刘井莲,赵卫绩.C/C++循环嵌套教学实践[J].电脑知识与技术,2012(25).
[3] 唐红杰.C语言循环结构教学探讨[J].软件工程师,2014(10):49-50.
[4] 刘运,程家兴.图形打印案例在计算机高级语言教学中的应用研究[J].山东农业工程学院学报,2014(6):48-49,58.
C语言循环嵌套结构教学设计探究
摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,通过教学实例的设计,由浅入深,采用类比、启发等多种教学方法,分析循环嵌套结构程序的设计思路与设计方法,帮助学生掌握C语言循环嵌套结构设计的实质,提高利用循环嵌套结构解决实际问题的能力。
关键词:C语言 循环嵌套 教学设计
中图分类号:TP31 文献标识码:A 文章编号:1674-098X(2015)03(a)-0120-02
The Inquiry Teaching Design of Nested Loop Structure on C Language
Duan Hongyi,Wang Huihui
(Science Department of Hetao College,Bayannaoer,Inner Mongolia,015000,China)
Abstract:The C program nested loop structure design is the key and difficult points in chapter C program loop structure teaching, is the follow-up data structure course algorithm in the most frequently used sentence, is the basis for complex programming. This paper will according to the actual situation of beginners, by design, the teaching examples from the shallower to the deeper, by analogy, inspiration and so on many kinds of teaching methods, design analysis and design method of loop nesting structure of the program, to help the students to grasp the essence of C language nested loop structure design, improve the ability of using the nested loop structure to solve the practical problems.
Key Words:C language;Loop nests;Teaching design
C语言是一门面向过程的结构化程序设计语言,其程序设计的基本结构单元主要由顺序结构、选择结构与循环结构三种基本结构组成。其中选择结构与循环结构在程序设计中最为重要且使用较多,对于后续课程数据结构来说,其算法实现主要以这两种结构为主,所以在学习数据结构之前,学生必须要通过C语言的学习打下良好的程序设计基础,深入理解并掌握这两种程序结构,并能够正确设计与阅读理解这两种结构的程序。在循环结构程序设计中,循环的嵌套程序设计是一个重点与难点内容,该文结合作者从教以来教授C语言的教学经验及心得体会,探讨如何教会学生理解并掌握循环嵌套结构的设计,提高利用循环嵌套解决实际问题的能力。
1 循环嵌套教学内容引入及设计
循环嵌套结构程序设计的基础是循环结构,在学习循环嵌套结构程序设计之前需要掌握C语言中实现循环结构的三种语句,while语句、do...while语句以及for语句,在此基础上学习循环的嵌套。首先需要知道循环嵌套的概念:一个循环的循环体内包含另外一个完整的循环结构,称为循环的嵌套,内嵌的循环还可以继续嵌套循环,构成多层循环。循环的嵌套结构本质上仍是一个循环语句,只不过其循环体为一个循环语句罢了。C语言中三种循环语句可以互相嵌套构成循环嵌套结构。由于for语句在C语言中最为灵活,下面以for语句为例来讨论循环的嵌套结构。
1.1 循环嵌套结构程序的引入
为了便于理解循环嵌套,首先举一个简单的循环结构的例子来引入嵌套。
例1:输出123456789。
该例子如果利用for循环设计,学生可以轻松写出如下语句。
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
如果对该例进行修改,要设计以下程序。
例2:输出5行123456789。对于该例来说,可以使用循环的嵌套来设计程序。
1.2 循环嵌套结构设计
我们可以利用循环语句的设计思路来解决这个问题,这个例子的关键在于循环体语句为输出123456789及换行符,即要循环5次123456789以及换行符。这里我们先把上述代码以及输出换行符语句看成一个整体即一个语句块。比如用语句块一来表示,则可以写出如下的程序代码。
int j;
for(j=1;j<=5;j++)
{
语句块一;
}
由于语句块一的代码为:
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
所以将语句块一用上述代码进行替换,可以写出例2完整代码如下:
int j;
for(j=1;j
{
int i;
for(i=1;i<=9;i++)
printf(“%d”,i);
printf(“\n”);
}
通过这个例子看出,外循环决定内循环(把内循环看成一个整体)的执行次数,而内循环则控制每行内循环的次数。在这个例子中,内循环变量与外循环变量之间没有关系,下面我们再来看一个稍微复杂一些的例子,内循环变量执行的次数取决于当前的外循环变量,来进一步理解循环嵌套结构程序。
例3:设计程序输出如下的图案数字。
1 2
1 2 3
1 2 3 4
1 2 3 4 5
这个例子要打印5行数字,故外循环次数为5,设外循环变量为i,取值为1~5,再看每一行要打印的数字的个数为1,2,3,4,5,即循环的次数为1,2,3,4,5,假设用j表示内循环变量,那么,内循环变量与外循环变量有什么关系?假设我们要打印的是第i行上的数字,可以发现其打印的数字j取值为1到i。找到了规律就可以写出的循环嵌套程序段:
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
printf(“%d ”, j);
printf(“\n”);
}
通过这个例子我们可以引导学生,写出如下图案的程序段。
例4:设计程序输出如下的图案数字。
1 3
1 3 5
1 3 5 7
1 3 5 7 9
提示学生这个程序可以有2种写法。
第一种写法:通过观察,发现例3与例4只是每一行上输出的数字不同,即需要修改例3的内循环语句printf(“%d ”, j);即可。显然第i行上打印的是一个等差数列,其打印的第j个数字应为2*j-1。即例4对应的语句为printf(“%d ”, 2*j-1);
第二种写法:不改变例3的printf(“%d ”,j);输出语句,则需要修改内循环for(j=1;j<=i;j++),分析可知第i行的内循环次数为i,而打印的数字最大值j为2*i-1,后一个打印的数比前一个数大2,即步长为2,则将例3的内循环语句改为for(j=1;j<=2*i-1;j+=2)即可。
通过上面例
3、例4两个程序的设计,学生基本上能够掌握循环的嵌套结构了,对循环的嵌套有了更深入的理解,并能利用循环嵌套结构设计并解决简单的实际问题了。
例5:打印如下图的九九乘法表。
这个例子与例3比较相似,一共要打印九行,故外循环为9次,假设用i来表示外循环变量,其值应为1到9;第i行打印输出i个数,假设用j来表示内循环变量,即内循环变量j取值为1到i。并且能写出第i行第j个要打印输出的数为:printf(“%d×%d=%4d”,j,i,j*i);有了例3,例4的基础可以写出如下的程序:
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf(“%d×%d=%4d ”,j,i,j*i);
printf(“\n”);
}
2 结语
在循环嵌套结构设计教学中,教师要充分考虑学生的实际情况,要考虑不同专业、不同层次学生的理解能力,设计针对学生实际情况的教学用例,从浅显易懂的例子出发,逐步引导学生思考,采用类比,启发等多种教学方法,教学实践证明,这种方法能够很好的调动学生的学习积极性,学生的理解能力与程序设计能力有了明显的提高。
参考文献
[1] 谭浩强.C程序设计[M].4版.北京:清华大学出版社,2010.
[2] 刘井莲,赵卫绩.C/C++循环嵌套教学实践[J].电脑知识与技术,2012(25).
[3] 唐红杰.C语言循环结构教学探讨[J].软件工程师,2014(10):49-50.
[4] 刘运,程家兴.图形打印案例在计算机高级语言教学中的应用研究[J].山东农业工程学院学报,2014(6):48-49,58.
《C语言循环结构》课程教学设计研究
作者简介作者简介:徐东(1972-),男,硕士,中国人民解放军海军大连舰艇学院讲师、教研室主任,研究方向为计算机视觉与人工智能、计算机教育。0引言
C语言程序设计中,循环结构、顺序结构和选择结构共同作为各种复杂程序的基本构造单元。C语言中几乎所有实用程序都包含循环,许多问题求解都可归结为重复执行的操作,比如数值计算中的方程迭代求根、非数值计算中的树的遍历等等。循环的特征是:在给定条件成立时,重复执行某程序段,直到条件不成立为止。教学实践证明,循环结构是整个C语言程序设计课程中的“拐点”,这个环节学好了,就有了进一步学习的兴趣,反之,则会让很多学生对C语言的深入学习望而却步。因此熟练掌握循环结构的概念及使用方法是程序设计最基本的要求之一。笔者通过总结学生学习C语言循环结构的一般心理思维规律,结合国内外优秀的计算机语言教学方法和模式,在讲授C语言循环结构程序设计环节的教学过程中,采取“双主体教学模式”,充分运用了项目实例教学、问题驱动教学、多媒体辅助教学等多种教学方法,重视学生的学习主体作用,在课堂教学中,以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,教师极尽启发、诱导、调动学生学习的主动性,使学生在掌握知识、形成能力、开发智力等方面得到最大发展。
1C语言公共课教学中存在的问题
C语言公共课程的授课对象均为非计算机专业学生,C语言教学总课时数也偏紧。C语言相对于计算机基础课程,它注重设计算法、书写程序并进行调试的整个过程,内容较为抽象、复杂,教学方法和学习方法都有极大的不同。笔者通过观察并与学生交流,发现很大一部分学生上课时能听懂课程,但程序一旦稍有改变就便不知所措,学生独立编程时更是无从下手,尤其到了循环结构设计阶段。究其原因,在教学方面存在以下问题。
1.1传统课堂教学方式存在一些弊端
通常,传统的C语言教学方法是选用经典教材,教师在讲解时先给出一般的语法格式,然后逐步讲解语法要点,再给出例子。传统教学方法比较适合基础差的学生,但此方式的缺点也是显而易见的,一方面不利于学生自学能力的培养;另一方面,对于基础好的学生会觉得太罗嗦,甚至因此丧失学习兴趣。多数学生对于这种按部就班讲编程的传统教学方式有厌倦心理,不愿意主动与教师在课后交流,依靠教师的现象比较严重。另外,很大一部分学生还在延续高中时的学习方法,缺乏自主学习的意识和能力。C语言毕竟是一门抽象、复杂的课程,知识点非常散。学生在学习C语言的过程中,在教学内容越来越多、编程越来越困难的情况下,很难自我保持学习的兴趣和热度。
1.2教与学比例不合理
教师在教学实施过程中,往往过于注重对知识的传授,过于强调教学方法,而实际上,C语言是一门实践性很强的课程,理论理解与实际演练密不可分,相辅相成,因而,整个C语言教学过程中如何分配教与学、理论与实践的比例,是学生学好C语言的关键因素之一。
1.3上机实作课时偏少
由于总课时数的限定,目前计划学时内安排上机实作学时不足以完成预订目标,以计划外形式安排课时,学生在自主学习能力较弱的情况下,学习效果不佳。
2双主体教学法
经过多年实践,我们在教学过程中采取了适合C语言公共课的“双主体互动教学模式”。双主体互动教学模式是新型的课堂教学理论,它突破传统教学中的“双主”理论,极其重视学生的学习主体作用,并引入“互动”观念,教、学双方相互影响,彼此促动。在课堂教学中,它以创造性贯彻“启发式教学原则”为基本特征,鼓励学生积极主动学习,提倡教师极尽启发、诱导、调动学生主动性之能事,在授课过程中,采用讲解、现场编程演示、幻灯片、提问、目光交流、练、学生自主学习相结合的方式,授课完毕后进行课堂小结,布置上机作业。
2.1采用实例教学法,提高学生对抽象概念的感观认识
实例教学法打破了以教材为中心的传统教学模式,不按教材的顺序授课,在讲课过程中,经常举一些与实际生活相关的事例,以精选出的程序实例为中心,把学习的重点放在具体实例讲述上,并引导学生自己去思考解决方案,从主观上让学生感受到成就感,从而保持他们的学习兴趣。整个教学过程中强调学以致用,在应用中学习,从而避免了枯燥、繁杂的理论说教,不仅增强了学生的学习积极性,而且对提高学生综合分析和解决实际问题的能力也大有帮助。
为了达到本课程的教学目的,让学生能更加深刻地体会到软件编程的实际作用,提高并保持对该课程的学习兴趣,本文引例就从“实弹射击训练分析系统软件”的编制任务开始,该软件编制任务共分5个阶段完成,编制过程将一直持续到本课程结束,并且会在后续章节中得到进一步完善。“实弹射击训练分析系统软件”具体任务安排:
第一阶段:能记录一名学生的打靶成绩(平均环数)。
说明:为简单起见,规定每名学生打10发子弹,记平均成绩。
第二阶段:能记录每个班的打靶总成绩(总平均环数)。
第三阶段:能对参训学生进行成绩排名;能对参训单位进行成绩排名。
第四阶段:在前3个阶段任务完成的情况下,进一步完善该软件的功能,学生可以添加自定义功能模块。
在简单介绍“实弹射击训练分析系统软件”的编制任务后,提出本次课的任务。运用实例启发学生,明确本节课要解决的任务,即寻求一种循环机制,能够自动循环地对10个成绩求和。这样,不仅激起了学生探究问题的兴趣,而且轻松地引入了本节课的教学内容:循环结构。接下来,就按照软件设计的步骤依次进行。
2.2采用进阶式问题驱动法,提高上机效率
在C语言教学过程中,上机操作是非常必要的。通过上机,学生不但可以进一步理解和掌握知识,而且许多不清楚或不理解的问题也迎刃而解。但在上机过程中,教师不要总是要求学生按部就班地解决问题,要让学生自己寻找解决方法,把学习的主动权还给学生,增强学生的自主学习能力,当然,教师的主导地位不能变。在组织学生上机实践的过程中,教师可以适当地设计一些连续的作业。例如,学完循环结构后,在上机时先带领学生分析一个程序,其功能是输出四行六列并且是由星形符号构成的图案[1,2]。教师可以通过以下步骤引导学生上机实践:
步骤1:教师可用多种编程方法进行程序演示。①利用普通的输出函数如何解决;②利用单循环如何解决;③利用双重循环如何解决;④说明双重循环的优点及特征,然后让学生自行编写并运行程序。
步骤2:待学生完成任务后,在原程序基础上,进一步提出新问题,让学生学会灵活编程。①若要输出每行“#”与“*”相间的四行六列图案应该如何修改程序;②若要输出每行两个连续的“#”和3个连续的“*”的四行五列图案应该如何修改程序;③若要输出用“*”组成的一个正三角形应如何修改程序;④行列数在这里是固定的,可否通过键盘随机输入,等等。
以上问题均可通过修改步骤1中编好的程序逐步解决,每次修改的幅度均不大,难度也是缓慢增加,学生在不知不觉中得到了编程的训练,在很短的时间内掌握了所学知识并灵活运用,学生会拥有成就感,同时会意识到,只要自己肯动脑,问题就会很快解决,从而激发了学生的学习主动性。
2.3以项目为牵引,强化学生课后自主学习
在完成一定的教学任务后,及时布置项目作业,训练学生对所学知识的灵活运用能力,并使每一阶段的内容有足够的焦点,让学生轻松消化每个知识。
在布置项目时,除要包含所学内容的焦点问题外,还要特别注意对新知识的迁移,也就是说,可以在项目中涉及少量的学生没有学过的知识点,促使学生主动探究、主动解决,教师在恰当的时候再给出解答方案,最后由学生自己总结得出项目结果。这么做不仅让学生学习的心态更加主动,而且让学生更具有成就感。
《C语言循环结构》教学设计方案
一、教学内容分析
循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机执行循环或退出循环。
二、学习者分析
循环结构是一种比较复杂的结构,在C语言中,循环结构主要包括for、while和do-while三种语句,其中for语句的应用更为普遍一些。循环语句的用法对于有程序设计经验的学生来说轻而易举,但是对于那些没有经验的初学者来说,难度却不小。在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环让一名初学者尽快摆脱日常的思维定式,更加透彻地理解和掌握程序设计中的基本思想,领会程序设计的精髓,总结出程序设计中每一种程序设计结构的本质及适合解决的问题,是高级语言程序设计这门课程在讲授过程中,应该时刻注意的问题。
三、教学目标
1.知识与能力
掌握循环构造的基本特点;区分多种不同类型循环结构的运行过程;掌握循环结构的格式及应用方法。
2.过程与方法
首先学会区分多种不同类型的循环结构,而后学会定义及应用方法,利用上机熟练应用技巧。
3.情感态度与价值观
我们必须抱有自己想学习的心态,多去问老师一些问题,那么你的漏洞将会越来越少,程序量和代码量才会越来越多。
四、重点难点及处理
1. 循环语句的的分类和定义
For循环、while循环和do-while循环
特点:在一个程序中可以通过变换语句来使用不同的循环语句,而不改变程序的功能。
2. 循环语句的引用
例如:要从1累加到100
使用For循环: for(sum,=0,i=1;i<=100;i++) sum=sum+i
使用while循环:while(i<=100) sum=sum+i
使用do-while循环:do {sum=sum+i;} while(i<=100)
五、教学准备
1. PPT教学课件
2. 实验操作:Visual C++6.0软件平台,PC电脑,教学机房,网络课堂。
六、教学思路(教学策略等)
在一堂课的设计过程中,引例的作用至关重要。一个好的引例能把抽象问题简单化、具体化,有利于学生理解掌握。在学习循环结构时可先利用现实生活中的一些具体实例来说明什么是循环以及为什么要研究循环。现在我们可以提出一个问题:在计算机程序设计的世界
里是否也有类似的这种相同操作重复出现的问题呢?利用最简单累加求和的例子。
例:求1+2+3+4+5+„+100的和。
下面就可以引出本节课的重点,通过分别使用For循环、while循环和do-while循环来完成本程序,我们在整个过程中都做着重复的、相同的事情,也就是前面所说的循环,在试着写出比较简单的程序时,可以试着选择素数或者奇数累加来增加难度,还可以使得让学生接受和探究双重循环。
七、教学过程 教学引入
掌握掌握循环结构的基本特点:for语句、while语句和do-while语句 如何计算1+2+3+4+„+100 知识点学习
1) for循环是循环的一种标准形式,通过for语句实现,其语法如下:
for(①;②;③) ④
①表达式,通常用于循环的初始化。包括循环变量的赋初值、其他变量的准备等;
②表达式,循环的条件判断式,如果为空则相当于真值;
③表达式,通常设计为循环的调整部分,主要是循环变量的变化部分; ④循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。
2) while循环通过while语句实现。while循环又称为“当型”循环,其语法如下
while(①) ②; ①表达式,循环的条件判断式, 若值为0,则结束循环,退出while语句;若值为非0,则执行循环体
②循环体,由一条或多条语句构成,多条语句需要用一对花括号括起来。
3) do-while循环,又称为“直到型”循环,用do-while语句来实现,其一般格式为:
do { ①; } while(②); do-while语句的执行过程为:
先执行循环体①,再判断表达式②的值。若值为0,则结束循环,退出do-while语句;若值为非0,则继续执行循环体
4) break语句、continue语句和goto语句
break语句不能用于循环语句和switch语句之外的任何其他语句中,功能为无条件退出循环。
continue语句只结束本次循环,判断下一次循环环条件,满足继续循环,否则退出循环。
goto语句为无条件转向程序中的某条语句。
思考与探究
分别使用For循环、while循环和do-while循环来累加出1-100之间的奇数和。
实践与操作
不管是用or循环、while循环和do-while循环都好,核心算法是类似的,由于要累计出1-100之间的奇数,定义i从1开始,每次累加2即可,把i赋值给sum,直到i大于100即跳出,例使用while循环写出如下语句:
#include void main() { int i,sum; i=1;sum=0; while(i<=100); { sum=sum+i; i=i+2; } printf("s=%d\n",s); } 教学总结
循环结构是面向过程编程中三种结构中最重要的一种结构,学好它是学好这门课程的关键。本章介绍的内容主要是For循环、while循环和do-while循环,同时也介绍了下break语句、continue语句和goto语句。while循环和do-while循环的条件判断一个在前,一个在后,为导致循环体执行的次数不同,需要密切注意;for循环为标准的功能很强的循环,通常用于可控制的循环,对于程序的维护和阅读都是最佳选择。循环结构的实质是重复执行一系列语句,这种重复性是在循环条件的有效控制之下完成的。程序的关键在于如何控制循环的条件,在恰当的时机由“真”变“假”而退出循环。
八、形成性评价试题
如题所示计算表达式s=1+(1+2)+(1+2+3)+„+(1+2+3+4+„+10),请写出程序并计算出S的值。
#include void main() { int i,j,s=0; for(i=1;i<=10;i++) for(j=1;j<=i;j++) s=s+j; printf("s=%d\n",s); }
认识(实习)报告 实验(实习)名称循环结构程序设计 日期得分指导教师系专业年级班次姓名学号
一、 实验目的
(1)掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。
⑵了解条件型循环结构的基本测试方法。
⑶掌握如何正确地控制技术型循环结构的次数。
⑷了解对技术型循环结构进行测试的基本方法。
⑸了解在嵌套循环结构中,提高程序效率的方法。
二、 实验内容
1. 输入一个正整数,并将其颠倒过来,如12345对应54321.
程序 :
#include
#include
int main()
{
int n,m,t=0;
scanf("%d",&n);
if(n<0)
{
printf("数据输入错误!\n");
exit(0);
}
while(n!=0)
{
m=n%10;
t=t*10+m;
n=n/10;
}
printf("反序数为: %d\n",t);
return 0;
}
运行:
12345
反序数为: 54321
Press any key to continue
2.将一个长整型数s的每一位数位上的偶数依次取出来,构成一个新的数t,其高位仍在高位,低位仍在低位,如s=87653142时,t中的数为8642.
程序:
#include
int main()
{
long s,t=0,p=1;
scanf("%ld",&s);
while(s!=0)
{
if((s%10)%2==0)
{
t=t+(s%10)*p;
p=p*10;
}
s=s/10;
}
printf(“%ld",t);
return 0;
}
运行:
87653142
8642
Press any key to continue_
3.判断101~200之间有多少个素数。
程序:
#include
#include
int isprime(int m);
int main()
{
int n,s=0;
for(n=101;n<=200;n++)
{
if(isprime(n))
s++;
}
printf("%d\n",s);
return 0;
}
int isprime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
运行:
21
Press any key to continue_
三、 分析与讨论
(1) 总结条件循环结构的一般方法。
(一)for循环
for循环的一般形式为:
for(;;)
{
语句序列
}
(1)先求解表达式1,然后求解表达式2,若其值为真(true),则执行for语句中内嵌的循环语句;若其值为假(false),则结束循环转到{ }后面的语句执行。
(2)求解表达式3。
(3)转回上面求解表达式2,继续执行。
(4)循环结束,执行for语句下面的一个语句。
(二)while语句
while(表达式)
{
语句序列
}
其语义是,首先计算表达式的值,当值为真(true)时,返回循环体语句;当值为假(false)时结束循环。直到表达式的值为0,则执行结构后面的语句。
特点:先判断,后执行。
(三)do-while语句
do
{
语句序列
}while(表达式);
特点:先执行,后判断。
当循环条件为真(true)时反复执行循环体,直到循环条件为假(false)终止循环。因此,其循环体将至少被执行一次。
如果for、while或do-while循环控制语句的循环体中又包含循环控制语句就构成了嵌套循环。这3种循环语句之间可相互嵌套,构成复杂的逻辑嵌套结构。
(2)如何测试计数型循环结构的控制表达式中的错误?
断点,或使用try,catch抛出异常
(3)从实验中你得到了哪些提高嵌套循环程序效率的启示?
1.注意把循环次数大的循环放在嵌套语句的外层可以产生较好的效率.
2.灵活、巧妙运用三种循环语句结构来实现嵌套。