APP下载

C语言教学中的泛在学习一例

2017-12-19黄昌军李显峰柴荣军

课程教育研究·新教师教学 2017年9期
关键词:泛在学习C语言应用

黄昌军+李显峰+柴荣军

【摘要】教学过程中同一问题反复出现可以有效降低学习难度,提升学习效果。本文总结分析了斐波纳契数列问题在C语言的循环、数组、函数这三个典型知识点的中的应用,三种应用可以进行精心设计,制作成为相应的三段微课视频放在互联网上,方便学生使用移动终端进行访问,随时随地进行泛在学习。

【关键词】C语言;斐波那契数列;应用;泛在学习

【中图分类号】TP312.1-4 【文献标识码】B 【文章编号】2095-3089(2017)09-0012-02

斐波那契数列由中世纪的意大利数学家列昂纳多·斐波那契提出,起初仅仅是用来研究兔子繁殖问题,但是随着时间的推移,斐波那契数列的重要性日益凸显,在混沌学、化学、晶体结构学、数学、生物学、经济学等多个跨度极大的领域得到了十分广泛的应用。

由于其突出的重要性,斐波那契数列经常被称为“神奇的斐波那契数列”,其特征简而言之就是,数列的前两项都为1,从第三项开始,数列的每一项都等于其前两项之和,即数列的前若干项分别为1,1,2,3,5,8,13,21,34,55等等。从1963起,美国数学学会开始出版名为《斐波纳契数列季刊》的数学杂志,专门发表斐波那契数列方面的研究成果。

在C语言的教学过程中,斐波那契数列问题在循环、数组、函数等章节多次出现,以下对斐波那契数列问题在各章节的具体应用加以总结分析。

一、斐波那契数列在for循环中的应用

使用迭代法,结合C语言中使用频率最高的for循环,实现计算输出菲波那契数列的前20项的程序代码如下:

#include

void main()

{ int fib1,fib2,i;

fib1=1;fib2=1;

for(i=1;i<=10;i++)

{ printf(″%d \t%d \t ″,fib1,fib2);

if(i%2==0) printf(″\n″);

fib1=fib1+fib2;

fib2=fib2+fib1;}

}

这种方法的程序代码很简短,但是要让学生真正理解其实现过程还是比较难的。授课过程中需要把迭代法的实现过程,即“fib1=fib1+fib2;fib2=fib2+fib1;”这两条语句的执行过程给学生讲得很详细,让学生深入领会其中的编程技巧才能达到比较好的效果,

二、斐波那契数列在数组中的应用

数组的每个元素可以对应数列中的一项,因此使用数组也可以计算输出菲波那契数列。以下是使用数组,计算输出该数列的前20项的具体代码:

#include

void main()

{

int i,fib[21];

fib[1]=1;

fib[2]=1;

for(i=3;i<=20;i++)

fib[i]=fib[i-2]+fib[i-1];

for(i=1;i<=20;i++)

{

printf("%d\t",fib[i]);

if (i%4==0) printf("\n" );

}

}

程序中,数组长度定义为21,为了编程方便,只使用其中下标1到20的数组元素。可以发现,第一个for循环中的赋值语句和菲波那契数列的通项公式非常类似,因此,学生理解起来难度不高,明显要比第一种方法简单,不需要太多的编程技巧,体现出了数组的优点。另外使用这种方法时,数列的每一项都保存在对应的数组元素中,可以随时使用数列的任意一项,显然第一种方法是做不到这一点的。

三、斐波那契数列在函数中的应用

C语言是一种函数型的语言,C程序的基本组成单位就是一个个的函数。其中有一种函数叫做递归函数,递归函数的突出特征是自己调用自己。菲波那契数列的自身特征决定了它很适合用递归函数来实现。

我们可以编写一个递归函数计算菲波那契数列任意一项的值,然后在main函数中写一个for循环,在循环体中调用这个递归函数计算输出数列的前20项。

完整的程序代码如下,:

#include

long fib(int n)

{ long f;

if (n==1 || n==2)

f=1;

else

f=fib(n-1)+fib(n-2);

return(f);

}

void main(void)

{ int i;

for (i=1;i<=20;i++)

{ printf(“%ld\t”,fib(i));

if (i%4==0)

printf(“\n”);

}

printf(“\n”);

}

在第三種方法中,数列任意一项的计算和第二种方法类似,难度不高。在这段程序中,函数的返回值定义为long型,以使其可以计算的值更大一些,适用面更广一些。

从运行结果看,以上三个程序实现了完全相同的效果,都计算输出了斐波纳契数列的前20项,并且都是输出五行,每行输出四个,但是其实现过程完全不同。

以上总结分析了斐波纳契数列在C语言的三个典型知识点的中的应用,三种应用可以进行精心设计,制作成为相应的三段微课视频放在互联网上,方便学生使用移动终端进行访问,随时随地进行泛在学习。

参考文献

[1]黄昌军,李音,柴荣军. 素数问题在C语言教学中的应用[J]. 考试周刊,2015(89):118.

[2]黄昌军,柴荣军,张婷曼. 泛在学习典型应用平台探讨[J]. 现代商贸工业,2016(29):171.

[3]申云成,顾庆传. 用C语言程序实现斐波拉契数列的微课教学探讨[J]. 福建电脑,2014,30(6):147-149.

[4]孙义欣,宋大伟. 斐波那契数列问题的C语言教学实施探讨[J]. 电脑编程技巧与维护,2012(16):151-152.

[5]柴荣军,黄昌军,张婷曼. 基于智能终端的泛在学习个性化系统设计[J]. 新教育时代电子杂志:学生版,2016(1).

猜你喜欢

泛在学习C语言应用
“C语言程序设计”课程混合教学探索
基于C语言的计算机软件编程技术探究
中职C语言单片机课堂教学中的趣味性探讨
计算机原理中C语言的应用价值
基于微信公众号的区域历史文化泛在学习内容设计研究
泛在学习环境下的大学英语互动反馈教学模式研究
泛在学习资源的类型与应用研究
泛在学习中学习评价网络效用模型的构建与实践
GM(1,1)白化微分优化方程预测模型建模过程应用分析
煤矿井下坑道钻机人机工程学应用分析