首页 > 范文大全 > 正文

一种C语言函数部分的新教学方案

开篇:润墨网以专业的文秘视角,为您筛选了一篇一种C语言函数部分的新教学方案范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文分析了学生在C语言函数学习过程中存在问题的原因,并从编程角度出发,提出了一种新的函数分类方法,给出了一种新的适合高职高专学生的教学方案,并将它与传统教学方案进行了对比。

关键词:C语言教学;函数分类;函数编程

中图分类号:G642 文献标识码:B

文章编号:1672-5913(2007)18-0056-03

1前言

很多从事C语言教学的高职高专老师感到学生学习函数时很吃力,而且效果不好。学生学了之后,语法知识知道一些,但具体编程能力则很弱。如何改变这种状况?下面先从分析传统教学方案开始。

为了便于叙述,下面我们所讨论的内容仅限于如何进行函数的定义与调用。

2传统教学方案概要及分析

目前大多数高职高专学校依然采用传统的教学方案,其概要如下。

2.1传统教学方案概要

(1) 教学目标

理解函数的基本概念,如形参、实参、调用等;掌握函数的定义、声明、调用等语法规定;掌握函数的参数使用格式及其数据传递的机理。

(2) 教学内容及安排

1) 函数定义的三种形式及其定义格式。具体包括:无参函数、有参函数、空函数。

2) 形参、实参与返回值。具体包括:形参、实参与返回值的概念;形参、实参的若干注意点;return语句的格式及其作用;函数类型,默认的函数类型。

3) 函数的调用。具体包括:函数调用以及函数调用的三种方式――函数单独作为语句、函数作为一个表达式、函数作为另一个函数调用的实参。

4) 函数的声明。具体包括:函数的声明格式、函数声明的位置,什么情况下可以省略函数的声明。

5) 函数定义和调用举例。

上述方案可以分为两部分,第一部分是语法知识,包括上述的1~4,第二部分是函数编程举例,即上述的5。

2.2传统方案在高职高专教学中的问题

(1) 语法角度的罗列对编程没有直接的指导作用

传统方案中,语法知识是从语法角度系统地进行罗列,从函数形式、参数等分别进行介绍,这种语法角度的罗列对编程没有直接的指导作用,学生编程时不知道该选择哪种形式。

(2) 开始时过多的语法介绍影响了编程实例的讲解效果

传统方案中首先系统详细介绍函数、形参、实参等概念与语法知识,这些概念讲授花了大量时间,学生的接受效果却不理想,后面的函数编程等实用知识的讲授时间不够,学生就更难以接受了。

(3) 编程思路与步骤方面的训练不够

对于高职高专学生来说,拿到一个涉及函数的编程题目,如何开始着手编程,应该采取什么样的步骤和思路,针对不同的问题如何采取相应的对策,这在传统教学方案中训练不够。

由于高职高专传统教学方案存在的上述问题,导致学生学完之后掌握了不少的语法知识,但碰到实际编程题目时还是有困难。

由此可见,设计一种新教学方案时,应该首先考虑编程能力的培养,为此我们提出一种新的函数分类方法。

3一种新的函数分类方法

从语法角度,通常是从参数个数和有无函数体方面将函数分为无参函数、有参函数、空函数三类,但这种分类方法对学生编程帮助不大。为了让学生能最快掌握编程方法,需要一种新的函数分类方法。

从编程角度,我们通常首先考虑编写函数的目的,然后着手编写和使用函数。根据编写函数的目的、功能或者说用途,函数可以被分为以下三类:

1) 求值类函数:使用这种函数是为了求一个值。如函数A,其功能是根据收入计算一个人的所得税。

2) 判断类函数:使用这种函数是为了检查一个判断是否成立。如函数B,其功能是判断一个整数是不是素数。

3) 操作类函数:使用这种函数是为了完成某一项操作。如函数C,其功能是将一个数组进行排序。

上述三种类型的函数在定义和调用时其方法均有明显的差异。学生拿到涉及函数的编程题目时,应该首先分析所要编写的函数是上述的哪一种类型,然后再采取相应的编程方法。

4新教学方案

基于上述新的函数分类方法,针对高职高专学生给出一种新的教学方案,其核心指导思想是:根据不同的函数类别,分别给出完整的一套编程方法,最快最直接地教会学生如何编写和使用函数。

4.1教学目标

新教学方案的教学目标只有一个:从编程角度出发进行教学,尽快让学生学会编写和使用函数。

4.2教学内容和安排

首先简单介绍一下函数最基本的概念,但不需占用过多教学课时,要把最主要的时间放在编程方法的传授。至于各概念与语法细节的进一步掌握,应该通过学生多编程而逐步加深理解。

(1) 通过认识法理解各概念

给出少数几个程序实例,引导学生认识函数、函数头、函数体、形参、实参、调用、定义等概念,在讲解概念时尽量简化,让出更多教学课时传授编程方法。

(2) 传授各种类型的函数编程方法

1) 求值类函数的定义与调用。讲解求值类函数定义和调用方法:

求值类函数的一般定义格式:

函数值类型 函数名(类型 形参1, 类型 形参2, ……)

{

根据形参的值计算所求的值;

return 结果;

}

求值类函数的定义步骤是:

① 编写函数头:根据函数所求值的数据类型确定函数值类型,分析函数要提供的参数及其类型从而确定形参。

② 编写函数体:根据提供的参数 (即形参) ,求出所需的值,最后返回 (return) 该值。

