浅议C语言程序设计指导中的循序渐进方法

2022-09-11

C语言程序设计课程是计算机相关专业低年级开设的一门十分重要的专业基础课程, 是很多后续课程的重要基础。然而由于我国计算机教育普及程度相对落后, 相对于西方信息技术发达国家而言存在太大差距, 很多学生在对计算机基本操作都还未熟悉的情况下学习程序设计, 普遍感觉吃力, 不易学好。特别是很多学生反映, 课本上和课堂上讲授的C语言语法基本能掌握了, 可就是不能将程序写出来。在这个问题上, 教师不仅应该指明学生应该多读别人的程序、多写程序这样的大方向, 更应该在实践教学过程中由浅入深的用实例介绍, 做好示范, 将一个复杂的大问题分解为几个简单的小问题, 举一反三, 使学生掌握分析问题、解决问题的方法。程序设计实验课教学指导过程中的方法是否科学, 是否能让学生容易接受, 直接影响到教学效果, 这是所有教学人员需要重视的。本文通过介绍一个C语言上机实验题的讲解过程, 举例说明了在程序设计实践指导过程中的循序渐进方法, 希望能在同行中起到抛砖引玉的效果。

1 问题的提出

问题如下:请写程序打印如图1所示的图形

此题对于高年级学生来说是一个比较简单的问题, 但对于初学者来说, 并不一定能很快找到正确的解决方案。如果教师因为这样的问题简单而轻描淡写, 不耐心加以指导、帮助进行分析, 很可能会使得不少初学者浅尝辄止, 对程序设计的学习失去信心。

2 问题的分析与分解

此题主要考察嵌套循环结构的内容。初学者往往对教材上所列出的嵌套循环结构语法基本了解, 但是要完成上题的上机操作却又不知道如何下手, 所以教师对学生由浅入深的引导是很必要的。教师可以先将学生遇到的难点分解, 用作为铺垫的三个简单问题来逐步引出原题, 分四个步骤来指导学生完成原题。

2.1 步骤一 (图2)

此问题只需基本了解嵌套循环结构即可实现, 绝大多数学生都能很快完成。代码如下:

2.2 步骤二 (图3)

此时, 问题所需的程序结构并没有改变, 仅在实现时需略为改动。与图 (1) 比较, 每一行的星号数目不再一成不变, 而是由上至下构成公差为2的单调递增等差数列, 故和步骤一相比, 需要在设置每一行的星号数量的代码部分做些许调整, 也即在内层循环的代码中设置新的变量, 用变量的值来控制星号的数目。代码如下:

教师在指导过程中应该着重解释代码中与步骤一的代码中不同之处, 务必使学生真正明白。

2.3 步骤三 (图4)

此图要求与原题已十分相识。与图形②比较, 此图在星号数目上不是简单的按行数单调递增, 而是先增后减。要完成此要求需要掌握如何控制星号数目的增或减的趋势, 由图可知星号由第一行递增的趋势在星号变为7个时开始改变, 变成递减, 其实这只需要设置条件判断即可实现。设置标记变量flag, 当打印某行的星号小于7时, flag为0, 此时星号数目按行号以公差2递增;当打印星号大于7时, flag为1, 此时星号数目按行号以公差2递减。代码如下:

2.4 步骤四

此时也就进入原题的求解过程。有了前三个步骤的铺垫, 大多数学生都掌握了解决原题所需要的基本方法, 也积累了足够的信心。分析原题图与图 (3) 的区别, 可以看到, 按行号改变数目的不仅是星号, 还有靠左输出的空格。空格数目增减顺序与星号增减顺序相反:第一行至第四行, 星号数目递增, 空格数目递减;第五行至第七行, 空格数目递增, 星号数目递减。由于两者增减趋势变化的时机相同, 可以把这种变化放在一个条件判断里实现。由于多了一个输出对象, 故需要另外定义变量来控制其数目、另外加入新的内嵌循环完成其输出。另外由于一行内两个相邻的星号之间有空格, 故原来输出的星号前应加一个空格, 即由“*”改为“*”代码如下

3 问题的扩展和延伸

其实讲解原题的编码方案意义并不太大, 最重要的是在讲解过程中给学生传授分析解决问题的方法。到此为止, 教师应该不仅仅满足于问题的解决, 应该带领学生用已经掌握的方法扩展原题, 举一反三, 效果会更好。比如可以做如下扩展:原题要求打印的菱形图案的边由四个星号组成, 如果希望菱形边的星号个数由用户输入确定, 该怎么修改以上编码?分析此问题, 可以看出, 第一行的星号位置由菱形边的星号个数来确定。也即每行先于星号输出的空格个数变量K的初值由菱形边的星号个数确定。定义变量r为菱形边的星号个数, 即可得到k的初值k=2*r-1, 而总的行数也是2*r-1, 当输入某行的星号个数到达2*r-1时, 即到达某行星号数目的最大值时, 增减的趋势需要改变。代码如下:

代码运行结果如图5。

4 结语

在为低年级开设的程序设计课上, 学生往往由于练习少, 初学程序设计, 很容易对编写代码产生畏惧心理, 就算将课本上的知识点背熟, 也很难真正开始着手自己做。在上机操作实验课上, 教师应该循循善诱的示范传授思考方法, 指点学生如何去找答案, 而不是仅仅给出代码、分析答案的正确性。这样才能让学生真正有所收获。

摘要:在对计算机相关专业低年级的C语言教学中, 我们容易发现, 不少学生反映课本上的语法知识已经基本掌握, 但在实际操作写程序时却往往无从下手。这样的问题常常在实验课上表现突出。除了讲授语法知识以外, 如何指导学生分析问题解决问题的能力, 值得每个教师注意。结合低年级的具体情况, 我们应该采取循序渐进的引导方式, 帮助学生逐步解决遇到的问题。本文通过对一个常见的例子分析, 阐明作者的这一观点。

关键词:C语言,教学,指导

参考文献

[1] 谭浩强.C程序设计教程[M].清华大学出版社, 2007, 7月.

[2] 叶幼林.对计算机C语言教学的探讨与研究[J].中南民族大学学报, 人文社会科学版, 2004 (1) .

上一篇:光学薄膜在仪器设备上的应用下一篇:剖宫产术中膀胱损伤的预防与处理

本站热搜