C语言中循环结构的教学设计与实践
2018-09-17焦莉莉张丽丽
焦莉莉 张丽丽
摘 要 循环结构是结构化程序设计的三种基本结构之一,它既是程序设计的重点,也是难点。本文从实际出发,提出了问题驱动的渗透式渐进案例驱动引导教学法,帮助学员系统的理解和掌握循环结构。
关键词 C语言 问题驱动 案例驱动
中图分类号:G642 文献标识码:A
0引言
C语言程序设计是一门语法灵活、功能齐全、应用广泛的高级程序设计语言之一,它是后继程序设计课程的基础。而顺序、选择、循环是结构化程序设计的三种基本结构,任何一个能用计算机解决的问题,都能应用这三种基本结构写出程序解决。其中,循环结构是C语言程序设计中最为重要,也是最难掌握的一种结构。
在实际教学过程中,教员讲课多采用传统的授课方式,即先给出某个知识点,再阐述该知识点的语法形式及定义,最后举例说明。该方法忽视了学习C语言的关键是让学员掌握程序设计的思路并解决实际问题,从而导致教出来的学员只能看懂程序而不能使用C语言编写程序解决实际问题。
1循环结构的教学方法
针对C程序设计的循环结构教学,教员可根据知识点的特点,采用问题驱动的渗透式的渐进案例驱动引导教学法,使得学员掌握用所学知识解决实际问题的方法。该教学方法具有如下特点:(1)以问题为驱动激发学员的好奇心和学习兴趣;(2)通过案例讲解渗透到基本概念及执行过程,从而达到让学员潜移默化吸收知识的效果;(3)案例驱动教学法的关键在于选择包含对应知识点的经典案例,并采用由浅入深、由易到难、循序渐进的教学方法,引导学员发现和总结规律,再由教员对理论知识进行归纳总结,从而使学员进一步提高认识、加深理解,达到举一反三的目的;(4)语法规则和案例讲解完毕后,及时让学员进行课堂练习,既能巩固所学知识,又能提高解决实际问题的能力,从而达到学以致用的效果。
2教学过程的设计与实践
2.1提出问题,引入新课
从自然界中循环切入,再到学员生活中的循环——一日生活制度,图文并茂的引出循环的概念并抛出问题:如何编程实现输出大学四年生活的一日生活制度?
2.2 案例讲解,循序渐进
案例设计的基本原则是让学员理解循环结构的四要素:循环变量初始化、循环控制条件、循环体和循环变量的更新,并掌握各要素的功能及作用。具体案例如下:
案例1:求1+2+3+...+100的值。
分析:
S100 =100+S99;
S99 =99+S98;
…………
S2 =2+S1;
S1=1+S0;
S0 =0;
得出结论:
完成该题需重复执行100次操作,每次做:
(1) s=i+s
(2) i+=1
通过分析,给出如下程序:
s=0;i=1;
while( i<=100)
{ s=s+i
i+=1 }
2.3引导学员,归纳总结
根据上述程序总结出while循环的一般形式并归纳总结出循环结构四要素的功能及作用。
案例2:求100!.
分析:首先让学员直接在案例1的程序上进行修改,调试。很多学员只修改循环体,未修改初值,得到了错误结果,再对问题进行分析改正,从而加深对循环变量初值的理解。
根据while循环的一般形式及各部分功能,把程序推广到do while 和for 循环。一方面让学员进一步理解循环结构的四要素可以灵活变化,出现在不同的地方;另一方面让学员理解这三种循环语句可以相互转换。
s=1;
for(i=1;i<=100;i++)
s=s*i;
2.4师生合作,解决问题
案例3:输出大学四年生活的一日生活制度。
for(i=1; i<=365*4;i++)
{printf("6:20早操。\n")
printf("7:00早飯。\n ")
printf("8:10上课。\n ")
printf("12:00午饭。\n ")
printf("14:30上课或自习。\n ")
printf("16:30体能训练。\n ")
printf("19:00新闻联播。"\n)
printf("21:00晚点名。\n ")}
2.5拔高层次,拓展新知
案例4:求1!+2!+…+100!
讲解案例前,先让学员分析,借助案例2的结论分别求出1!、2!、100!,再累加。完成该程序需要双重循(下转第124页)(上接第88页)环,内层循环求n!,外层循环求累加和。具体程序如下:
sum=0;
for(i=1;i<=100;i++)
{ s=1;
for(j=1;j<=i;j++)
{ s=s*j;
sum=sum+s;}
}
案例5:求sum=1!+2!+…+n!,当累加和大于20000时就结束循环,并给出sum和n的值。
借助案例4的结论求累加和。完成该程序需要使用break语句结束循环,避免陷入死循环。具体程序如下:
sum=0;
for(i=1;;i++)
{ s=1;
for(j=1;j<=i;j++)
{ s=s*j;
sum=sum+s;
if(sum>20000) break;}
}
printf("sum=%d,n=%d",sum,n);
2.6闯关练习,巩固知识
语法规则和案例讲解完毕后,及时让学员进行课堂练习,教员对学员掌握知识的情况及解决问题的能力进行总结。这样既能巩固所学知识,又能提高解决实际问题的能力,从而达到学以致用的效果。
3结语
程序设计语言逻辑性较强,对非计算机专业的学员来说是最乏味的一门课程。本次课教员从如何编程解决学员日常的生活问题入手,很快就激发了学员的求知欲,调动了学习的积极性。后继通过渗透式的渐进案例驱动引导教学法,培养学员建立良好的逻辑思维能力和演绎推理能力。
实践表明,该教学方法符合学员的认知特点,由浅入深、由易到难、逐步分解、环环相扣,提高了学员学习的主动性,取得了较好的学习效果。
参考文献
[1] 曹海英,元元,郝兵.C语言中的循环嵌套结构程序设计[J].软件研发与应用,2017(27):17-19+22.
[2] 李娟,张燕.C语言循环结构教学的设计与实践[J].计算机教育:2018(03):89-91.
[3] 黄金国.基于项目化教学的“C语言程序设计”课程改革研究[J].吉林工程技术师范学院学报:2018,34(02):79-81.