猴子下山取最值.doc

猴子下山取最值.doc

ID:58036643

大小:30.00 KB

页数:6页

时间:2020-04-08

猴子下山取最值.doc_第1页
猴子下山取最值.doc_第2页
猴子下山取最值.doc_第3页
猴子下山取最值.doc_第4页
猴子下山取最值.doc_第5页
资源描述:

《猴子下山取最值.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、“猴子下山”取最值----我的一堂冒泡算法教学案例前些天,我给计算机专业高考班上C语言,知识点是冒泡算法。在以前的教学中,是我先讲思路,由同学们写流程图,再一起写出整个程序。但一般效果不好,一旦考试时,出现结果五花八门,让人哭笑不得。于是这次上课之前,我给学生讲了一个小故事:小时我们听了《猴子下山》故事。今天我也给大家讲个《猴子下山》故事(学生听了有的无动于衷,有的呵呵笑)。有一天,小猴子妈妈要小猴子下山去玩,并告诉它:“回来后把你看到的最大数字告诉我”。小猴也听话,在途中特别注意一些数字,它依次遇到了30,43,21

2、,1,56,34,8,这些数字。回到家后,妈妈问:“你遇到的最大数是多少呀?”,“56”,小猴子回答道。“那你今天遇到哪些数呀?”,“这个……,你不是只要我记最大数吗?我可没那么好记心”。“你不把其它数说出来,怎么知道你对了没?”,“妈,绝对没问题,虽然刚刚学数字,大小还是分得清的”。接着我问:请把猴子记下56这个最大数的详细经过说一说。学生哄堂大笑:“老师,你讲的是幼儿的故事,问的是幼儿问题,太小看我们了吧。”“是吗?同学们觉得太简单了是不?”“那当然。”我板书了一道题:编程求出30,43,21,1,56,34,8,

3、这些数中的最大值。并提示学生:“此程序设计流程就是这个小猴子的详细经过,你们既然知道了,请写流程图,编程,开始!”(学过了循环结构)“啊?”特别是那些女生。10分钟过去了,当我在下面查看同学们结果时,5%基本上能写出下图差不多程序,但其余的就相差太远了。完全正确的没有一人。Main(){inta[7]={30,43,21,1,56,34,8},i,n;For(i=0,i<7,i++)If(a[i]>n)n=a[i];Printf(“最大数是%d”,n);}我问:“行否?”下面声音再也没有刚才那么自信的声音了,有的只有摇

4、头。“好,之所以写不出,是因为你们没有回答我的小儿科提问!”我不失时机的抛出了我的观点:“生活中越是看似容易的事情,往往蕴藏着许多哲理,许多规律。万有引力也只有牛顿从最平常的苹果下落才发现!细节决定成败。因为你们不愿去思考别人看似简单的过程,所以在亲力亲为是总是困难重重!故俗语云:‘事非经过不知难!’,下面我们还是去想想小猴子记数经过吧!”同学们不好意思笑着点头。问:“小猴子下山初次遇到了谁?”答:“30”问:“这个数要不要?”答:“不要!”,还是那么自信问:“到底要不要?”答:“要”、“不要”。终于有了不一样的声音。

5、问:“请说‘不要’的理由”。答:“因为30不是最大的”问:“请说‘要’的理由”。答:“没有30,哪来比30大的56呢,再者,如果后面遇到的全是比30小的,不就错了?”“精彩,太精彩了,掌声在哪儿?”我对这个同学大加赞美道,“是的,30你不记下来,如果后面比30都小,怎么办,难道真的随便说个数去忽悠猴妈妈吗?”哄堂大笑。问:“30要记下来,记在哪?”答:“小猴子脑子中”问:“在程序中谁是小猴子呢”答:“用个变量”略思考后,两三个同学回答。“好的,在程序中我们也要有‘小猴子’的变量,不过习惯我们把最大值的变量叫‘max’,

6、最小值叫‘min’”。我补充道。并将它们写在黑板上。问:“接下来小猴子遇到谁?”答:“43”问:“要不要”答:“要”问:“比不比,和谁比”答:“比,和‘猴子’比”(和‘30’比,和‘max’比)我点点头:“猴子记下了‘43’,丢下了‘30’”又问:“接下来是’21’,要不要?”答:“不要”问:“比不比?和谁比”答:“和‘max’”异口同声。……此时我知道,大多数同学真懂了。因为前面循环语句学的还行,编程问题不大了。5分钟过后,许多同学都非常自信的把程序给我看,虽到处有些小问题,思路基本没问题了。只是有一个问题没解决:那

7、就是max=a[0]这条语句应写在循环之前。(本人没有马上讲解)。先和大家一起在机器上验证了这个程序的正确性。我问大家,“这个程序是否就非常严谨了呢?”下面无声。于是我出了第二道题:求出此题中的最小值。并请一同学上机验证,结果是“0”“怎么回事?”、“怪呀!”“程序写错了吧。”下面叽叽喳喳。我又一次不失时机讲道:“程序没有写错,关键是我们写的这个程序不严谨的问题,也就是小猴子遇到第一个数时如何处理的问题。”经我一点拔,马上有许多同学想到了:“是max的初值为0!”“是的,如何改?”这是许多人都如获至宝,自然在循环前加上

8、了一条语句:max=a[0],随之把循环for(i=0,i<7,i++)改为了for(i=1,i<7,i++),于是程序也水到渠成。同学们都开心笑了。随后又布置作业:从键盘上输入10个数,求最大最小值。这堂课过后,那些对程序课有排斥的同学好像也有改变,积极性大有提高。以前从成绩差的学生身上,我看到的是失望,无助。而这次,他们脸上似

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。