“猴子下山”取最值----我的一堂冒泡算法教学案例前些天,我给计算机专业高考班上C语言,知识点是冒泡算法
在以前的教学中,是我先讲思路,由同学们写流程图,再一起写出整个程序
但一般效果不好,一旦考试时,出现结果五花八门,让人哭笑不得
于是这次上课之前,我给学生讲了一个小故事:小时我们听了《猴子下山》故事
今天我也给大家讲个《猴子下山》故事(学生听了有的无动于衷,有的呵呵笑)
有一天,小猴子妈妈要小猴子下山去玩,并告诉它:“回来后把你看到的最大数字告诉我”
小猴也听话,在途中特别注意一些数字,它依次遇到了30,43,21,1,56,34,8,这些数字
回到家后,妈妈问:“你遇到的最大数是多少呀
”,“56”,小猴子回答道
“那你今天遇到哪些数呀
”,“这个……,你不是只要我记最大数吗
我可没那么好记心”
“你不把其它数说出来,怎么知道你对了没
”,“妈,绝对没问题,虽然刚刚学数字,大小还是分得清的”
接着我问:请把猴子记下56这个最大数的详细经过说一说
学生哄堂大笑:“老师,你讲的是幼儿的故事,问的是幼儿问题,太小看我们了吧
同学们觉得太简单了是不
”我板书了一道题:编程求出30,43,21,1,56,34,8,这些数中的最大值
并提示学生:“此程序设计流程就是这个小猴子的详细经过,你们既然知道了,请写流程图,编程,开始
”(学过了循环结构)“啊
”特别是那些女生
10分钟过去了,当我在下面查看同学们结果时,5%基本上能写出下图差不多程序,但其余的就相差太远了
完全正确的没有一人
我问:“行否
”下面声音再也没有刚才那么自信的声音了,有的只有摇头
“好,之所以写不出,是因为你们没有回答我的小儿科Main(){inta[7]={30,43,21,1,56,34,8},i,n;For(i=0,in)n=a[i];Printf(“最大数是%d”,n);}提问