论文部分内容阅读
【摘要】教学过程中同一问题反复出现可以有效降低学习难度,提升学习效果。本文总结分析了斐波纳契数列问题在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语言;斐波那契数列;应用;泛在学习
【中图分类号】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).