C语言中杨辉三角图形输出的课堂教学研究
2021-08-23孙伟平
孙伟平
摘 要:《C语言程序设计》中的图形输出问题在整册书的基础教学中占有重要的地位和作用,尤其杨辉三角的图形输出更是重中之重。掌握程序设计的方法、图形特点、思路分析,目的是培养学生程序设计的理念,也为后续函数调用、指针、文件等章节的学习打下坚实的基础。
关键词:C语言程序设计 二维数组 杨辉三角
1 引言
C语言程序设计作为一种高级的计算机语言,是所有编程语言的基础教学。它的功能強大,可移植性好,使用灵活方便,也是广泛使用的计算机语言,同时还具有高级编程语言的优点,适合于各种系统软件的编写和数值计算,学习它有助于和计算机之间的交流,同时也更深入的了解计算机,所以说程序编辑的学习对我们尤为重要。
2 二维数组基础知识的灵活性应用
二维数组的学习是建立在一维数组的基础知识之上,首先要明确什么是二维数组?二维数组用来存储什么?如何进行存储?这在课堂教学中反应出存在的问题,不能够学以致用,所学习的内容在应用中缺少灵活性,所以教学过程中会让我觉得“教与学”、“学与用”、“用与练”的重要性。课堂中应多注意知识的运用而不仅仅将知识浮于表面,而是要实实在在的运用到实际。
3 分析杨辉三角的图形特点,找到与二维数组之间的联系
先以直角的杨辉三角形为例,由于杨辉三角也是多行多列的存储形式,与二维数组的存储有了直接的联系,师生共同分析图形特点,激发学生的参与性和主动性,同时也培养学生学习的兴趣,在讨论的过程中领会到了杨辉三角浅在的规律。
各组同学通过认真观察都有了新的发现,一组同学发现直角边和斜边上的数组元素值都为1;二组同学发现每行输出的数字个数都不同,而且左右两端的数字是对称的。在图形分析这一环节课堂氛围特别的轻松,完全忘我的状态,各组同齐心协办,加以补充。愉悦的课堂氛围让我也倍感欣慰。
4 结合特点进行分析讲解
首先分析三角形的斜边和直角边上的1都分别对应着哪些数组元素?结合之前二维数组的基础知识,由此可以发现斜边上的元素是当行下标列下标相等的情况下,对应数组元素的值为1,直角边上的元素是当列下标的值为0时,则a[i][j]=1。其他数组元素的值则通过如下分析:a[3][1]=a[2][0]+a[2][1],a[4][2]=a[3][1]+a[3][2],得出除了元素值是1的情况a[i][j]=a[i-1][j-1]+a[i-1][j],综合以上的条件得出如下结论:if(i==j||j==0) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]。
其次,根据杨辉三角的每行输出数字的个数不同,并结合之前星号图形的输出可以得出,内层循环的执行次数是由外层循环变量的值来控制的,所以循环的条件为:j<=i。最后结合图形的观察,每行输出数据之后要进行换行操作,其中printf(“\n”)作为外层循环的循环体部分,当内层循环执行完才执行换行语句。
本环节的教学过程,通过图形特点的分析讲解,引导学生应用所学知识并结合本程序的新知识,设计算法进行分析,并适当地用语言描述去解决程序的思路,培养学生逻辑思维方式,让学生在不断的探索中解决编程问题,从而全面且有效地掌握知识的运用。
5 小组同学整理思路进行程序编辑
1.整体思路共分为三部分:一是二维数组及变量的说明定义;二是给数组元素赋值;三是输出数据。思路分析对于图形输出十分重要,只有明确思路才能将其转换成符合C语言语法要求的语句。
2.程序编辑中出现的错误(以输出十行的杨辉三角为例)
错误(1):部分同学将i<10写成了i<=10,原因是下标值取值范围掌握的不够准确;
错误(2):将j<=i写成了j<10,原因是忘记图形中每行上输出数据个数的不同,主要是由外层循环变量i来控制的,在编程的整体思路上出现了偏差;
错误(3):printf(“\n”);语句的位置不属于内层循环,而是当内层循环执行之后才执行。以上几处错误之处是程序编辑过程中常常出现的问题,抽象的逻辑思维确实让孩子们毫无思路,即使有了思路也会在编程中出现这样或那样的小错误,但计算机的程序语言不允许我们有丝毫的差错,要求其规范化及准确性,当然这也是在培养学生的细心、耐心的好习惯,这一习惯的养成会成为她们成长中的亮点。
在此环节的教学过程中,让我领悟到了教学中的循序渐进。小组的合作学习过程中不仅是一个帮扶的过程,更是一个协作的过程,大家齐心协力,目标明确,培养了学生的创造力更体现了以学生为主体的教学原则,从而激发了他们的学习兴趣。
6 理论教学与实践相结合
在程序设计过程中,理论学习和上机实践应两手抓,通过上机练习会提高学生的实践能力,在输入程序的过程中也是再次对程序语法的一次校对,针对运行后的错误代码应及时的进行改正并总结。理论与实践的结合是对所学知识的融会贯通,在上机练习中更是对程序熟练程度的一个考验。
C语言的程序设计教学讲究的是方法,运用合理的教学方法,不但可以让学生领会到学习的乐趣,同时也提高了学习的积极性和独立思考的能力。本节课的教学过程中,我采用的分组教学不但培养了学生分析问题和解决问题的能力,也培养了学生的团队意识。以上就是我在杨辉三角图形输出教学中的一些体会,在今后的教学过程中,我会不断的探索和创新,激发学生兴趣的同时,让他们感知C语言程序设计的魅力所在。
参考文献:
[1] 王小荣,刘双喜. C语言中二维数组的教学探究[J]. 电脑知识与技术,2009,5(24):6700-6722.
[2] 汪红兵,姚琳,武航星,张敏. C语言程序设计二维数组人教学探究[J]. 中国大学教学,2014(09):50-55.
[3] 宋灵香. C语言中程序设计二维数组的教学探究[J]. 软件导刊,2013,12(03):178-180.
[4] 原立涛,李凤玲,邸抗.C语言中二维数组应用分析[J].软件工程师,2012(11):46-47.