1、浙教版高一信息技术VB循环语句教学设计 浙江省象山中学 章婷红 315700 一、设计思想本节课以一个小游戏导入,引导学生在解决游戏问题的过程中去探索其背后隐藏的算法思想,一个基本的程序结构循环结构。学会使用循环语句是编程的基本功,因此本课对提高学生的阅读程序和编写代码能力有着非常实在的意义。循环语句是三种基本语句中难度最大的一个,为了降低学习难度,提高学生的兴趣,我用烧杯和量筒来比喻循环语句中累加器和累加量,使学生快速地理解了累加器的作用,并能正确算出这类程序的运行结果。会读程序之后还要会写,挑选一个好的例子非常重要,我选择了算麦粒画棋盘这个实例,既有经典的计算问题又有直观的画图功能,学生学
2、习积极性比较高。任务的设置由算麦粒的填写部分语句到画棋盘的完全自己编写代码,对学生的要求逐步加深。二、教材分析本节内容选自浙江教育出版社算法与程序设计第四章第三节。循环语句是程序三种基本语句之一,是学习程序设计的基础,同时也是后面六种算法的重要组成部分。课程标准和学科教学指导意见对本课的要求是:理解循环语句的作用,掌握循环语句的使用方法。要求学生能从问题出发,用循环语句编写程序,实现简单的算法。学科教学指导意见中三种语句的总课时建议为三课时。我考虑到循环语句是三种语句中难度最大的一个,并且要学习for和do两种语句,后面六个算法中也基本上都要用到循环语句,所以非常重要。因此循环语句我安排了2课
3、时,本节为第1课时,主要内容为for语句,第2课时为do语句及循环综合实例。三、学情分析在此之前学生已经学习了算法的流程图、VB基础知识和基本操作及两种语句:赋值语句和选择语句,基本掌握了VB的编程环境。对于for语句,我的要求是学生先学会读程序,即计算出程序的运行结果,尤其要比较熟练地掌握累加器的作用。在此基本上还要能根据实例编写简单的循环结构的程序。对于读程序,大部分学生能模仿老师的例题分析完成计算。而根据实例编写程序,最主要的是找出反复执行的事件,并找到其通式和变化规则,写出循环体语句。这对学生来说是有一定难度的,需要老师慢慢引导点拨。四、教学目标(一)知识与技能:1、理解循环语句的作用
4、,掌握FOR语句的基本格式;能看懂循环结构流程图的执行流程;2、能根据循环语句的代码写出运行结果,尤其要比较熟练掌握累加器的作用;3、能根据实例正确使用for语句编写简单循环结构程序;(二)过程与方法:1、学会用循环结构思想设计解决简单循环问题的算法,提高逻辑思维能力;2、进一步理解程序设计的基本方法,体会程序设计在现实中的作用;(三)情感态度与价值观:培养学生分析问题、发现规律的能力;培养学生良好的程序书写习惯;五、重点难点重点:FOR语句的基本格式,及循环语句执行流程及累加器的使用;难点:分析通式、提炼循环体,使用for语句编写简单循环结构程序解决实际问题六、教学策略与手段采用讲解法、演示
5、法、分析归纳法引导学生参与思考,用改变循环体的方法,化特殊为一般;用比喻的方法降低学生对累加器的理解难度,化抽象为具体;采用直观的算麦粒数和画棋盘实例,提高学生的学习兴趣。从读程序到写程序,由浅入深,让学生由模仿到自己解决问题,有效地突出重点突破难点。七、课前准备1学生的学习准备:已学赋值语句和分支语句2教师的教学准备: For语句的课件、学生实践所需半成品VB程序3教学环境的设计与布置:多媒体网络教室、多媒体教学平台、VB软件4.教学用具的准备:烧杯和量筒,一盆水八、教学过程导入:玩玩思思,明白原理师:同学们,看老师手里拿着是什么?生:烧杯和量筒师:没错!接下来我们来做个热身小游戏,请同学们
6、看仔细了,等会儿会有问题问大家哦。老师拿起量筒,从旁边放着的小盆中量了1毫升水,倒到烧杯中,然后又分别用量筒量2、3、4、5毫升水,依次倒入量筒。因为量筒比较小,远看刻度不太清楚,老师一边操作,一边适当提示学生量的容量是多少。此时学生都瞪大了眼睛在看老师的操作。师:操作完毕,大家刚才都看清楚了吧。我的第一个问题是:现在烧杯中一共有多少毫升水?生:15毫升(几乎异口同声地喊出来了)师:答对了,看来大家观察得非常仔细。我的第二个问题是:你是怎么算出来的,你能将计算过程列一个式子出来吗?这个问题对绝大多数学生来说没什么问题,老师请一位同学回答一下:1+2+3+4+5=15。师:非常正确。接下来,我想
7、用s和i分别表示烧杯和量筒中水的容量。然后我们将刚才的五个步骤再分解一下。我的第三个问题出来了:大家能不能将烧杯中s的每次变化情况分别写出式子呢? 老师一边分解操作刚才倒水的过程,一边引导学生写出下面几个式子:s=0i=1:s=s+ii=2:s=s+ii=3:s=s+ii=4:s=s+ii=5:s=s+i老师让学生观察一下这几个式子,有什么特点。经过观察,学生发现语句s=s+i重复执行了五遍,而且i也是非常有规律的,由1变到5。拓展一下,如果按照这种规律,一共倒n次的话,语句s=s+i则要重复执行n遍。在算法中,重复执行的语句,可以用循环语句来实现。-引出这节课我们来学习其中一种循环语句For
8、语句。【设计意图】一开始,信息老师拿出化学实验的器具,感觉很奇怪,所以注意力一下都集中过来,都猜测着老师到底要干什么。通过三个问题,引出本节课的学习内容-循环语句For语句。同时用烧杯和量筒为后面累加器的学习做铺垫。一、For语句介绍:看看列列,掌握知识给出for语句的基本格式和步长为正的流程图,并通过一个例子for i=1 to 5,按照流程图,分析了for语句的执行过程,导引学生能将语句与流程框图一一对应起来,特别要强调next i语句的作用:i=i+步长。分析得出循环次数是由初值、终值和步长决定的。让学生尝试将刚才的例子用For语句来表示:s=0For i=1 to 5 s = s +
9、iNext i通过这个例子,引出累加器的概念和作用, 这里将累加器s和累加量与烧杯和量筒对应起来,学生感觉挺容易理解的。为了让学生进一步掌握循环语句的执行过程, 我又将变量i和s的变化情况根据运行过程用一个表格一一罗列出来(如下表所示),并用不同颜色表示变量之间的关系,虚线框内即为累加量。is010 + 1 = 121 + 2 = 333 + 3 = 646 + 4 = 10510+ 5 = 156跳出循环【设计意图】这个实例,通过小游戏用烧杯和量筒跟累加器s和累加量相联系,又用表格根据程序的运行过程将s的变化情况一一展示出来,既有感性地认识,又有理性地计算,双管齐下,学生还是比较能理解累加器
10、的作用的。二、读程序:读读算算,打实基础我又列举了三个循环小程序,让学生算出程序段运行后变量s的值。s=10For i=1 to 5 s = s + 2Next i s=0For i=10 to 1 step -3 s = s + i * iNext i s=1For i=1 to 5 s = s * iNext i第一个例子的要点是累加器的初值,以及累加量为常数的情况;第二个例子的要点是循环步长为负数的情况,累加量也改为更复杂的i*i。第三例子的要点则是累乘器,可以让学生思考初值可不可以为0。【设计意图】教师通过变换步长、循环体等,让学生做到举一反三,融会贯通,真正理解循环语句和累加器、累乘
11、器的作用。三、写程序:填填写写,体验成功我采用了国际象棋上的麦粒这个故事,让学生完成算麦粒数和画棋盘。学生操作方面,算麦粒我只要让学生填写部分重要语句,而画棋盘则是要求学生所有代码自己编写。对于算麦粒数,我是先利用表格分析三个变量格子数i、每格存放量p和累加和s的变化情况,然后让学生得出它们的通式。如下表所示:格数i每格存放数p累加和s111221+2341+2+4481+2+4+8516s:累加器p:累乘器初值?1+2+4+8+16nFor i=1 to n p=p*2 或p(i-1) s = s + p 学生实践则是用半成品,让学生完成该程序中一些重要语句的填写,如p和s的初值、循环体中的
12、语句。有困难的学生还可以参考语句后面的注释语句或相应的流程图来填写。学生在填写代码时老师要提醒学生注意for语句格式的正确性和良好的书写规则。画棋盘部分,首先让学生分析出老师画的棋盘是由九条等长横线和九条等长竖线组成。由两点确定一直线,引出画直线的语句Line (x0, y0)- (x1, y1),其中(x0, y0)为起点坐标,(x1, y1)为终点坐标。已知该棋盘A点坐标为(500,500),C点坐标为(4500,4500)间隔均为500。(如下图所示)接下来,我以画横线为例,分三步,让学生自己尝试分别画出第一条横线,画出前三条横线,以及画九条横线:1、 用代码画第一条横线Line (50
13、0, 500)- (4500, 500)2、用代码画出前三条横线Line (500, 500)- (4500, 500)Line (500, 1000)- (4500, 1000)Line (500, 1500)- (4500, 1500) 3、用代码画出九条横线第三步画九条横线时要导引学生用比较简单的方法-循环语句实现,提示学生通过三条横线的代码,提炼出画横线的通式Line(500,y)-(4500,y),其中y值由500开始每次增加500。y = 500For i = 1 To 9 Line (500, y)-(4500, y) y = y + 500Next i让学生先自己尝试编写,然后
14、请几个用不同方法完成的学生上台演示一下,大致有以下几种方法:For y = 500 To 4500 step 500 Line (500, y)-(4500, y)Next iFor i = 1 To 9 Line (500, 500*i)-(4500, 500*i)Next i如果学生基础不是很好,老师可根据学生的操作情况,做适当提示:循环变量可以用画线的次数,也可以直接用y的值表示。 4、用代码画出九条竖线有了画横线的基础,画竖线也有比较简单了,最主要是分析出竖线的通式:Line(x,500)-(x,4500) x值由500每次增加500从优化算法的思想,画横线和竖线也可同时进行。【设计意
15、图】算麦粒数的程序中既有累加器又有累乘器,是一个比较典型的循环实例;而画棋盘比较直观,能让学生体会到循环语句的实用性,更容易获得成就感。学生实践也是由较简单的补充代码,到完全自己编写,让学生有更高的挑战性。四、小结:理理顺顺,明确要点1、掌握For语句的基本格式和循环次数For 循环变量初值 to 终值 Step 步长 语句块(循环体)Next 循环变量说明:循环次数由初值、终值和步长决定2、掌握循环结构程序执行的流程,能计算出一般循环程序的运行结果。特别是理解累加器和累乘器的作用。教学反思:这节课for语句从读程序到写程序,写程序中又是由填写部分语句到完全自己编写代码,对学生的要求逐步加深。
16、在读程序中,通过比喻,学生对累加器的掌握还不错。但写程序部分,根据实例分析算法,提炼循环体通式,还是有一定难度的。学生自己编写代码的次数并不是特别多,也会出现很多各种各样的错误,如格式上的(如要不要加空格之类的),语法上的,单词拼写上的以及对循环语句不理解造成的代码错误等。这也浪费了一些时间,导致最后的时间比较紧,部分学生不能完成所有任务。这些问题在以后的课堂中还要进一步强化。九、知识结构或板书设计用课件显示:1、for语句基本格式、步长为正的流程图;2、读程序中的三个小程序;3、求麦粒的代码、画棋盘的代码十、作业设计如何找出全班中扳手腕最厉害的人,为下节课的排序为铺垫。【问题研讨】讲到计算1+2+n时,总会有学生觉得这可以直接用数学等差数列求和方法解决,干嘛要用循环语句,多此一举。这里老师要跟学生讲清楚,这是学习一种循环的思想。【参考资料】算法与程序设计教科书,浙江教育出版社,陶增乐主编浙江省普通高中新课程实验学科教学指导意见,浙江省基础教育课程改革工作领导小组办公室编普通高中信息技术新课程标准,人民教育出版社