论文部分内容阅读
在职业学校的计算机专业中,《C程序设计》是一门重要的专业课,也是一门较难掌握的课程。对于程序设计,学生多数基础薄弱,综合运用和思维能力较差。而且,C语言的语法繁杂,基本概念较多,教学内容丰富。要在有限的课时内完成教学任务,让学生掌握必要的知识和技能,仅仅围绕语法讲授是不行的,关键是要让学生学会如何活学活用,掌握编程的基本思想和基本方法。笔者在教学中,特别是在复习教学中,精选例题,一题多解,引导学生灵活运用各种算法和知识点解决实际问题。
在教学中,特别是复习教学中提倡一题多解,有助于培养学生的发散思维能力,有助于学生对课本知识的进一步理解,有助于提高学生的应变能力,有助于面向全体学生的分层次教学,有助于学生形成良好的科学素质和就业竞争力。
一、《C程序设计》的具体事例
在《C程序设计》的复习中,笔者采用一题多解的方法,引导学生思考,开拓学生的知识视野,取得了比较理想的教学效果。
例题:编程计算1 2 3 …… 100。
教学时,按照由浅入深、由易到难的基本原则,笔者引导学生采用下面八种方法解决:
第一种:
main()
{int i, s=0;
for(i=1;i<=100;i )
s=s i;
printf(“s=%d ”,s);
}
第二种:
循环段改为:for(i=100;i>=1;i-- --) s=s i;
第三种:
采用while语句:int i=1,s=0; while(i<=100)
{s=s i;i ;}
第四种:
采用do……while语句: int i=1,s=0; do {s=s i;i ;}
while(i<=100);
第五种:
采用等差公式: s=(1 100)×100/2.0;
第六种:
采用数组:int a[100],s=0,i; for(i=1;i<=100;i )
a[i]=i; for(i=1;i<=100;i ) s=s a[i];
第七种:
采用函数:int f(n) int n;{int s=0, i;
for(i=1;i<=n;i )
s=s i;
return(s);
}
main()
{printf(“%d ”,f(100));}
第八种:
采用指针:
int i,a[100],s=0,*p;
for(i=0;i<100;i )
a[i]=i 1;
for(p=a;p s=s *p;
或者把第二个for循环改为:
for(i=0;i<100;i )
s=s *(a i);
二、关于以上八种解法的分析
在这八个解法中,一般学生比较容易想到第一种,这也是教学时着重强调的一种方法。把这种方法中的循环控制变量i的初值变为100,就很容易得到第二种方法。采用这两种解法和第三、第四种解法的目的是使学生加深对常规循环程序的编程思想的认识,即设定循环控制变量、循环条件以及调整循环控制变量。同时,学生可以分析比较for语句、while语句和do……while语句。
如果不采用循环语句,利用数学上的等差公式,就得到第五种解法。以此提醒学生程序设计和数学方法是密切相关的。
在循环语句前加上对数组的定义和赋值,得到第六种解法。以此复习数组的语法以及数组、循环语句的结合使用。
把累加和的计算过程放到函数中,得到第七种解法,以此帮助学生复习函数的语法,函数参数的传递过程,以及体会“C语句是函数式的语言”这种特点。
最后一种方法是采用C语言的“精华”——指针。指针的概念比较复杂,应用也比较灵活。因此,学生初学时难以掌握。在复习时,经过前面八种方法的教学,再用指针结合数组编写程序,促使学生对指针的问题产生进一步的认识。如果进一步深入,还可以把指针和函数结合使用,得到新的解法。
职业学校的《C程序设计》课程的教学要求教师们注重知识的联系,选择和设计一题多解的习题,以此来调动学生积极思考,激发学生的学习热情,培养学生分析问题的意识,提高学生解决问题的能力,提高就业素质。
(作者单位:江苏省泗阳职业教育中心)
在教学中,特别是复习教学中提倡一题多解,有助于培养学生的发散思维能力,有助于学生对课本知识的进一步理解,有助于提高学生的应变能力,有助于面向全体学生的分层次教学,有助于学生形成良好的科学素质和就业竞争力。
一、《C程序设计》的具体事例
在《C程序设计》的复习中,笔者采用一题多解的方法,引导学生思考,开拓学生的知识视野,取得了比较理想的教学效果。
例题:编程计算1 2 3 …… 100。
教学时,按照由浅入深、由易到难的基本原则,笔者引导学生采用下面八种方法解决:
第一种:
main()
{int i, s=0;
for(i=1;i<=100;i )
s=s i;
printf(“s=%d ”,s);
}
第二种:
循环段改为:for(i=100;i>=1;i-- --) s=s i;
第三种:
采用while语句:int i=1,s=0; while(i<=100)
{s=s i;i ;}
第四种:
采用do……while语句: int i=1,s=0; do {s=s i;i ;}
while(i<=100);
第五种:
采用等差公式: s=(1 100)×100/2.0;
第六种:
采用数组:int a[100],s=0,i; for(i=1;i<=100;i )
a[i]=i; for(i=1;i<=100;i ) s=s a[i];
第七种:
采用函数:int f(n) int n;{int s=0, i;
for(i=1;i<=n;i )
s=s i;
return(s);
}
main()
{printf(“%d ”,f(100));}
第八种:
采用指针:
int i,a[100],s=0,*p;
for(i=0;i<100;i )
a[i]=i 1;
for(p=a;p s=s *p;
或者把第二个for循环改为:
for(i=0;i<100;i )
s=s *(a i);
二、关于以上八种解法的分析
在这八个解法中,一般学生比较容易想到第一种,这也是教学时着重强调的一种方法。把这种方法中的循环控制变量i的初值变为100,就很容易得到第二种方法。采用这两种解法和第三、第四种解法的目的是使学生加深对常规循环程序的编程思想的认识,即设定循环控制变量、循环条件以及调整循环控制变量。同时,学生可以分析比较for语句、while语句和do……while语句。
如果不采用循环语句,利用数学上的等差公式,就得到第五种解法。以此提醒学生程序设计和数学方法是密切相关的。
在循环语句前加上对数组的定义和赋值,得到第六种解法。以此复习数组的语法以及数组、循环语句的结合使用。
把累加和的计算过程放到函数中,得到第七种解法,以此帮助学生复习函数的语法,函数参数的传递过程,以及体会“C语句是函数式的语言”这种特点。
最后一种方法是采用C语言的“精华”——指针。指针的概念比较复杂,应用也比较灵活。因此,学生初学时难以掌握。在复习时,经过前面八种方法的教学,再用指针结合数组编写程序,促使学生对指针的问题产生进一步的认识。如果进一步深入,还可以把指针和函数结合使用,得到新的解法。
职业学校的《C程序设计》课程的教学要求教师们注重知识的联系,选择和设计一题多解的习题,以此来调动学生积极思考,激发学生的学习热情,培养学生分析问题的意识,提高学生解决问题的能力,提高就业素质。
(作者单位:江苏省泗阳职业教育中心)