循环结构程序设计一》教学案例
背景介绍
目前最著名、最有影响、应用最广泛的while语句简单例子windows、Linux和UNIX三个操作系统都是用C语言编写的。os是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用C语言编写,从狭义而言,还有什么系统软件和应用软件不能用C语言编写呢?由此可以肯定的说,C语言是一门十分优秀而又重要的语言。
C语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科院校的一门基础课程。
在一般的C语言教学中,都采用先讲解知识点。再根据所讲知识点,有针对性的进行练习。从而达到教学目的。而在教学过程中,学生普遍感到原理枯燥难懂,知识点难背难记,因此学生易产生厌学、畏难情绪。解决这个问题的关键是教学中如何激发学生学习兴趣,充分发挥学生的主体作用,培养学生学习能力,变“学会”为“会学”,从而将该课程的复习化难为易。
于是在《循环结构程序设计一》这堂课中,采用了任务驱动式的教学方法。在课堂开始就围绕本节课的学习目标提出一个总体编程任务,然后通过对与任务相关知识点的学习,让学生进行编程。提高学生的学习兴趣,改善学习方法。最后从“学会”向“会学”转化。
教学过程
教学步骤1:新课的引入(教师讲授,幻灯片演示)
许多实际问题中往往需要有规律地重复某些操作,如菜谱中可以有:“打鸡蛋直到泡沫状”这样的步骤,也就是说,在鸡蛋没有打成泡沫状时要反复地打。相应的操作在计算机程序中就体现为某些语句的重复执行,这就时所谓的循环。
[教后札记]:通过一个贴近我们日常生活的例子解释C语言中循环的概念。一方面一些还没有从下课状态进入上课状态的学生马上抬起头来听你讲课了。另一方面教师以后提问学生什么什么是C语言中循环的概念,学生能马上联想到不就是老师课堂上“打鸡蛋”的过程吗。方便学生去联想性记忆。
教学步骤2:学习任务的引入(幻灯片演示,教师引导)通过一个简单任务的引入,提出学
习循环结构的意义。思考一个问题:如何编程来计算1+2+3+…+100?程序如下:ints=o;
s=s+1;
s=s+2;
s=s+3;
s=s+1oo;
printf(“s=%d”,s);
重复1oo次,晕
提出问题:有没有更好的方法来计算呢?
有!就是用循环来编程。
在前面的学习中,我们已经学习了顺序结构和选择结构程序设计的方法,今天学习的就是利用循环结构来进行程序设计的方法。
[教后札记]:通过一个简单的学习任务来贯穿整堂课的学习,本课中所有学习的知识点就是为解决这个学习任务,学生最后进行编写程序、调试。这个程序最后能够独立的编写,那么学生对于书中那些知识点概念是否理解,我想,已经不是那么重要了吧。
课堂上不足的地方就是在引出这个任务后,是让学生各自独立去想一想是否能解决这个任务,其实完全可以采用小组讨论的方法。这样可以集思广益,或许学生们能到点自己的思路,那么剩下的时间只需要去引导学生自己去方法,学习知识,最后解决问题了。同时也可是增加课堂气氛。
教学步骤3:展示学习目标(幻灯片演示)
能复述循环结构中while语句,do-while语句各自的特点;
能指出循环结构中while语句,do-while语句在程序中的正确使用方法;能利用while和do-while语句独立的进行所布置任务程序的设计与调试。
教学步骤4相关知识学习
1、While语句
while语句一般形式:
while(表达式)
循环体语句;
执行流程:
特点:先判断表达式,再执行循环体一个简单任务的编程
#includevstdio.h>
voidmain()
{
inti=1,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
运行结果:
sum=5050
一:出程序中的循环初值、循环终值、循环条件、循环体循、环变量增值?课堂练习
【例】显示1〜10的平方
#include<stdio.h>
voidmain()
{
inti=1;
while(i<=10)
{
printf("%d*%d=%d\n",i,i,i*i);
i++;
}
}
运行结果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100
while语句注意事项:
如果while后的表达式的值一开始就为假,循环体将一次也不执行。
inta=0,b=0;
while(a>0)〃a>0为假,b++不可能执行
b++;
循环体中的语句可为任意类型的C语句。
遇到下列情况,退出while循环:
表达式为假(为0)。
循环体内遇到break、return或goto语句(break和goto语句将在随后介绍)。
intnum=0;//字符计数
while(1)
{
if(getche()=='\n')//如果输入的字符是回车符,则返回
return;
num++;
}
在执行while语句之前,循环控制变量必须初始化,否则执行的结果将是不可预知的例:计算10!
#include<stdio.h>
voidmain()
{
inti;//i应赋初始值10
longs=1;
while(i>=1)
s*=i--;
printf("10!=%ld\n",s);
}
要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。
i=1;
while(i<100)〃死循环,因为i的值没变化,永远小于100
sum+=i;
printf("sum=%d\n",sum);
允许while语句的循环体又是while语句,从而形成双重循环。
i=1;
while(i<=9)
{
j=1;
while(j<=9)
{
printf("%d*%d=%d\n",i,j,i*j);
j++;
}
i++;
}
2、do-while语句
do-while语句一般形式:
do
循环体语句;
while(表达式);
执行流程:
特点:先执行循环体,再判断表达式
其中:
while后面的括号()不能省。
while后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑表达式。
表达式的值是是循环的控制条件。
语句部分称为循环体,当需要执行多条语句时,应使用复合语句。
一个简单任务的编程
#include<stdio.h>
voidmain()
{
inti=1,sum=0;
do
{
sum+=i;
i++;
}while(i<=100);
printf("sum=%d\n",sum);
}
运行结果:
sum=5050
do_while语句注意事项:
(1)如果do-while后的表达式的值一开始就为假,循环体还是要执行一次。
inta=0,b=0;
do
b++;
while(a>0);
(2)在if语句、while语句中,表达式后面都不能加分号,而在do-while语句的表达式后
面则必须加分号,否则将产生语法错误。
(3)循环体中的语句可为任意类型的C语句。
(4)和while语句一样,在使用do-while语句时,不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。
(5)要在do-while语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。
(6)do-while语句也可以组成多重循环,而且也可以和while语句相互嵌套。
[教后札记]:在相关知识点内容的组织上较为满意,当然是在借鉴了很多资源后的结果。在相关知识点的讲解上,作为一名新教师,尽自己最大的努力去做到讲慢、讲细、讲精。这方面的基本功目前感觉还有所欠缺。需平时多听其他老师的课,去借鉴他们一些好的教学思想和方法。另外,在语言上也欠严谨。平时上课的时候需多注意。
教学步骤5:课堂小结
本课主要讨论了循环结构程序设计的有关方法,重点介绍了与C语言循环控制结构有关的while语句和do-while语句.
循环次数及控制条件要在循环过程中才能确定的循环可用while或do-while语句。
教学步骤6:布置作业
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论