沪教版信息技术选修1全套教案_第1页
沪教版信息技术选修1全套教案_第2页
沪教版信息技术选修1全套教案_第3页
沪教版信息技术选修1全套教案_第4页
沪教版信息技术选修1全套教案_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章第一节了解计算机解决问题的过程一、教学目标:1、让学生了解算法、枚举法、程序设计语言、编写程序和调试程序等概念.2、让学生知道对现实问题的自然语言的描述,特别是类似程序设计语言的自然语言描述.知识3、让学生理解分析问题、设计算法、编写程序、调试程序这一用计算机解决问题的基本步骤,认识其在算法与程序设计中的作用.1、培养学生调试程序的能力.2、培养学生合作、讨论、观摩、交流和自主学习的能力.通过"物不知数〞、"韩信点兵〞等富有生动情节的实例和探究、讲授、观摩、交流等环节,让学生体验用计算机解决问题的基本过程和乐趣.技能情感二、内容分析:"算法与程序设计〞是普通高##息技术的选修模块之1,它的前导课程是信息技术的必修模块"信息技术基础〞.学生在"信息技术基础〞模块里已经学习了计算机的基本操作,掌握了启动程序、窗口操作和文字编辑等基础知识.学生可以利用上述的基础知识,用于本节课的启动VisualBasic程序设计环境,输入程序代码,运行程序等操作.本节课"计算机解决问题的过程〞是"算法与程序设计〞模块的第一节课,上好这节课是使学生能否学好"算法与程序设计〞这一模块的关键.本节课的教学目的是让学生理解分析问题、设计算法、编写程序和调试程序等用计算机解决问题的基本过程,认识其在算法与程序设计中的地位和作用,它也是后续课程如模块化程序设计、各种算法设计等课程的基础.与本节课相联系的旧知识是计算机的基本操作中鼠标、键盘操作,启动、关闭程序,窗口、菜单操作和文字编辑等基础知识,还有高一数学模块三中算法和流程图等知识.3、学情分析:经过高一年级对信息技术课程的学习,学生对计算机都有了一定的了解,并具备了一定的计算机操作能力.并且在高一数学模块三中学习过算法和流程图等内容,还初步了解了面向过程的三种结构,因此学生对本节内容并不陌生,只是缺乏深入和系统的学习和研究.4、设计思路:本节课是一堂理论性的课,如果单纯由教师讲解就会显得比较枯燥,因此本堂课的设计思路是从经典的问题入手,体验手工计算的局限性,从而引出利用计算机解题的必要性,体验计算机解题的各个环节,最后得出结论,达到理解的目的.教师的主要任务在于积极引导,调动学生的积极性.三、教学过程描述教学环节与时间教师活动学生活动设计意图引入部分提问:老师小时候经常玩耍的内容是掏鸟窝、玩泥巴、打陀螺等等,同学生们踊跃回答,如利用学生感兴趣学们现在经常玩的内容是什么呢?玩电脑游戏、聊的话题,激发学老师:看来同学们玩的内容都与一样东西联系紧密,这样东西是什么天、上网、听生的学习兴趣,呢?MP3、看MP4等等引入课题.老师:有调查结果显示,三分之一的人认为自己离开电脑和互联网无法异口同声:电脑生活.窃窃私语,提问:在惊叹计算机的神奇和享受的欢乐的时候,你是否了解计算解决回答:没有或不清问题的基本过程?有没有思考过其中的奥妙呢?楚首先,我们来看看人解决问题的过程是怎样的,先来看一个古典的问题,我国古代数学名著《孙子算经》中有一个"物不知数〞的问题:今有物不知其数,三三数之剩2,五五数之剩3,七七数之剩2,问物几何?〔一〕手工解题思考、演算提出问题把学生分为8个学习小组,分组讨论,并利用已学过的数学知识找出题目已知什么求什么、写出求解问题的解题步骤.并填写"探究问题记录表.见附录1培养学生合作、讨论、交流和自主学习的能力讨论、探究填写记录表分析问题写出算法了解枚举思想与算法与其描述方式引导学生从最简单、最容易想到的枚举法入手.并从中总结出枚举法的算法,解释并写出算法.见附录2深入探究体验人工计算过程,为后面引入用计算机来解决问题作好铺垫写出"用3除余2〞的数:2,5,8,11,14,17,20,23,26,29,…其中,"用5除余3〞的数:8,23,…其中,"用7除余2〞的数:23,…手工计算得出结果计算、观察由此得到,23是一个最小的解检验结果疑惑〔二〕计算机解题提问:那么比23大的下一个解是多少呢?试验以后发现,是要花些时间的.如果是比较大的数,例如一万以上,那就很费力了.引出新问题下面我们来看一个数据量比较大的问题:韩信是我国西汉初著名的军事家,相传汉高祖X邦问大将军韩信统御兵士多少,韩信回答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人,17人一列余8人,X邦听后茫然而不知其数.以生动并富有挑战性的问题,激发学生学习兴趣茫然分析问题教师:上面的结果接近两万,人工计算要很长时间,如果要你们来解决这个问题,你们有什么好的办法吗?回答:用计算机解题认识计算机解题的必要性在前面算法的基础熟悉算法与其描上,学生很快写出算述方式,认识算写出算法给几分钟时间,让学生分析上述问题并写出算法,法.法的重要性老师:要计算机解决问题有了算法还不行,还要把算法翻译成计算机能够认识的程序.展示程序:见附录3了解由算法到程序的过程编写程序期待、观看教师:"程序编好以后,通过键盘输入计算机,运行程序看是否有错误,然后修改程序,直到得出正确结果的这个过程叫调试程序.〞演示:启动VisualBasic程序设计环境,输入程序代码,进行调试,生成执行文件.通过生动直观的演示,激发学生对学习算法与程序设计的兴趣调试程序得出结果观摩、跃跃欲试惊奇运行程序,得到结果:18232培养动手能力激发学习兴趣自主探究讨论总结把程序代码分发给学生,让学生上机调试运行程序,教师个别指导.动手操作比较人与计算机解题过程的异同,得出计算机解决问题的过程总结:"学习了用计算机解决问题的过程,那么它和手工解题有什么关系呢?思考、回忆分组探讨人工求解问题和用计算机求解问题的异同,并把讨论结果记录在"求解问题的方式讨论记录〞表中.见附录4分组探讨教师提问2~3个小组的讨论结果,并引导出大致如下的形式结果.填写记录表见附录5课堂总结总结本课学习内容,梳理应掌握的知识,展示计算机解决问题的过程.具体问题分析问题设计算法调试程序编写程序得出答案1、有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚.求笼中各有几只鸡和兔?①分析问题,列出数学表达式②写出解题算法课后延伸2、"韩信分油〞游戏:"3斤葫芦、7斤罐、10斤油篓分一半〞,就是用3斤、7斤和10斤这样三种容器来分出两个5斤,要怎么分,试写出步骤.四、教学反思1、整个课堂教学气氛非常活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来.主要得益于两个方面:一是利用两个生动且富有挑战性的经典问题,二是教师的演示和学生动手调试程序环节,将学生牢牢的吸引住;同时本课很多内容都是基于高一数学模块三中的已学知识,知识点的难度小.如算法与其描述方式在高一数学中已有介绍,所以整堂课学生的参与度高.2、学生动手调试程序环节如果把握不好,容易超时和失控.附:教学资源、学生学习过程与典型成果1、探究问题记录表分析问题<找出已知和未知、列出已知和未知之间的关系>写出解题步骤结果2、"物不知数〞问题算法:①令X为1.②如果X整除3余2,X整除5余3,X整除7余2,这就是题目要求的数,则记下这个X③令X为X+1〔为算下一个作准备〕④如果算出,则结束;否则跳转到第②步⑤写出答案3、"韩信点兵〞源程序代码:PrivateSubcommand1_Click<>DimXAsInteger,YAsIntegerX=1:Y=0DoIfXMod3=1ThenIfXMod5=2ThenIfXMod7=4ThenIfXMod13=6ThenIfXMod17=8ThenY=XEndIfEndIfEndIfEndIfX=X+1LoopUntilY>0Print"韩信统御士兵数:";YEndSub4、关于求解问题的方式讨论记录求解问题的方式人工求解问题用计算机求解问题相同点相同点不同点不同点5、学生填表大致结果:求解问题的方式人工求解问题分析问题、设计算法、得对题目进行解答、运算速出结果、验算结果等编写程序、调试程序、运算速度快等度慢、不需要计算机等用计算机求解问题6、"韩信点兵〞执行程序:hxdb.exe第1章第二节算法和算法描述一、教学目标:〔1〕、知识与技能目标:①、了解算法的基本概念和特点;②、掌握算法的描述方法;能用自然语言、流程图、伪代码描述算法;〔2〕、过程与方法目标:通过分析实际生活中的问题,理解和熟悉自然语言、流程图和伪代码等清晰描述解决问题的过程,确立算法的概念;〔3〕、情感态度价值观目标:①、通过对生活中具体实例的分析和解决,激发学生的学习兴趣.培养学生的自主探究能力;②、通过算法描述,锻炼学生自行分析问题与解决问题的能力,培养学生严谨的思维习惯;③、增强学生的逻辑思维能力和表现意识,鼓励学生分享思想和反思自我的学习理念.二、内容分析:本课是高二第一章的内容,也是整个《算法与程序设计》模块的基础知识,本节内容对后续章节的学习起着十分重要的作用,让学生从整体上计算机解决实际问题的过程;因本节内容在高一数学模块三第一章中学生已有初步接触,比较简单,教师可根据具体情况有所深入地进行授课.本节课是一堂理论性的课,又缺乏理论的深度,如果只由教师讲解就会显得比较枯燥,因此本堂课的设计思路是从具体的案例入手,引导学生进行思考、讨论,最后得出基本的结论,形成一定的概念,达到理解和应用的目的.教师的主要任务在于积极引导,调动学生的积极性.三、教学过程教学阶段教师活动1、出示渡河游戏,要求学生给出解决的办法.2、怎样在全班同学中找出最高的同学?学生活动设计意图运用学生感兴趣的事物,激发学生的学习兴趣.积极参与,发表观点,说出解决的办法.一、引入二、新课讲解通过总结两个实例的算法分析过程,引观看课件,与教师探讨引导学生将感性认〔一〕算法的概念出算法的概念.算法的意义.识提升为理性认知.展示高一数学模块三第一章的三个例题,找出算法还具有两个特点:一个算〔二〕算法的特征法有0或多个输入、1或多个输出.继续总结渡河游戏,得出算法具有有穷性、确定性和可行性.思考和分析X例,领会调动学生对生活的算法的特征.认识和体会,融入对回顾实例,寻找规律,算法的学习和理解.共同总结.利用渡河实例,细致分析算法,介绍自然语言描述算法设计.对实例进行初步算领会算法设计的过程:提出问题、分分步骤讨论和分析,会法设计,自然语言易〔三〕算法的表示——自然语言析问题、设计算法.提出问题:"求三个数中值最大的数.〞——分析问题——用自然语言描述出算法.运用自然语言设计实于理解,为后续其他例的算法.抽象描述方法作铺垫.总结自然语言的优缺点,引出流程图的表示方法,介绍流程图的基本结构,分积极探索、分析,运用对比学习,加深对各流程图描述该问题的〔四〕算法的表示——流程图析其逻辑关系的表示.提出问题:"求三个数中值最大的数.〞——分析问题——用伪代码描述出算法.类算法设计描述方法的认识,培养学生设计算法的能力.算法.通过分析流程图不易被转换为计算机语言,并且表示复杂的问题时较麻烦,观看课件,积极参与分引导学生掌握伪代对比引出伪代码.介绍伪代码对算法的描述方法,针对赋的三种结构析,结合已学程序设计,体会伪代码中的指令语言自然语言描述实例,以值指令、循环指令、条件指令和输为基础,进一步运用〔四〕算法的表示——伪代码码的基本指令.入、输出指令以与关系运算符和逻辑运算符讲解一般格式.积极分析指令语句含伪代码描述,提高学义.生对算法的理解.提出问题:"求三个数中值最大的数.〞用伪代码描述出算法.总结本课学习内容,梳理学生应掌握的知识.回顾高一数学模块三中介绍求两个正互相讨论、积极探究,让学生发现解决同分组以两种不同的算一个问题的算法不总结算法的概念和特征,以与算法设计的表示.三、归纳总结四、课后延伸回忆,记录整数的最大公约数的两种经典方法:"更相减损术〞和"辗转相除法〞,法求两组数据的最大是唯一的,选择不同同时给出两组数据分别求他们的最大公约数,并进行总结反的算法编写的程序,公约数:〔12,16〕、〔2678945、思.发现对于第二组数计算机运行的效率465〕.分组讨论,展示各组设计方案.据,"辗转相除法〞算会有很大的差异.从而让学生体会到算同种描述算法的方法对比,分析各组设计出的算法是否最佳.法的效率明显高于"更相减损术〞.法的设计在应用计算机解决问题的过程中的重要作用.第1章第三节程序和程序设计语言一、教学分析本节涉与到基础知识较多,所以要循序渐进,从一个简单的求圆的面积的程序入手,从中分析程序一般包括的四部分,基本数据类型、常量与变量,运算符、函数和表达式,同时结合实际联系来加强对这些新知识的巩固.二、教学重点、难点重点:理解程序常用的基本数据类型,常量与变量,运算符和表达式等.难点:运用VB语言和算法设计程序分析并设计问题的过程三、教学过程〔一〕创设情境、导入新课提出一个问题"求半径为r的圆的面积〞然后要学生讨论怎么编程,从哪一步入手去进行编程工作呢?引导学生思考,编程过程分为几步,就像我们想要喝水,分析看看需要几步〔烧水→沏茶→喝水〕〔1〕首先要对问题进行需求分析;〔2〕然后为问题设计一个正确的解题方法和步骤;〔3〕最后通过程序设计语言完成所需的操作步骤.用自然语言描述算法如下:<1>输入圆的半径;<2>利用公式"圆的面积=圆周率×〔圆的半径的平方〕〞计算圆的面积;〔3〕输出圆的面积..用vb编写出上述程序,让学生注意观察程序的组成结构与其功能,并思考给出的问题:①程序共有多少行,每一行的作用是什么?②按语句的作用区分,此程序包含几个部分?(二)讲授所知考察上述程序,学生可以看到程序的代码,了解程序就是由这样的一组语句组成.每一个语句都是按照一定的规则书写.然后再展示用vb编写的小软件,如:〔1〕演示"计算器〞程序〔2〕演示"语音〞程序激发学生学习程序和程序设计语言的兴趣,引入课程〔三〕拓展实践设计房租收费程序,其要求是:住房面积80平方米以内〔含80平方米〕,每平方米收费3元,住房面积超过80平方米时,超过部分,每平方米收费5元.输入住房面积数,输出应付的房租.〔1>设计算法:用S表示房面积数,以m表示应付的房租,算法如下:<1>输入S的值;<2>如果"S<=80〞则"m←S×3〞,否则"m←80×3+<S-80>×5〞<3>输出m的值.<2>编写程序&调试运行:用VB〔VisualBasic〕编写程序测试并且运行程序发现问题并修改程序(三)利用计算机处理问题的过程(四)自己动手1.对照学案完成求和:1+2+3+…+1002.设计程序并且测试运行,若有问题,与时修改直至得到结果.3.保存并且提交任务.4.小组讨论(五)评价总结1.请已经提交的同学3~4个展示完成的作品,我再适时给予点评.2.对学生进行鼓励,让他们有兴趣学习程序编程方面的知识.第2章第一节VB语言与程序开发环境一、教材分析本节主要在第一章的基础上,利用一个简单程序,介绍了可视化程序开发工具的开发环境和思想.让同学们初步体验VB语言的基本知识为后续章节提供了可视化编程的基本思路.二、教学重点、难点难点:熟悉VB工作室;通过实例了解可视化编程的一般步骤.重点:利用VB工具箱中的工具设计程序界面;会修改对象的属性.三、教学过程设计教学环节教师活动运行一个welcome.exe〔由vb软件制作〕,如图:教学课1课时时情境导入提问:这个程序是用什么语言设计的?总结学生的回答,该程序是用VB语言设计.引出本节课讲解的内容〔PPT展示内容纲要〕,重点强调VB的"工作室〞和"制作第一个VB程序〞.用机房广播软件播放课件1.1VB语言介绍"考一考〞〔提问〕新课讲解VB语言是谁创建的,哪一年推出的?VB语言可以做什么呢?VB语言属于第几代编程言?VB语言的特点是什么?PPT展示答案讲到VB语言的特点是简单易学,为什么呢?引出VB的概念,VB〔VisualBasic>语言是Windows环境下快速开发应用程序的可视化编程工具.〔重点讲解"可视化〞的定义〕1.2VB6.0的启动与退出教师在课堂演示VB6.0的启动与退出的相关操作.在退出操作时,演示VB6.0文件保存的不同之处〔需要保存两次〕.1.3VB6.0的"工作室〞PPT展示:VB6.0的程序界面提问:这个程序界面和其他软件〔比如word、excel等软件〕的界面有什么异同点呢?介绍VB软件和其他软件的异同点①与大多数软件一样有共同点:标题栏、菜单栏、工具栏、工作区②不同地方:控件工具箱、VB工程管理器、属性窗口、代码窗口、窗体布局窗口讲解常用窗口的作用1、控件工具箱〔演示控件的画法〕2、窗体窗口3、工程资源管理器4、属性窗口〔演示前景色、背景色、字体的更改〕5、窗体布局窗口〔演示其功能〕以表格形式总结常用窗口的作用<PPT展示>1.4制作第一个VB程序PPT展示:制作第一个VB程序〔情境导入的"welcome.exe〞〕制作流程,一、创建界面二、设置界面控件属性三、编写代码四、运行程序五、保存和编译文件教师边讲解边演示.将该程序的操作流程以word的文件形式通过控制软件传送给学生〔动手能力强的同学可以独立完成,其他同学可以参考操作流程〕,并要求学生设计第一个VB程序.1.5课堂小结本节课介绍了VB语言的常识、VB程序的开发环境〔控件工具箱、窗体设计窗口、代码窗口、工程窗口、属性窗口和窗体布局窗口〕和制作一个VB程序的步骤.课后作业:探讨如何制作登陆界面,用到哪些控件,哪些我们可以通过今天的学第2章第二节VB语言概述一、教材分析包括以下四部分内容:〔一〕VB程序的基本组成〔二〕基本数据类型〔三〕常量与变量〔四〕运算符、函数和表达式二、教学重点、难点重点:1、常量、变量的定义;2、常用的运算符、函数与其使用.难点:1、能根据问题要求选择适当的数据类型定义变、常量;2、能将数学表达式转换为VB语言三、教学过程〔一〕课前准备学生下载本节学习资源"变量演示程序〞、"变量演示代码.doc〞、"根据圆的面积计算其周长〞程序;〔二〕温故知新师:上节我们提到我们将用VB语言来表达我们的算法思路,指挥计算机来解决问题.就像我们学习一门外语一样,我们要学习里面用到的单词和语法规则,才能运用这种语言来表达思想.因此本节将进入第二章《程序设计基础》的学习,了解VB这种语言.〔三〕引导学生阅读程序、猜测结果1、师:其实这种语言并不神秘,请同学读读这段程序,〔展示变量演示程序〕你会发现并不难懂.都是同学们比较熟悉的一些英语单词和数学表达.①DimaAsInteger②PrivateSubCommand1_Click<>③a=100④Text1.Text=a+2⑤EndSub2、引导学生阅读③、④句3、师:你能猜到以上程序执行后,文本框中的结果是什么吗?学生:1024、师:〔执行程序〕看来程序并不难懂,同学们虽然第一次接触,但都能理解了.那如果100改成50000呢?请同学打开"变量演示程序〞和"变量演示代码.doc〞,按word文档的要求修改a=?的值,看能否得到预计结果,实际运行结果是什么?你认为是什么原因呢?50000代码a=100预计结果102实际运行结果102如何修改类型说明语句?实际与预计相符,无需修改a=5000050002a=100.89a=#2010-2-27#102.892010-3-1a="china中国"a=true〔四〕学生尝试,教师引导学生自学,尝试解决问题学生尝试,教师巡堂并提问:有多少个运行结果与预计一样?你认为是什么原因呢?请同学观察代码的第一行,并自学书本p27变量的定义与表2-1VB定义的常用基本数据类型,思考问题所在,并尝试修改,得到预计结果.〔五〕认识常、变量,修改巩固1、师:很多同学都找到原因:dimaasintegerA是一个变量,就像我们经常看到数学方程式,如:y=x+2,我们说x是变量,而2是常数.在编写程序时,我们也把在程序执行过程中,其值可以改变的量称为变量.而2,在程序运行过程中保持不变,称为常量.2、与数学解题中对用到的变量要设x是……,设y是……作用类似,程序中的变量也要先说明再使用.而且说明也有规定的格式.Dim变量名as类型.Dim是说明变量的关键字.A是变量名,可自己取,但要一定的规则.请同学阅读书本p28对变量名的规定,完成以下选择题:在VB语言中,下列变量中合法的变量是〔〕A.b90B.abc=9C.helloD.888fl3、学生回答,教师点评分析:答案为c,D选项以数字开头,A选项中的"〞、B选项中的"=〞为VB保留字,不能出现在变量名中.4、师:Integer是什么意思呢?a的类型.请同学阅读书本中的说明,integer的表示X围是什么?所以同学们可以猜到为什么a=50000时,不能得到预计结果吗?此时a应该定义为哪种类型?生:long师:编写程序难免出错,不轻易放弃,冷静查找原因,大胆尝试.请同学们尝试为表格中的变量正确定义,使程序能正常运行,得到预定结果5、学生练习.6、教师转播个别同学表格,评讲答案.〔1〕科学计数法,single和doubel的表示X围.整型、长整型、单精度型、双精度型都是数值型,只是取值X围不同.师:那把所有数值都定义成双精度类型,X围就足够大了?生:浪费师:变量占用内存空间,如果规模大的程序,这种方式将会影响运行速度.原则上"够用即可〞〔2〕为什么"china中国"+2定义正确仍出现"类型不匹配〞错误:用双引号括起来的"china中国〞是字符型与数值相加无意义〔3〕日期型用一对"#〞号括起来.〔3〕VB中TRUE和false的值分别是-1和0而常量可以直接使用,如"1234〞、30001等,请完成以下选择题:下列数据属于字符串常量的是〔〕A.bcdaB."zanfb〞C.‘hjdnc’D.‘j-098’下列数据中合法的长整型常量是〔〕A.09bB.2738940D.8.12345E12〔六〕实践尝试、引入运算符1、教师演示根据圆的面积计算其周长程序效果.与学生回顾上一章编制计算机程序解决问题的过程.分析问题和算法,并板书于白板:2、分析问题:已知圆的面积s,求该圆的周长C设计算法:①输入圆的面积②求出R=③求出c=2r④输出圆的周长编写程序.打开准备好的"半成品程序〞,带领学生阅读,介绍程序的其中三大组成部分:输入、处理和输出.师:你认为少了哪个部分?生:变量的定义说明提出任务:〔1〕根据实际情况为变量定义、说明〔2〕根据算法提示填写完成程序空白的部分,取3.143、学生练习,教师巡堂师:有同学问这个开方怎么办?请同学阅读P28算术运算符表格,可以帮助你解决问题吗?〔七〕讲解解惑、引入函数1、教师点评:〔1〕数学运算符在VB中的书写方式,讲解常用运算符.〔2〕强调*不能省略、^的使用格式;〔3〕利用数学中的竖式解释\和取余运算〔4〕介绍运算符的优先级,计算练习:1+3*4mod15/3-2^3+14\9/3师:这些运算符可以满足你的需要了吗?提示开方可以用1/2次方的方式.2、学生修改程序,个别学生同时在教师机示X.3、学生出现运算顺序与预期不符的问题,教师可利用投影,提示学生可以用括号改变顺序.并提示另一种实现方式:函数.请学生自学P29《VB常用的内部函数》,提出修改要求:〔1〕用函数开方,并将所求的r四舍五入取整4、学生练习,教师巡堂〔八〕点拨关键、自学符号常量1、教师点评:sqr、cint的使用:r=cint<sqr<s/3.14>>2、由于VB函数较多,不可能一一学习.此时需授学生以"渔〞,但需要用到一个新的函数时,可通过查找工具书、观察VB提示、查询VB帮助文档学习知识、解决问题〔2〕提出要将值取为3.1415926535,你会如何做,逐个修改吗?如果程序中10、20地方用呢?师:如果一个常量在一个程序的多处出现,为了修改、维护方便,可以用定义一个符号来代表这个数,格式:const常量名as类型=表达式.在程序中用这个常量时就可以用这个符号代替,如需修改,要修改多少处呢?生:1处师:对,只要修改常量说明就可以了.3、学生练习定义常量PI,修改程序.〔九〕点评练习,巩固提高1、Pi的定义:constpiasdouble=3.1415926535<有效数字超过7位,再次复习数据类型>2、表达式的概念.完成选择题练习:下列表达式合法的是〔〕A.a+b*|c|B.bct÷9C.D.PI*R*R〔十〕课堂小结,拓展铺垫1、小结〔1〕程序的结构〔数据类型说明、输入、处理、输出〕〔2〕变量Dim变量名as数据类型〔3〕常量const常量名as类型=表达式〔4〕基本数据类型〔5〕运算符、函数、表达式2、拓展问题:可否将计算r和c的两句代码对调?为下节顺序结构做铺垫.第2章第三节选择结构一、教材分析:本节课的内容结构是:首先请每相邻的2个同学一起玩儿时的锤子、剪刀、布游戏,并简单介绍玩的方法,然后老师演示VB做好的锤子、剪刀、布游戏小程序,让学生了解计算机程序的工作流程.通过解剖这段程序让学生了解程序设计的基本思想和流程.在学生练习中,让学生编写运行程序,亲身感受计算机程序解决问题的过程.二、教学重点、难点:〔1〕教学重点:在高级语言环境中编写并执行一段程序代码,了解其工作过程VB中的IF语句、以与随机函数〔2〕教学难点:剖析程序,了解其结构组成和具体作用,认识计算机程序设计的基本流程熟练掌握VB中的IF语句、以与随机函数的使用如何把简单的游戏过程转化为计算机容易解决的编程方法上4、设计思路:1、教学方法设计在教学中选用了学生儿时玩过的锤子、剪刀,布游戏为例子,通过学生玩游戏的方法和步骤,引导出计算机解决问题的方法和步骤,即"算法〞.教学中采用了"活动式〞、"启发式〞、"探究式〞、"任务驱动式〞等教学模式.在教学设计中安排大量的尝试性、探索性的活动,引导学生积极主动地完成学习任务.逐步建立起自主性和研究性的学习模式,从而更加突出学生在教学过程中的主体地位.教学中还安排大量的实践性、操作性的内容,使学生在具体活动中理解信息技术的基本知识,掌握信息处理的基本技能,并能够灵活应用到学习和生活中.三、教学过程描述1.教与学的过程描述教学环节教师活动与时间对学生学习过程的观察和考查学生活动设计意图引入课题要求玩儿时游戏〔3分钟〕演示VB样例程序每2个同学玩游戏观察VB样例程序引导学生对比人和计引入课题算机玩游戏提出问题在VB中如何编写这学生讨论,互相探讨听学生讨论,引导学进入主题〔2分钟〕个程序呢?生得出"随机〞思想分析问题得出随机思想,提出学分讨论如何转化模听学生讨论,引导学得出程序设〔5分钟〕如何转化为计算机容式?易解决的模式生分析,得出转化方计思路法剖析程序理顺思路,剖析程序,师生互动,理顺思路,观察学生,看其能否分析思路〔10分熟悉流程钟〕与教师互动,跟上教剖析程序师的思维上机练习辅导学生上机练习学生设计界面、编写辅导学生上机练习,互助协作〔20分安排能力好的同学帮代码、调试代码观察学生谁做出了好的作品,解决学生的疑难点钟〕助有困难的同学评价交流对好的作品进行评看老师演示作品〔3分钟〕价,对出现的错误进相互交流作品行分析观察学生,看其对自相互交流己的作业是否满意,是否有成就感总结〔2分钟〕编程思想和流程一起总结这个程序的和老师一起回顾并总看学生在老师的引导回顾总结结下能不能自己总结出来感悟提升让学生使用准备好的学生自己运行程序,观察学生,看其运行激发学生学〔1分钟〕VB开发的程序和软更深的感受程序设计了实用程序后,有何习程序设计件,让学生对程序解的魅力决问题有更深的了解.反应的兴趣2、关键环节提炼〔1〕引入:以儿时所玩的锤子、剪刀、布游戏为背景,从演示VB编写的锤子、剪刀、布游戏程序入手,能立即唤起学生求知欲望,产生学习兴趣.〔2〕剖析:这一环节的流程如图所示:玩游戏的方法和步骤计算机如何解决这样的问题算法的概念学生玩游戏的方法、步骤体现的数学思维是计算机程序设计的基础,我利用对比的方法,从人机对话的角度,逐句剖析计算机编写的锤子、剪刀、布游戏程序〔见程序剖析实例〕,让学生了解其结构组成和具体作用,懂得计算机程序设计的基本思想:按照人类解决问题的思维方法,进行人机对话.计算机能够听懂的"话〞,就是我们输入的命令.这样,就有利于消除计算机编程的神秘感,激发学生学习计算机编程的兴趣.首先,这个程序中人和计算机每次都有3种出牌的可能,那么如何编写程序最方便呢?〔引导学生思考?〕我们就把这3个图片形象的用3个数字来代替,这样就使我们的编程更容易实现.因此,我们这样进行约定:锤子,用数字"1〞表示剪刀,用数字"3〞表示布,用数字"3〞表示这里提问让学生思考,这个约定一定要唯一吗?要注意什么?〔讨论〕程序剖析实例:〔以人出锤子为例〕Dimsum,w,d,LAsInteger‘定义变量,sum表示总局数,w表示你赢的局数,d表示平局数,L表示你输的局数PrivateSubCommand1_Click<>Dimx,yAsIntegersum=sum+1‘定义变量,x表示电脑出的数字,y表示你出的数字RandomizeTimer‘随机函数初始化x=Int<3*Rnd>+1y=1‘电脑随机出数〔1,2,3任选其一〕‘我出的数字〔锤子〕Image4.Picture=Image1.Picture‘显示我出数字所对应图片Ifx=yThen‘计算机出的和你相同Label3.Caption="平局"Image5.Picture=Image1.Pictured=d+1EndIfIfx=2Then‘你出锤子,计算机出剪刀Label3.Caption="你赢了!"Image5.Picture=Image2.Picturew=w+1EndIfIfx=3Then‘你出锤子,计算机出布Label3.Caption="你输了!"Image5.Picture=Image3.PictureL=L+1EndIfText1.Text=sumText2.Text=wText3.Text=dText4.Text=LEndSub通过上述分析,让同学们思考讨论如何编写另外2段程序?〔3〕体验:教学中安排了"编程实现〞一个小节让学生经历和体验程序设计的过程,设计"界面设计〞、"代码编写〞、"调试运行〞三个环节.结合学生的实际情况,组织学生实施上述三个环节的学习、体验.首先将引入课题时运行的锤子、剪刀、布游戏程序提供给学生们,让其观看界面的设计.要求学生在老师完成一部分程序后,举一反三,自己动手编写所有的程序,亲身感受计算机程序解决问题的过程.〔4〕评价和交流:在整个教学过程中,都注重教室和学生、学生和学生的交流互动.如,在剖析程序时,要求学生与玩游戏时解决同类问题比较,在"编程实现〞过程中,教师进行有目的的分层指导,让完成"任务〞的学生通过"广播教学〞给其他同学做示X,并介绍经验、体会,教师与时进行点评,其他同学提出补充或修改意见.通过交流互动,实现知识"共享〞,共同体高.〔4〕总结提升:在"编程实现〞的基础上,让学生自己使用老师提供的其他VB开发的实用程序,教师引导学生讨论,使学生认识到用计算机编程可以帮助我们解决很多的问题:不但能解决锤子、剪刀、布小游戏问题,还能解决更大更复杂的问题,如office就可以用VB开发出来的,更深刻的感受程序解决问题的魅力.认识到计算机解决问题和人解决问题一样需要有清晰的解题步骤.而对于计算机而言,这种解题步骤就称为算法.计算机编程解决问题的过程分析问题设计算法编写程序调试运行检测结果附:教学资源、学生学习过程与典型成果〔可选〕制作界面:程序运行界面:完整程序代码:Dimsum,w,d,LAsIntegerPrivateSubCommand1_Click<>Dimx,yAsIntegersum=sum+1RandomizeTimerx=Int<3*Rnd>+1y=1Image4.Picture=Image1.PictureIfx=yThenLabel3.Caption="平局"Image5.Picture=Image1.Pictured=d+1EndIfIfx=2ThenLabel3.Caption="你赢了!"Image5.Picture=Image2.Picturew=w+1EndIfIfx=3ThenLabel3.Caption="你输了!"Image5.Picture=Image3.PictureL=L+1EndIfText1.Text=sumText2.Text=wText3.Text=dText4.Text=lEndSubPrivateSubCommand2_Click<>Dimx,yAsIntegersum=sum+1RandomizeTimerx=Int<3*Rnd>+1y=2Image4.Picture=Image2.PictureIfx=yThenLabel3.Caption="平局"Image5.Picture=Image2.Pictured=d+1EndIfIfx=1ThenLabel3.Caption="你输了!"Image5.Picture=Image1.PictureL=L+1EndIfIfx=3ThenLabel3.Caption="你赢了!"Image5.Picture=Image3.Picturew=w+1EndIfText1.Text=sumText2.Text=wText3.Text=dText4.Text=LEndSubPrivateSubCommand3_Click<>Dimx,yAsIntegersum=sum+1RandomizeTimerx=Int<3*Rnd>+1y=3Image4.Picture=Image3.PictureIfx=yThenLabel3.Caption="平局"Image5.Picture=Image3.Pictured=d+1EndIfIfx=1ThenLabel3.Caption="你赢了!"Image5.Picture=Image1.Picturew=w+1EndIfIfx=2ThenLabel3.Caption="你输了!"Image5.Picture=Image2.PictureL=L+1EndIfText1.Text=sumText2.Text=wText3.Text=dText4.Text=LEndSubPrivateSubCommand4_Click<>EndEndSub第2章第四节程序的循环结构-For循环语句一、教学分析1、掌握FOR循环语句的格式.2、理解FOR语句的执行过程.3、学会使用FOR循环语句来实现循环控制结构,解决实际问题.4、进一步掌握程序调试运行的方法.二、重点难点关键点重点:让学生学会使用VB语言的For循环语句来实现循环控制结构,解决实际问题,并且培养学生的创新能力.难点:本节是VB教学中较难的一部分,多重循环结构则是本节程序设计的难点,本节教学要能够使学生将以前所学习过的知识有机地结合在一起,并且充分发挥自己的创造力,利用三种基本结构进行编程.教学关键点:利用学生已经掌握的数学知识,引导学生综合VB的三种程序结构,努力发挥学生的研究性学习能力,培养学生创造性思维和综合运用知识的能力.三、教学过程[知识回顾]〔计划用时:3分钟〕分组讨论并回答下列问题:1、程序中有哪三种基本结构?2、循环语句的格式与使用[讨论引入]〔计划用时:7分钟〕分组讨论并回答下列问题:举出一道例题:输出100以内的所有偶数的算术平方根,先让学生观查用顺序结构编写程序的可能性,再让学生根据书中例题尝试用FOR循环结构来编写程序.顺序结构编程:PrivateSubCommand_Click<>PrintSqr〔2〕PrintSqr〔4〕PrintSqr〔6〕……PrintSqr〔100〕EndSub循环结构编程:PrivateSubCommand_Click<>ForI=2To100Step2PrintSqr<I>NextIEndSub[学生归纳]〔设计用时:2分钟〕循环语句的一般形式:For循环变量=初值To终值Step步长值语句组Next循环变量[教师说明]〔设计用时:5分钟〕FOR循环语句的注意事项:1、For-Next语句成对出现,循环变量名保持一致2、循环变量是数值型变量3、步长值可正可负,当步长值为1时,Step与步长值可以省略4、初值、终值和步长值既可以是常量,也可以是变量和表达式[分组讨论]〔设计用时:6分钟〕通过"陷阱〞,深化理解语句格式:阅读下列程序,指出错误打印1~5这5个数1>ForI=1To5Step-1PrintI2>ForI=1To5Print〝I〞NextINextI3>ForI=1To5PrintI4>ForI=1To5PrintINextj5>ForI=5To1PrintINextI[深入理解]〔设计用时:6分钟〕1、师生共同分析For循环语句的执行过程2、关于FOR循环语句的几点说明:①对于循环变量的值超过终值的理解:初值<终值,步长为正,循环变量的值>终值时停止循环初值>终值,步长为负,循环变量的值<终值时停止循环②循环次数的计算公式〔一般情况〕:循环次数=INT〔终值-初值〕/步长+1[操作实践]〔设计用时:6分钟〕由学生阅读〔调试、运行〕下列程序,指出循环结束时变量a的值、程序循环的次数、运行的结果.实践1实践2Fora=1To100Fora=100To1Step-1s=s+aNextaPrint"s=";sPrint"a=";as=s+aNextaPrint"s=";sPrint"a=";a[学生练习]〔设计用时:20分钟〕题目:〔信息技术会考纲要45页上机题3〕设计一程序,计算1*2+2*3+3*4+4*5+……+N*〔N+1〕的和〔N<=60〕.程序界面如下:评讲:〔程序代码〕PrivateSubCommand1_Click〔〕DimNAsIntegerDimSAsLongN=Text1.textS=0Fori=1toNS=s+i*〔i+1〕NextiText2.Text=SEndSub[本课小结]1、FOR语句的格式包括三个部分:FOR语句、NEXT语句和循环体,注意事项要记清楚;2、分析循环程序时要注意重复处理的操作〔循环体〕和循环次数〔循环结束的条件〕.[课后探究]〔设计用时:1分钟〕1、相互讨论:数学中哪些问题可以使用循环语句来解决?2、用循环语句法求两个整数的最大公约数、最小公倍数,并尝试用编程实现.第2章第五节模块化程序设计一、教材分析〔1〕理解自顶而下、逐步求精的程序设计方法;〔2〕掌握VB语言的过程与函数的定义和调用方法.〔3〕理解模块化程序设计的基本思想.二、教学重点、难点教学重点:让学生学会使用VB语言的过程与函数的定义和调用方法.教学难点:理解模块化程序设计的基本思想,并运用于程序设计中.三、教学过程教学环节教师活动学生活动情景导入从歌德巴赫猜想的故事入手,验证歌德巴赫学生边阅读边倾听.猜想,激发学生学习的兴趣和热情,通过先看P61的程序2-9A观查此程序有没有功能重复的地方,如何才能省略书写……并且反复调用同一功能的程序代码呢?拉开本节教学的序幕.新课讲解1.通过组织学生探究"验证歌德巴赫猜1.学生对"验证歌德巴赫想〞问题,引导学生经历分析问题、设计算猜想〞问题展开分析问法、编写程序、调试程序等用计算机解决题、设计算法、编写程问题的过程;归纳总结自顶而下、逐步求序、调试程序等用计算机精的程序设计方法;解决问题的探究活动.2.通过师生共同分析"验证歌德巴赫猜2.学生在教师的指导下,阅想〞的另一个程序,归纳总结VB语言的过程读、分析、归纳,完成实践与函数的定义和调用方法.任务.3.通过师生共同分析"求五边形的面积〞3.学生对"求五边形的面程序,归纳总结模块化程序设计的基本思想.积〞问题展开分析问题、4.要求学生求三个数的平均数.〔用自定义设计算法、编写程序、调函数与自定义子过程〕试程序等用计算机解决问题的探究活动.4.学生在教师的指导下,阅读、分析、归纳,完成实践任务.五、拓展1、求园的面积,已知半径为1、3、5、7、9、11.〔调用函数方法〕2、调用子程序,使第一行打印20个*,第二行打印10个*,第三行打印20个*.引导学生利用函数与子程序解决较复杂问题,体会利用函数与子程序的好处.六、小结1.自顶而下、逐步求精的程序设计方法;2.VB语言的过程与函数的定义和调用方法;3.模块化程序设计的基本思想.七、练习指导学生根据本节所学的知识,完成求任意四边形的面积问题,要求他们能分析问题,设计算法,编程求解问题.第3章常用算法与程序实现第一节解析法一、教材分析本节课是"用解析法解决问题〞,是第3章第1节内容,本章侧重于运用算法解决实际问题,设计合理的算法并编程实现.本节主要阐述解析法,该方法应用广泛,与数学学科的代数解析式相联系,结合教学要求和教材事例,本课从数学角度入口,引发学生思维迁移,解决实际问题.解析法是日常生活中解决问题用的较多的一种很普通的方法,所以学生对这个词并不会感到陌生.只要稍作引导便能理解,只是代码的编写与理解要分析到位透彻.二、教学重点、难点:重点:会编写程序实现解析法难点:如何用解析法分析解决具体问题三、教学过程:教学环节教师活动学生活动设计意图1、让学生看已经截取好的电影片段学生感到惊奇很高激发学生学习兴趣,<10秒钟>,主要是显示钻石的光芒和兴,但他们回答:钻让其产生好奇心和创设情境导入立体的效果.石不会这样发光,那求知欲2、问学生真实的钻石会不会这样像这是怎么回事?手电筒一样发光吗?多数学生会怀疑地新课3、告诉学生这是电脑制作的结果!问:怎么模拟的?引出概念要让钻石发光,首先得考虑如何绘制1、学生积极思考,理论问题学生都不钻石的图案,然后要知道钻石是什么如何把这个概念简是很愿意集中注意结构.我们今天就介绍给同学们一种要化?常用来解决问题的方法:解析法,看2、有少部分学生此要让学生自己思会回答出来:分析考,从理论中找到解力去听讲去理解,因看用解析法如何绘制钻石图案?1、解析:就是剖析、深入分析的意问题数学模型思.决问题的并举例说2、解析法:就是在分析具体问题的表达式表示各元素明,这样不会让他们基础上,制取出一个数学模型,这个数的关系解决问题的不会游离课堂.学模型能用若干个解析表达式表示3、日常生活中的出来,解决了这些表达式,问题也就得解析法如:乘火车以解决.3、解析法是程序设计中最常用的算1400KM,速度法之一.100Km/h>,请问所从到##<全程约4、请学生用简单的流程表示出解析用时间是多少?法解决问题的过程<提问>并举例:1400/100=14h日常生活中有哪些地方用到了解析法?<教师稍作提示>1、展示钻石的结构<化学结构和数启发学生思考<老1、将实际图案转化学模型>,并观察其图案,找出规律:师稍作提示>:为数学模型,这样更规律:①这颗"钻石〞是由点和线构1、先确定点然后利于用解析法分析.成的.②点与点之间都有连线.2、思考:如果让同学们自己去画该2、点的确定图,你们会怎么画呢?3、连线连线2、复杂问题简单化,学生易与数学问题联系易接受3、老师总结:实际上就是平面图多数学生能回答出3、学生分组合作,形"圆〞的画法.由此我们应该做三件来增强团队意识,集体事:①确定坐标系,由于在VB窗体中各小组<四组>总结主义精神,养成积极坐标原点,不是中心位置,所以我们要出伪代码由指定成思考的好习惯把原点移到窗体的中心,在圆周上取员<每节课换一个N个等分点即把圆N等分.②求点的位新成员>演示并讲分析问题置:N等分后各个点与原点的夹角设解给大家听.由成员突破重难点为θ,<x,y,r构成一个直角三角形>所以指出代码的错误和我们可以用半径r和θ表示出各点的原因,各组完成很坐标来:第一个点为:<x1,y1>则好,基本能正确写出x1=rcosθ,y1=rsinθ其中θ=3600/N.同代码.样第二个点的坐标为:<x2,y2>,x2=rcos2θy2=rsin2θ由此可见第i个点的坐标为:<xi,yi>,xi=rcosiθyi=rsiniθ教师总结:这些表达式就是我们用解析法求出的解析表达式③画线连接各点4、算法已经分析了,让学生分组讨论伪代码应该怎么写?教师指导1、展示正确的伪代码并与个别学生1、学生自己编写1、学生能将伪代码编写的有误代码作比较,分析错误的的代码与之作比较转化为可执行代码,原因.<大多数学生会发生这样同类会感到有收获,找到但层次结构安排不错误>自己的错误原因当,应加强这方面的2、分析代码中内层循环和外层循环2、动手调试程序,训练.的作用和区别.①外层循环作用是:并改变线段的颜色2、学生写代码时,求出点坐标②内层循环作用是:画和点数出点与点的距离③判断语句作用:i和j不是同一点时开始画线.不写注释语句,为调试修改带来一定的难度.编写代码3、把伪代码编译成VB语言的格式,逐句解释.4、说明:点数可以改变<?等分>,改变原点的方法:①frmdraw……用坐标相减的方法.②画线段方法:frmDraw.Line③线段的颜色:vbBlue5、让学生调试该程序拓展练习课本实践:选择P43中的一个实践,已经完成例题操作针对学生不同的特根据自己的算法设计,编写出VB程的同学可以做拓展点,适当做补充练习,序,并调试运行练习,然后将这道题让部分学习和动手讲给本组的其他成能力较强的学生多员听,为什么这样练习多得到锻炼,带做.动其他同学加深对解析法的理解.在学生自我总结的基础,教师依各小学生对自己本节课发挥学生自我分析组完成情况具体说明情况,表扬比较的学习情况作一小问题、总结问题的课堂总结课后思考课外作业优秀的并且完成拓展练习的小组,鼓结励其他小组能力和主观能动性.1、如何将伪代码转换成程序代码?2、这些问题是否还有其它的解法,试写出它们的伪代码和源代码.1、完成实践题中未完成的部分2、做形成性测试题P55—59内容3、预习用穷举法解决问题培养学生独立分析问题、解决问题的能力1、加深对本节课的题解2、为下节课的学习第二节穷举法一、教材分析1、本节主要内容介绍穷举法是程序设计中使用得最为普遍、大家必须熟练掌握和正确运用的一种算法.它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求的答案.用穷举算法解决问题,通常可以从以下两个方面进行分析:⑴确定X围:问题所涉与的情况有哪些,情况的种数可不可以确定.⑵验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案.只要把这两个方面分析好了,问题自然会迎刃而解.本节内容是##科技教育出版的普通高##息技术〔选修1〕《算法与程序设计》教材第三章第2节的教学内容,包括有穷举法的基本思路,用穷举法求解问题,穷举法中穷举方案的选择等.二、重点难点分析教学重点:用穷举法的基本规律教学难点:利用穷举法解决实际问题,评价各种穷举策略的优劣.三、教学过程教学环节教师活动学生活动教学理念情境导入1、播放《终结者2》影片片断,随着老师的引导,学生激发学生学习兴趣观看影片,积极思考,在看片的过回答出暴力破解的方程中体会穷举法的基本思路.2、某个暑假你携带密码行李箱外出旅游,旅行途中发现自己忘法——穷举法记了开锁的密码,怎么办?要求学生分组活动,找出穷举法的定义和穷举法的特点定义:它将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条提高学生的思维能力、培养学生良好的思维习惯学生分组活动件,穷举完所有对象,问题将最终总结出穷举法的概得以解决念、特点特点:①求解对象应该是有限的,有明显的穷举X围;②可以按某种规则列举对象;③一时找不出解决问题的更好途径时可用穷法1.引领学生分析问题,使学生对穷举法有一个初步的认识.形成积极思考的学习氛围.以教材P120"金鱼问题〞为例1.分析问题2.建立数据模型3.刚才我们讨论了穷举的方法,能否让利用计算机速度快这一特点来帮我们来进行穷举这一过程呢?〔也就是计算机编程〕1.分析问题2.建立数据模型3.设计算法4.尝试用伪代码描述2.学生尝试用为代讲授新知算法5.编写程序6.上机调试码描述算法,体验穷举法解决问题的同时,也为下一环节的7.生成EXE文件,通过上机实践做准备.4.伪代码描述5.教师巡视、指导FTP上传至教师机3.在上机实践的过程中进一步体会穷举法的应用.以小组为单位完成一在课堂上,通过小组个程序设计算法请同学们用穷法找出100内的所编写代码有素数〔教材P123〕上机调试内的协作交流,培养学生的合作意识、团队精神.通过设计算法,上机调试等过解决问题交流评价体验穷举法在解决问程,体验穷举法的思题中的应用,以与计算想与计算机解题的机高速运算的特点.方便、快捷.引导学生自我反思,加深对所学知识的巡视、查看学生作业完成情况上交作业有选择地让学生讲解教师评价通过老师的讲解找出认识与理解,掌握用自己存在的问题穷举法解决实际问题.归纳总结布置作业1、穷举法的基本思路:知识总结,系统归纳.通过知识总结,帮助依据题目的已知的条件,确定答回忆课堂学习过程,提学生将知识系统案的大致X围,在此X围内进行穷高对穷举算法的认识.化、结构化,便于学举生理解记忆.2、利用穷举法求解的关键:建立适当的数学模型;构造穷举的框架〔确定穷举X围,合理使用循环语句来实现算法〕;通过逐步求精的过程,改善算法,使穷举过程变得更恰当.3.给学有余力的同学布置课后作业第三节排序和查找一、教材分析排序和查找算法是一种在数据处理时经常要用到的算法思想.在日常生活和学习中,经常需要对各种数据进行查找,而且总是希望要查找的数据井然有序,这就是排序问题.二、教学重点、难点重点:理解和掌握两种排序和查找方法的基本思想难点:熟练运用排序和查找算法的基本思想分析实际问题和实现程序设计过程.三、教学过程1、新课导入〔1〕热身:游戏〔2分钟〕教师展示一件特色物品,让一个学生来猜这个物品的价格,其他学生只需要根据这个学生猜出的价格提示"高了〞或是"低了〞,如果学生能在五次内猜对这个物品的价格,就把这件物品"赠送〞给他…….〔2〕讨论:你觉得怎么样猜可以猜的快一点呢?有什么技巧吗?你从这个游戏当中得到什么启示?<3分钟>〔3〕教师引导:这个世界不是缺少问题,而是缺少发现,其实在这个游戏的背后,含有一个非常经典的算法.引出对分查找的的概念.2、新课:教学步骤一:分析对分查找的原理和思想.〔3分钟〕〔1〕对分查找是效率很高的查找方法,但被查找的数据必须是有序的.〔2〕首先将查找的数与有序数组内处于中间位置的数据比较,如果中间位置上的数与查找的数不同,根据有序性,就可确定应该在数组的前半部分还是后半部分继续查找.〔3〕在新确定的X围内,继续按上述方法进行查找,直到获得最终结果.教学步骤二:分解对分查找算法〔5分钟〕假设:用一个数组d〔1to10〕来存放升序的元素序列,用i表示查找X围的起始位置的下标,j表示终止位置的下标,mid表示中间位置元素的下标.〔1〕第一种情况:要找的值在后半部分;以查找键KEY=48为例分析第一次比较:X围d<1>~d<10>,mid=<1+10>\2,d<mid><Key所以可以确定接下来要找的X围是后半部分.比较后i=mid+1第二次比较:X围d<6>~d<10>,mid=<6+10>\2,d<mid><Key所以可以确定接下来要找的X围是后半部分.比较后:i=mid+1第三次比较:X围d<9>~d<10>,mid=<9+10>\2,d<mid>=Key,找到了.思考:如果要找的是52?i,j,mid分别是多少?这也说明当i=j的时候是查找的最后可能次数,这也是终止查找的一个关键条件.教学步骤三:继续分解对分查找算法中包含的其他情况.画一画:请仿照上面的画法,分别画出key=17和key=20的查找示意图.〔2〕第二种情况:要找的值在前半部分;以查找键KEY=17为例分析:结果分析:第一次比较后:j=mid-1第二次比较后:i=mid+1第三次比较后:找到了〔3〕第三种情况:要找的值找不到;以查找键KEY=20为例分析:结果分析:第一次比较后:j=mid-1第二次比较后:i=mid+1第三次比较后:i=mid+1第四次比较:i=j但是d<mid>≠key,所以找不到.教学步骤四:对各种情况进行归纳总结.〔1〕Key与d<mid>的大小比较影响i,j的取值的规律:i的取值规律:ifd<mid><keytheni=mid+1j的取值规律:ifd<mid>>keythenj=mid-1用分支结构实现.<2>继续进行重复查找的条件:i≤j,用循环结构实现.教学步骤五:构建对分查找的流程图教学步骤六:对分查找算法的初步程序实现.教师事先设计好Vb窗体,学生只需要在相应的程序体输入代表算法思想的关键语句.附主要程序体:PrivateSubCommand2_Click<>DimkeyAsInteger,midAsInteger,iAsInteger,jAsIntegerkey=Val<Text1.Text>i=1:j=10DoWhilei<=jmid=<i+j>\2Ifd<mid>=keyThenText2.Text="找到了,是第"&mid&"个"ExitSubEndIfIfd<mid><keyTheni=mid+1Elsej=mid-1EndIfLoopText2.Text="找不到"EndSub程序说明:1、获得要查找的数据key的值key=Val<Text1.Text>2、i,j赋初值.i=1:j=103、求mid的值.mid=<i+j>\24、分三种情况,〔1〕如果key=d<mid>,则如果d<mid>=key那么Text2.Text="找到了,在第"+Str<mid>+"个".〔2〕如果key>d<mid>,那么i=mid+1否则j=mid+15、重复上述的3,4步,直到i超出j<或者理解为i<=j不成立,所以不能用fornext,而要用dowhile语句〕6、如果有找到key,那执行第4步〔1〕步后应该输出找到的位置后退出程序,如果不退出,说明key没有找到,所以在相应位置要输出"找不到〞.教学步骤七:评价.评价学生的程序实现情况,并讨论或实践问题:如果是降序序列,该怎么样改动程序?如果序列元素不是10个,而是100个或更多呢?教学步骤八:总结提升.〔1〕由于对分查找过程中的每次比较都能使得搜索空间减半,对分查找将不会使用超过log2n次比较来找到目标值.〔2〕提升对分查找算法的实际意义:同学们可能还没有意识到二分查找是多么高效,那不妨设想一下在一个包含一百万个人名的簿中找一个名字,二分查找可以让你不超过21次就能找到指定的名字.如果你能够将世界上所有的人按照##排序,那么你可以在35步以内找到任何人.第四节递归法一、教材分析"递归算法与递归程序〞是##教育《算法与程序设计》选修1第四单元第五节的内容,前面学习了用解析法解决问题、穷举法解决问题、在数组中查找数据、对数进行排序,且在第二章中学习了自定义过程与函数.在前面学习的基础上,学习递归算法的程序实现是自定义函数的具体应用,在培养学生"自顶向下〞、"逐步求精〞的意识起着重要的作用.二、教学重点与难点重点:理解什么是递归算法难点:学生用递归算法的思想分析问题三、教学过程进程教师活动学生活动设计意图创设情课堂导入:师生共同活动使用情境教学法境师:今天我们先做一个小的智力题目找出递变规律在此活动过程中有4个人排成一队,问最后一个人的身高时,并将算法描述能让学生初步从他说比第3个人高2厘米;问第3个人的身高时,他说比第2个人高2厘米;问第2个人的身高时,他说比第1个人高2厘米;最后问第1个人的身高,他说是170厘米,请问:第4个人的身高是多少?活动中体验"问题的发与收〞从而走进了递归的思维模式,为进一步学习递归算法埋下伏笔学生:176厘米师:如何得出的呢?结论:H4=H3+2=〔H2+2〕+2=〔〔H1+2〕+2〕+2Hn=H<n-1>+2H1=176厘米H4176=H3+2H3174=H2+2H2172=H1+2H1=170学习新任务1讨论、比较、实例教学.知上台阶:分析、归纳10级台阶每次可上1级或2级,有多少种上用数据方法推选择"上台阶〞这法?导解决过程,建一实际问题.该问立解决问题的题使用常规方法数学模型〔建〔通常用枚举方基本情况描述1级台阶11种2级台阶1+1,22种模〕法〕分析与解决较为复杂,但使用递归方法,问题可以轻松解决,从使得重点难点得以轻松的突破.3级台阶1+1+1,1+2,2+13种………………10级台阶分析:如何使问题简单化,若对第一步进行分析,则有两种情况:?假设第一步上1级,则余n-1级.假设第一步上2级,则余n-2级.设Sn为n级的上法,则有:Sn=Sn-1+Sn-2〔n>=3〕递推S1,S2,……=?返回12345678910123581321345589任务2算法描述〔由学生完成〕评价与展示:评价与展示学生任务,最后展示参考流程图与伪代码拓展1若10级台阶每次可上1级或2级或3级,又有多少种上法?基本情况描述1级台阶11种2级台阶1+1,22种3级台阶1+1+1,1+2,2+1,34种………………课堂小我们今天所学习的算法是"递归算法〞,我结们谈谈什么是递归算法,递归算法有什么特点.师生讨论,共同小结:巩固和发展本1、递归算法是数值层层调用实现的,当达节课的学习内到最底层后,再将值层层向上返回.<递下容.去,收回来,简称:递归>2、必须有个递归结束条件〔有个该收回来的条件确定的值〕拓展资主题源第4章面向对象程序设计初步第一节初识面向对象程序设计思想源程序分析PrivateSubForm_click<>DimiAsInteger,nAsIntegerDimStNameAsStringDimsc1AsIntegerDimsc2AsIntegerDimsc3AsIntegerDimtotalAsSingleDimpromptAsString学生成绩1.vbp'输出表头n=Val<InputBox<"输入学生数">>Print"##"&vbTab&"成绩1"&vbTab&"成绩2"&vbTab&"成绩3"&vbTab&"加权总分"&vbTab&"证书类型"Fori=1TonStName=InputBox<"输入第"&i&"位同学的##">sc1=Val<InputBox<"输入该同学的软硬件基础成绩">>sc2=Val<InputBox<"输入该同学的文字处理技巧成绩">>sc3=Val<InputBox<"输入该同学的网络技术应用成绩">>total=sc1*0.2+sc2*0.5+sc3*0.3prompt=StName&vbTab&Str<sc1>&vbTab&Str<sc2>&vbTab&Str<sc3>&vbTab&Str<total>&vbTabIf<sc1>=85Andsc2>=85Andsc3>=85>ThenPrintprompt&"优秀"ElseIf<total>70Andsc1>=60Andsc2>=60Andsc3>=60>ThenPrintprompt&"合格"ElsePrintprompt&"不合格"EndIfEndIfNextiEndSubDimstuAsNewStudentDimnAsIntegerPrivateSubCommand1_Click<>DimStuRecAsStringDimStNameAsStringDimsc1AsInteger学生成绩2.vbp'按"处理〞按钮事件'将学生的信息赋给对象'输出结果'文本框清零Dimsc2AsIntegerDimsc3AsInteger'初始化,并在列表框中输入表头StName=TxtName.Textsc1=Val<TxtScore1.Text>sc2=Val<TxtScore2.Text>sc3=Val<TxtScore3.Text>Callstu.SetInf<StName,sc1,sc2,sc3>StuRec=stu.GetName<>&vbTabStuRec=StuRec&stu.GetScore<1>&vbTab&stu.GetScore<2>&vbTab&stu.GetScore<3>StuRec=StuRec&vbTab&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论