论文部分内容阅读
摘 要:冒泡法是C语言中常用的分析方法,在C语言的教学中是掌握排序的重要方法,在汇编语言的排序中也常常使用,提出了在两种语言设计中的教学不同点,便于提高教学质量,并且使学生更好的掌握程序设计的方法。
关键词:冒泡法;C语言;汇编;教学方法
中图分类号:TP3.0
冒泡法是排序的一种方法,冒泡法和冒泡排序实是一个定义。之所以叫冒泡法,即是像在水中的气泡一样,在一轮两数比较之后将最小(或最大的数字)排在一列数的左边(当然右边也行,总之是一边)。然后排开这个数,经过N-2排开之后,整列数的大小就是按顺序来的。排序是为了将一组杂乱的数据变成一组有序的数据。排序法的使用时非常频繁的,在实践中,人们设计出了许多好的算法,如交换排序、插入排序、以及选择排序等等。各种算法有其自身的特点与适用范围,其中冒泡法在很多语言程序设计中都使用的很广泛,在这里主要分析冒泡法在汇编语言和C语言程序设计中的教学方法的不同,更好的启发学生开拓思维,提高变成的动手能力。
1 C语言编程中冒泡法的教学分析
1.1 C语言设计的特点
(1)紧凑简洁、方便灵活。C语言总共有9种控制语句和32个关键字,,用大小写字母就可以编写,书写灵活,语句简洁。C语言可以对字节、地址等进行赋值和使用,使用灵活方便。(2)运算符丰富,可以实现多种的复杂和简单的运算,而且语句简单,使用方便。(3)数据结构丰富C的数据类型有:整型、字符型、实型、数组类型、共用体类型、指针类型、结构体类型等。能引入了指针概念用来实现各种复杂的数据类型的运算,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且逻辑判断功能、计算功能强大。(4)C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分可以独立的使用。这种结构化方式可使程序便于使用、维护以及调试,层次清晰。C语言函数可方便的调用,并具有条件语句控制程序流向,多种循环、从而使程序完全结构化。是以函数形式提供给用户的。(5)C语法限制不太严格、程序设计自由度大。(6)C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有低级语言的许多功能,高级语言的功能,又能够像汇编语言一样对字节、地址和位进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7)C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%。(8)C语言适用范围大,可移植性好。
1.2 C语言设计中冒泡法的使用
冒泡法是一种排序方法:
冒泡法54321。比如上面这5个数字我们把它按照由小到大的顺序排列,从前往后相临两位比较大小,如果前一位比后一位大就把它俩换位,5比4大就把5和4换位,得到45321。
5又比3大 5和3换位得到43521依次类推最后得到43215这样就把最大的一个数字移到最后面了,然后不看5,剩下4321再用上面的方法把4移动到最后得到32145 在不看45 剩下321把3移动到最后,依此类推,最终得到12345,所以形象的称为冒泡法。
这就是冒泡法,是计算机编程排序中最简单快捷的方法。除此意外我还能写出许多排序方法,但是效率上都不如冒泡法。
————————————————————————————————
以下是C语言中十个数的冒泡法排序的代码
#include
#include
int main(void)
{
long arrary[9],
box=0L;
int i1=0,
i2=0;
for(i1=0;i1<9;i1++)
arrary[i1]=0;
printf("输入数组元素:\n");
for(i1=0;i1<=9;i1++)
{
printf("%3d>",i1+1);
scanf("%d",&arrary[i1]);
}
for(i1=0;i1<=9;i1++)
for(i2=0;i2<=9-i1;i2++)
{
if(arrary[i2] {
box=arrary[i2+1];
arrary[i2+1]=arrary[i2];
arrary[i2]=box;
}
}
printf("\n排序后为:\n");
for(i1=0;i1<=9;i1++)
printf("%3d>%d\n",i1+1,arrary[i1]);
getch();
return 0;
}
2 单片机中汇编语言程序设计的冒泡法
2.1 单片机语言中汇编语言的设计方法
单片机基础设计中常用的是汇编语言,汇编语言是面向底层的实际语言之一,常用的指令按照功能来划分有数据传送指令、算术运算指令、逻辑运算指令、位操作指令、控制转移指令等,指令丰富,便于操作。
2.2 汇编语言中冒泡法的教学方法举例
编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。在这个设计中典型的冒泡法设计有汇编的特点,流程图如图1所示:
图1 流程图
在汇编语言的程序设计中,设置了标志位00H,当在一次循环比较中,凡是有大小数字进行交换的时候,就设置标志位为1,这样在从50H进行再一次的循环交换直到数字由小到大排列为止,在KEIL的环境下可以运行并显示结果,如图2所示:
?
排序前的赋值情况:
排序后的结果:
3 结束语
在C语言的程序设计中,需要用的语句简单,而且还可以设计循环函数,实现自己的不断比较进行排序,而在汇编语言程序设计中,这种方法的使用不是很恰当,要设置标志位和条件转移指令进行排序,要设置每次排序的指针,相对语言要更加紧凑,条理些,作为教师要善于发现每种教学方法的異同点,更好的服务于教学中,提高教学质量。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2010.
[2]张婕等.最短路径动态规划问题及C语言实现[J].内蒙古农业大学学报(自然科学版),2012(02).
[3]武晓燕.C语言在单片机技术中的应用[J].价值工程,2010(36).
[4]曹莎莎.C语言教学研究与思考[J].价值工程,2012(01).
[5]王窕珊.C语言编程教学方法探讨[J].计算机光盘软件与应用,2011(09).
作者简介:田嵩(1981-),女,硕士,研究方向:计算机应用技术。
作者单位:湖北理工学院计算机学院,湖北黄石 435003
基金项目:湖北理工学院青年项目(项目编号:13xjz060);2012湖北理工学院校级教研项目(项目编号:201229)。
关键词:冒泡法;C语言;汇编;教学方法
中图分类号:TP3.0
冒泡法是排序的一种方法,冒泡法和冒泡排序实是一个定义。之所以叫冒泡法,即是像在水中的气泡一样,在一轮两数比较之后将最小(或最大的数字)排在一列数的左边(当然右边也行,总之是一边)。然后排开这个数,经过N-2排开之后,整列数的大小就是按顺序来的。排序是为了将一组杂乱的数据变成一组有序的数据。排序法的使用时非常频繁的,在实践中,人们设计出了许多好的算法,如交换排序、插入排序、以及选择排序等等。各种算法有其自身的特点与适用范围,其中冒泡法在很多语言程序设计中都使用的很广泛,在这里主要分析冒泡法在汇编语言和C语言程序设计中的教学方法的不同,更好的启发学生开拓思维,提高变成的动手能力。
1 C语言编程中冒泡法的教学分析
1.1 C语言设计的特点
(1)紧凑简洁、方便灵活。C语言总共有9种控制语句和32个关键字,,用大小写字母就可以编写,书写灵活,语句简洁。C语言可以对字节、地址等进行赋值和使用,使用灵活方便。(2)运算符丰富,可以实现多种的复杂和简单的运算,而且语句简单,使用方便。(3)数据结构丰富C的数据类型有:整型、字符型、实型、数组类型、共用体类型、指针类型、结构体类型等。能引入了指针概念用来实现各种复杂的数据类型的运算,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且逻辑判断功能、计算功能强大。(4)C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分可以独立的使用。这种结构化方式可使程序便于使用、维护以及调试,层次清晰。C语言函数可方便的调用,并具有条件语句控制程序流向,多种循环、从而使程序完全结构化。是以函数形式提供给用户的。(5)C语法限制不太严格、程序设计自由度大。(6)C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有低级语言的许多功能,高级语言的功能,又能够像汇编语言一样对字节、地址和位进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7)C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%。(8)C语言适用范围大,可移植性好。
1.2 C语言设计中冒泡法的使用
冒泡法是一种排序方法:
冒泡法54321。比如上面这5个数字我们把它按照由小到大的顺序排列,从前往后相临两位比较大小,如果前一位比后一位大就把它俩换位,5比4大就把5和4换位,得到45321。
5又比3大 5和3换位得到43521依次类推最后得到43215这样就把最大的一个数字移到最后面了,然后不看5,剩下4321再用上面的方法把4移动到最后得到32145 在不看45 剩下321把3移动到最后,依此类推,最终得到12345,所以形象的称为冒泡法。
这就是冒泡法,是计算机编程排序中最简单快捷的方法。除此意外我还能写出许多排序方法,但是效率上都不如冒泡法。
————————————————————————————————
以下是C语言中十个数的冒泡法排序的代码
#include
#include
int main(void)
{
long arrary[9],
box=0L;
int i1=0,
i2=0;
for(i1=0;i1<9;i1++)
arrary[i1]=0;
printf("输入数组元素:\n");
for(i1=0;i1<=9;i1++)
{
printf("%3d>",i1+1);
scanf("%d",&arrary[i1]);
}
for(i1=0;i1<=9;i1++)
for(i2=0;i2<=9-i1;i2++)
{
if(arrary[i2]
box=arrary[i2+1];
arrary[i2+1]=arrary[i2];
arrary[i2]=box;
}
}
printf("\n排序后为:\n");
for(i1=0;i1<=9;i1++)
printf("%3d>%d\n",i1+1,arrary[i1]);
getch();
return 0;
}
2 单片机中汇编语言程序设计的冒泡法
2.1 单片机语言中汇编语言的设计方法
单片机基础设计中常用的是汇编语言,汇编语言是面向底层的实际语言之一,常用的指令按照功能来划分有数据传送指令、算术运算指令、逻辑运算指令、位操作指令、控制转移指令等,指令丰富,便于操作。
2.2 汇编语言中冒泡法的教学方法举例
编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。在这个设计中典型的冒泡法设计有汇编的特点,流程图如图1所示:
图1 流程图
在汇编语言的程序设计中,设置了标志位00H,当在一次循环比较中,凡是有大小数字进行交换的时候,就设置标志位为1,这样在从50H进行再一次的循环交换直到数字由小到大排列为止,在KEIL的环境下可以运行并显示结果,如图2所示:
?
排序前的赋值情况:
排序后的结果:
3 结束语
在C语言的程序设计中,需要用的语句简单,而且还可以设计循环函数,实现自己的不断比较进行排序,而在汇编语言程序设计中,这种方法的使用不是很恰当,要设置标志位和条件转移指令进行排序,要设置每次排序的指针,相对语言要更加紧凑,条理些,作为教师要善于发现每种教学方法的異同点,更好的服务于教学中,提高教学质量。
参考文献:
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2010.
[2]张婕等.最短路径动态规划问题及C语言实现[J].内蒙古农业大学学报(自然科学版),2012(02).
[3]武晓燕.C语言在单片机技术中的应用[J].价值工程,2010(36).
[4]曹莎莎.C语言教学研究与思考[J].价值工程,2012(01).
[5]王窕珊.C语言编程教学方法探讨[J].计算机光盘软件与应用,2011(09).
作者简介:田嵩(1981-),女,硕士,研究方向:计算机应用技术。
作者单位:湖北理工学院计算机学院,湖北黄石 435003
基金项目:湖北理工学院青年项目(项目编号:13xjz060);2012湖北理工学院校级教研项目(项目编号:201229)。