求值类函数在调用时通常作为表达式使用,可用于赋值、输出、运算、或作为另一个函数调用的实参。调用格式:

函数名(实参1,实参2,……)

在讲授中,应多举例子让学生完全理解与掌握其方法。

2) 判断类函数的定义与调用。讲解判断类函数定义和调用方法。

判断类函数是一种特殊的求值类函数,其值为1或者0,表示判断成立与不成立。因此判断类函数值的类型固定为int。下面给出判断类函数的一种参考格式:

int 函数名(类型 形参1, 类型 形参2, ……)

{

int f; /* 代表判断结果 */

根据形参的值进行判断,判断成立则令f为1,否则令f为0

return f;/* 将判断结果返回 */

}

判断类函数调用时通常用于在选择结构或循环结构中作为判断条件。如:

if (函数名(实参1, 实参2,......)==1)......

在讲授中,通过举例让学生完全理解与掌握其方法。

3) 操作类函数的定义与调用。讲解操作类函数定义和调用方法。

操作类函数不是为了求值,即函数没有值,其函数值的数据类型是void。函数体中不能使用return (值); 语句来返回一个值,但可以使用return来结束函数的运行返回到主调函数。

操作类函数定义格式:

void 函数名(类型 形参1, 类型 形参2, ……)

{

根据形参的值进行处理

return;/*或者无return */

}

操作类函数调用时通常单独作为语句,其调用格式:

函数名(实参1,实参2,……);

在讲授中,通过举例让学生完全理解与掌握其方法。

(3) 综合编程举例

再举若干编程例子,引导学生如何判断函数的类型,然后再根据前面传授的方法进行编程,巩固学生的编程能力。

4.3一个编程实例教学设计概要

下面给出一个具体编程实例的教学设计,为方便说明主要问题,忽略了其他的一些教学细节。

例:编写函数计算一个整数的阶乘。利用函数计算8!-4! 5!。

编程步骤:

1) 判断函数类型。所要编写的函数是为了求值――阶乘,因此是求值类函数,下面其定义和调用将采用前面给出的方法。

2) 编写函数头。函数值 (即阶乘) 的数据类型为int,因此函数的数据类型为int。求阶乘需要提供一个整数(即形参),据此可以写出函数头。

int jiecheng(int x)

3) 编写函数体。函数体的内容是求出形参 (在这里是x) 的阶乘,然后将其返回。

{

int r,i;

r=1;

for(i=1;i

return r;

}

4) 函数调用。main函数中调用求值类函数时,需要提供实参,然后将函数值作为表达式进行运算。

main()

{

printf("%d\n", jiecheng(8)-jiecheng(4)* jiecheng (5));

}

注意:在讲解时要时时联系4.2.2中的编程方法。通过例子的讲解使得学生对4.2.2中的编程方法加深理解并能灵活运用。

4.4若干注意点

(1) 语法细节的淡化

在传授编程方法时应尽量淡化或避开一些语法细节,比如避免在一开始过多强调函数的声明及其各种可省略声明的条件,可有意识地引导学生将函数定义在前、调用在后,避开函数声明;编程举例时避免向学生传授如何省略函数头前面的函数值类型,引导学生所有函数定义时都要加上类型说明;避免一开始就向学生传授参数传递的机理,可在编程举例时引导学生如何提供不同的参数让函数进行相应的处理,让学生对实参和形参有一个直观的认识。

(2) 掌握一种函数以后,再传授下一种函数

考虑到学生的接受能力,不要把求值、判断、操作这三种函数的编程方法一下子传授给学生。可以先传授求值类函数的编程方法,然后多举例子,让学生充分掌握后,再传授其他两种函数的编程方法。

(3) 涉及函数的程序分析

程序分析是提高程序调试与维护能力的基础。在学生能够顺利进行编程之后,可以对学生进行程序分析能力的训练。

避免在学生尚未掌握编程方法时就引导学生进行程序分析,等学生能熟练地自主编程以后,再引导学生进行程序分析,使得学生编程碰到错误时能够自己解决。

5两种教学方案对比

5.1目标定位与侧重点不同

传统教学方案中重点在于各语法知识点,编程方法则不突出;新教学方案中重点在于介绍三类函数的编程方法,语法知识点尽量淡化。

5.2传授的角度不同

传统教学方案从语法角度进行教学,有利于掌握语法知识点,不利于掌握编程方法;新教学方案从编程角度进行教学,与编程者编程时的思路更加吻合,更容易掌握方法。

5.3效果对比

传统教学方案的优势是能全面介绍语法知识,让学生能全面准确地理解所有概念和语法,劣势是基础较差的学生较难自主编程;新教学方案的优势是学生能很快自主编程,劣势是对个别概念和语法不能一下子全面准确掌握,需要在编程过程中逐步加深体会。

5.4适合的学生对象不同

新教学方案较适合高职高专类学生,对于基础较好的本科学生或者已经学过其他语言的学生,可采用传统的教学方案。

6结束语

笔者采用新的教学方案进行了三年的高职高专教学,与之前的教学情况相比,发现大部分学生均能较快掌握编程要领,自主进行编程。

参考文献

[1] 徐晓,匡泰,涂嘉庆等. C语言程序设计实践教程[M]. 北京:电子工业出版社,2006.

[2] 谭浩强. C程序设计 (第二版) [M]. 北京:清华大学出版社,1999.

作者简介:徐晓(1965-),男,温州大学城市学院讲师,电子邮件: