论文部分内容阅读
摘要:C语言由于应用面广,因此很多高校都会选择C语言作为基础程序设计开发语言,但由于C语言学习难点较多,因此学习效果不太好。本文主要针对其中难点之一多重循环的教学,提出自己的见解和解决方法。
关键词:C语言;教学难点;多重循环
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2019)34-0153-03
C语言由于它既能直接进行面向高层的应用开发也可进行面向底层的系统开发,因此应用面广,是非常受欢迎的主流语言之一,因此很多高校在进行程序设计基础语言教学时都选择了C语言。但由于它的语法规则繁多,内容抽象,知识点多,所以存在很多知识点学生很难掌握,学习效果不太理想。本文主要针对其中的多重循环教学中的难点问题提出个人的见解和解决问题的思路。希望对同行或学习C语言的人有所启发和帮助。
1 多重循环教学中存在的问题
因为循环结构是构成结构化程序设计的基本结构之一,在实际求解问题的过程中也常常遇到,比如输入全班同学的信息,求若干个数之和,求最大公约数,排序等等,因此循环结构是一个非常重要的知识点,必须掌握。通常对于一重循环(也就是只包含一个完整循环结构的循环),只要把3个基本语句:while,dowhile和for语句的基本语法结构、流程讲清楚,然后通过典型案例加以分析、现场编程演示实现,最后再讲清楚while和dow-hile之间的区别,while语句、dowhile语句和for语句之间如何转换,用特例转换演示一编,让他们彻底弄懂。那么一重循环的知识点差不多就讲解完了,因为比较简单学生们通常都比较好掌握。不会存在很大问题,如个别有问题就单独有针对性讲解就可以了。
但是一遇到多重循环,也就是含有二重或二重以上循环的问题,学生就很容易犯糊涂了。比如:面对具体问题时,他们不知道该如何嵌套,内外层循环的次数如何控制,循环判断条件特别是内层的循环判断条件该如何设置,流程如何走等等。
2 多重循环问题的解决办法
多重循环也就是如果在一个循环体内又包含另一个完整的循环结构,则称为多重循环,也称嵌套循环。内嵌的循环中还可以继续嵌套。
通常对于学生在学习多重循环过程中遇到的难点,本人会通过选择有一定内在关联但看起来又比较简单直观的一系列案例逐层递进,循序渐进的来讲,让学生弄懂是如何由一重循环可以逐渐演变成多重循环,同时如何来实现这样的多重循环的编程。多重循环中通常重点讲解二重循环,因为二重循环弄懂了,二重以上也可用类似的思路处理。为了程序看起来简洁,案例中的循环语句均用for语句来实现。至于其他的循环语句,只需按相互之间的语法转换关系进行变换就可以了。
案例1:让学生输出一行单个的*号,目的是复习下c语言程序的基本结构及输出语句的写法,特别是换行的实现。
编程输出如图1所示的图形!
图1单%號图形
代码如下:
#include
int main0
{
printf(”*\n”);
return 0:
)
很显然在上例中就是简单的输出一个“*”号然后回车,同学们在以前学习的基础上轻易可以实现程序!然后在案例1的基础上进行变化,变化出案例2和案例3,此时代码部分都让学生自行当场完成!
案例2:让学生复习简单的多列重复输出
请输出如图2所示的图形!
********
图2单行8个连续的*号图形
现在可能学生的结果大致上会有以下2种不同的代码会出现,第一种:
#include
int main0
{
printf(”********\n”);//直接连续输出8个*
return 0:
)
第二种,结合前面讲的单层循环写出的语句
#include
int main0
{
inti:
for(i=1;i
关键词:C语言;教学难点;多重循环
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2019)34-0153-03
C语言由于它既能直接进行面向高层的应用开发也可进行面向底层的系统开发,因此应用面广,是非常受欢迎的主流语言之一,因此很多高校在进行程序设计基础语言教学时都选择了C语言。但由于它的语法规则繁多,内容抽象,知识点多,所以存在很多知识点学生很难掌握,学习效果不太理想。本文主要针对其中的多重循环教学中的难点问题提出个人的见解和解决问题的思路。希望对同行或学习C语言的人有所启发和帮助。
1 多重循环教学中存在的问题
因为循环结构是构成结构化程序设计的基本结构之一,在实际求解问题的过程中也常常遇到,比如输入全班同学的信息,求若干个数之和,求最大公约数,排序等等,因此循环结构是一个非常重要的知识点,必须掌握。通常对于一重循环(也就是只包含一个完整循环结构的循环),只要把3个基本语句:while,dowhile和for语句的基本语法结构、流程讲清楚,然后通过典型案例加以分析、现场编程演示实现,最后再讲清楚while和dow-hile之间的区别,while语句、dowhile语句和for语句之间如何转换,用特例转换演示一编,让他们彻底弄懂。那么一重循环的知识点差不多就讲解完了,因为比较简单学生们通常都比较好掌握。不会存在很大问题,如个别有问题就单独有针对性讲解就可以了。
但是一遇到多重循环,也就是含有二重或二重以上循环的问题,学生就很容易犯糊涂了。比如:面对具体问题时,他们不知道该如何嵌套,内外层循环的次数如何控制,循环判断条件特别是内层的循环判断条件该如何设置,流程如何走等等。
2 多重循环问题的解决办法
多重循环也就是如果在一个循环体内又包含另一个完整的循环结构,则称为多重循环,也称嵌套循环。内嵌的循环中还可以继续嵌套。
通常对于学生在学习多重循环过程中遇到的难点,本人会通过选择有一定内在关联但看起来又比较简单直观的一系列案例逐层递进,循序渐进的来讲,让学生弄懂是如何由一重循环可以逐渐演变成多重循环,同时如何来实现这样的多重循环的编程。多重循环中通常重点讲解二重循环,因为二重循环弄懂了,二重以上也可用类似的思路处理。为了程序看起来简洁,案例中的循环语句均用for语句来实现。至于其他的循环语句,只需按相互之间的语法转换关系进行变换就可以了。
案例1:让学生输出一行单个的*号,目的是复习下c语言程序的基本结构及输出语句的写法,特别是换行的实现。
编程输出如图1所示的图形!
图1单%號图形
代码如下:
#include
int main0
{
printf(”*\n”);
return 0:
)
很显然在上例中就是简单的输出一个“*”号然后回车,同学们在以前学习的基础上轻易可以实现程序!然后在案例1的基础上进行变化,变化出案例2和案例3,此时代码部分都让学生自行当场完成!
案例2:让学生复习简单的多列重复输出
请输出如图2所示的图形!
********
图2单行8个连续的*号图形
现在可能学生的结果大致上会有以下2种不同的代码会出现,第一种:
#include
int main0
{
printf(”********\n”);//直接连续输出8个*
return 0:
)
第二种,结合前面讲的单层循环写出的语句
#include
int main0
{
inti:
for(i=1;i