在学生有了浓厚的求知欲望之后,笔者不失时机地追问:“你知道这些美丽的图形是如何输出的吗?”很自然地将学生带入到学习活动当中。因为循环嵌套有一定的难度,笔者从最简单的图形入手、层层递进,不时地加入一些幽默风趣的话语,让学生在一个轻松愉快的学习情境中感受学习的乐趣、体验成功的快乐,逐步揭开美丽图形的神秘面纱。下面是引导启发学生分析、思考和实践的学习活动过程:
【任务一】尝试用For-Next语句编写代码输出如下一列8个“*”(见图2)。
图2
图3
输出图形2的程序结构对学生来说不难,只需强调字符串要加双引号,设计这个任务的目的是要引出“print语句后面加;的作用”这一知识点,所以在学生输出图1后笔者提出设问“如果要将这8个*显示在一行里,怎么办呢?(见图3)”引起学生注意,启发学生思考和学习,在学生实现输出图2后,笔者紧接着抛出任务二。
【任务二】输出如下图形:6行,每行8个“*”(见图4)。
师:这个问题该怎么解决?如何实现输出6行?
生:将刚才输出一行的代码重复执行6次(思考回答)
师:被重复执行若干次的操作,应该用什么结构来实现呢?
生:循环结构
师:那么就是把刚才输出一行的程序代码作为循环体,放在次数为6的循环当中,对吗?
图4
师:给出循环嵌套结构的流程图,讲解循环嵌套的思想,并引导学生分析循环嵌套的执行流程。
生:尝试编写代码,输出任务二的图形。
师:巡回观察学生出现的问题,然后针对学生出现的问题(内外循环使用同一个变量控制,内外循环交叉,等等),引导学生分析总结。
师:上面出现的这些问题修改正确后任务二的图形出来了吗?
生:没有,所有*都显示在一行里(异口同声地回答)
师:那是什么原因呢?想想看,这样的输出结果是谁惹的祸呢?
生:Print“*”语句后面有;的原因(思考后回答)
师:那么去掉Print“*”后面的;可以吗?
生:不行,那样会全部显示在一列里(异口同声地回答)
师:好吧,那么老师就给你们一个该换行时就换行的秘密武器:Print(后面什么都不写,即不输出什么内容,就是换行),不过你们要思考一下:这个换行的武器该放在程序中的什么位置呢?
生:积极思考,并尝试加入换行语句后运行观察。(运行成功,流露出喜悦的微笑)
师:将外循环次数修改为8次,内循环次数修改为6次,运行观察和刚才输出的图形有什么不同呢?
生:积极动手修改观察,变成了8行6列(兴奋地回答)
师:引导分析总结得出:外循环控制行数,内循环控制每行输出的数据个数。(www.xing528.com)
大家现在已经掌握了这个法宝(外循环控制行数,内循环控制每行输出的个数),那么试试看下面这个图形怎么输出来?(出示任务三)
【任务三】输出如下图形(见图5)。
提示:同学们可在刚才程序(矩形图)的基础上修改完成。
生:思考、实践。
师:巡回观察,让学习能力强、动作快的同学当小老师,帮助学习能力较弱的同学分析出规律,引导运行出结果。
师:引导总结。每行的个数不一样,因此对于每一行而言,内循环的循环次数不一样,随着行数的变化(即外循环变量值的递增),内循环的次数在改变。
图5
看到同学们都成功后又抛出一个问题:
师:再看看这个问题如何解决?(见图6)
生:思考、修改代码、运行观察。
有了输出图4的基础,学生很快找到了代码修改的关键点,即内循环变量i的终值与外循环变量j之间的数学关系:i=2*j-1。
现在同学们的本领已经不可小觑了,那么我们下面来一点有难度的,看看下面这两个图形如何打印出来呢?(见图7和图8)
图6
图7
图8
师:观察一下,和刚才的几个图形比较,这两个图形的共同点是什么?
生:左边都空出了一些位置。(观察回答)
师:没错,如何空出这些位置呢?请大家仔细学习学习资料,你就会有答案的。
师:提供tab函数的讲解文件。
【任务四】自主学习,尝试打印出图形7和图形8。
师:引导学生先独立思考解决,遇到自己不能解决的问题可以组内交流讨论
生:认真学习学习材料,尝试实践,遇到问题时积极与组内同学一起讨论解决。
通过前三个任务的分析与解决,学生已经基本掌握了利用循环嵌套结构输出简单图形的思想方法,这个环节通过自主学习tab函数以及组内的讨论交流,再加上老师适当的点拨,学生都能积极地发挥出他们的思维才智,最终解决问题。
笔者采用由浅入深、逐层推进的教学策略,不仅为学生搭建了学习的阶梯,降低了学习的难度,学生也在这个活动过程中一点一点地理解和掌握了循环嵌套的思想以及用循环嵌套结构打印各种不同形状和结构的图形的基本思想方法,揭秘了美之所在,感受到了成功的喜悦,增强了学习的信心。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。