循环结构——for语句三、教学方法四、教学过程一、教材分析二、学情分析1、教学目标德育目标:培养学生大胆猜想、小心求证的辩证思维及举一反三的发散思维品质。知识目标:掌握for语句的一般形式和执行过程,并能应用for语句程序设计。能力目标:培养学生的分析、解决问题的能力,并培养学生初步的程序设计能力。3、教学重点与难点教学难点:for语句执行过程的理解、剖析和应用教学重点:for语句格式和执行过程教学关键:确定循环三要素任务驱动法、对比法、归纳法和演示法任务驱动法:即在讲解中通过多次设问提出任务,引导学生不断设疑、析疑、解疑,从而完成启发诱导过程,让学生带着问题阅读(教材、电子教案及课件)、讨论、思考,实现学习探索过程,最后由教师总结;归纳法和对比法:在解决具体问题上使用了归纳法和对比法,使学生思维过程有深度、有条理,有利于发展学生抽象思维能力和逻辑推理能力。演示法:使本节课的教学内容,一目了然,清晰直观。2、学法指导本节课教师主要引导学生采取自主探究的方法,并且要求学生自主学习与协作学习相结合,突出学生的主体地位;使学生始终是一个积极主动的知识探索者。五个教学环节:四、教学过程教学环节2、准确定位,探究新知;3、分析实质,深化认识;4、知识应用,巩固提高;5、归纳小结,布置作业。1、巧妙复习,引入正题;1、巧妙复习,引入正题;实例引入:编写一个猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,双多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘多少桃子?设计意图:首先让学生用上一节学的while循环语句编写这个程序,从而引出一个问题:在这个过程中会重复执行大量的操作,要想简化此操作,应该怎么办?答案就是使用for语句是最佳选择。由此让同学展开讨论,自然引出本节课题,使全体学生以最快的速度参与进来,为新课的展开创设了良好的学习情境。返回2、准确定位,探究新知;任务一:for循环语句的格式如何?for循环语句的格式为:for(表达式1;表达式2,表达式3){循环体语句;}计算表达式1计算表达式2循环体语句计算表达式3非00计算表达式1计算表达式2循环体语句计算表达式3非00For语句下一语句任务二:for语句的执行过程如何?执行顺序:1.求解表达式1(即为循环变量初值);2.求解表达式2,判断条件是否成立,若条件成立,执行循环体;3.求解表达式3,即改变循环变量的值。之后转向2,再判断条件是否成立。4.若条件成立,继续执行循环体,直到条件不成立为止,结束循环。任务三:在for语句格式中,表达式1、表达式2、表达式3的意义如何?在使用过程中可以省略吗?For语句格式说明:1、表达式1用来实现循环控制变量等的初始化,仅执行一次。它也可以省略,此时应在for语句之前给循环变量赋初值。2、表达式2为条件判断,通常为关系表达式或逻辑表达式,用来决定是否执行循环体,当该表达式的值为1时(就是条件成立),执行循环体,否则即当该表达式的值为0值时(就是条件不成立),将结束循环。如果表达式2缺省,表示该条件为非0(就是条件成立),即永远循环,这时要通过循环体内的退出循环语句(break语句)来结束循环语句。3、表达式3一般是描述控制变量的变化,常用的是自增、自减运算表达式。省略表达式3时,应该在循环体内设置改变循环变量的语句,保证循环能正常结束。设计意图:通过任务驱动,促使学生阅读网络资源,锻炼学生网上学习的能力,然后进行分析,对比,归纳,总结,锻炼学生的归纳分析能力。采用分组讨论方式,让同学共同参与,调动学生的积极性,既培养学生自主探究的能力,又锻炼了学生协作学习的能力,同时让学生体会到FOR语句的灵活性,突出了本节课的重点。设计意图:通过任务驱动,促使学生阅读网络资源,锻炼学生网上学习的能力,然后进行分析,对比,归纳,总结,锻炼学生的归纳分析能力。采用分组讨论方式,让同学共同参与,调动学生的积极性,既培养学生自主探究的能力,又锻炼了学生协作学习的能力,同时让学生体会到FOR语句的灵活性,突出了本节课的重点。3、分析实质,深化认识;【例】编程计算100至200自然数之和。要求用for循环语句,编写5种不同的程序来实现。方法一:#includestdio.hmain(){inti,sum=0;for(i=100;i=200;i++)sum+=i;printf(“sum=%d\n”,sum);}使用了for语句的标准格式,确定了循环三要素。方法二:#includestdio.hmain(){inti=100,sum=0;/*先给循环变量赋初值*/for(;i=200;i++)/*省去表达式1*/sum+=i;printf(“sum=%d\n”,sum);}先给循环变量赋初值,从而省去表达式一方法三:#includestdio.hmain(){inti=100,sum=0;/*先给循环变量赋初值*/for(;i=200;)/*省略表达式1和表达式3*/sum+=i++;/*求和的同时递增循环变量*/printf(“sum=%d\n”,sum);}在方法二的基础上省去表达式三,求和的同时递增循环变量方法四:#includestdio.hmain(){inti=100,sum=0;for(;;)/*三个表达式都省略了*/{sum+=i++;if(i200)break;/*使用break语句退出循环*/}printf(“sum=%d\n”,sum);}三个表达式都省略,增加break语句方法五:#includestdio.hmain(){inti,sum;for(i=100,sum=0;i=200;sum+=i,i++);/*循环体是一个空语句*/printf(“sum=%d\n”,sum);}循环体是一个空语句设计意图:从不同方法中看出for循环语句在使用中的灵活性。(我们在生活和学习中也是如此,一定要学会多条腿走路,用多种不同的方法解决同一问题)虽然例题的数量很少,但是很典型,通过一题五解,启发学生发散思维。让学生学会举一反三,用多种方法解决同一问题,从而突破本节课的难点。返回4、知识应用,巩固提高练习:用五种方法求2—100之间的所有偶数之和。算法分析:循环求和问题可以利用for循环每次向和变量中加一个数。假设存放和的变量为sum,先使sum为0,设变量i初值为2,终值为100,每次变化量(即步长)为2,再用for循环语句,每次循环执行的循环体语句为:sum=sum+i.设计意图:该题与例题类似,只是步长不同。分析过程由教师引导学生一步一步深入分析,抓住关键环节:循环三要素;指导学生用比较的方法写出程序。然后让学生相互讨论,共同完成。并且把所编程序在机器上运行,输出运行结果,培养学生实践操作技能。返回5、归纳小结,布置作业知识总结:通过本节课的学习,使同学们掌握了for语句的格式及执行过程,并且学会了使用for语句进行一些循环结构的程序设计,体验了用多种方法编写程序的过程。(格式、过程、问题)课堂小结:思想方法总结:体会for语句的灵活性,培养学生发散思维和创新思维的形成。(灵活性)1.画出for语句流程图并说明其执行顺序。2.求2+4+8+16+…+28的和。要求:使用for语句,至少用3种方法编程。布置作业提示:此题也是循环求和的典型题。只是每一个加数都是2的倍数,即求21+22+23+24+…+28的和,把幂指数作为循环变量i,则循环体内每次加进去的是2i.板书设计for语句一、for语句的一般形式:for(条件表达式){循环体语句;}二、for语句的执行过程:1、求解表达式1(即为循环变量初值);2、求解表达式2,判断条件是否成立,若条件成立,执行循环体;3、求解表达式3,即改变循环变量的值。之后转向2,再判断条件是否成立。4、若条件成立,继续执行循环体,直到条件不成立为止,结束循环。计算表达式1计算表达式2循环体语句计算表达式3非00计算表达式1计算表达式2循环体语句计算表达式3非00For语句下一语句五、课堂小结:三、For语句格式说明:六、作业:四、例题:1、格式;2、执行过程;3、注意的问题;4、灵活性。设计意图:由于for语句格式及执行过程是本课重点,所以选作板书内容,其它如说明、例题、习题都体现在电子教案及电子课件中了。这样,既突出了重点,又节省了时间,提高了课堂的授课效率。通过本次课的学习使学生能够熟悉掌握for语句的格式,理解for语句执行过程,初步掌握使用for语句进行程序设计的方法与技巧,使其分析推理能力有一定提高,激发学生的学习兴趣,为下一步的循环嵌套的学习奠定了坚实的基础。五、教学效果预测谢谢大家!