资源简介 定义通用过程课题:定义通用过程(第4章第4节第3课时)一、教材分析本节课主要介绍VB过程的通用过程,过程是VB模块化编程思想的体现,通用过程是实现模块化编程思想的方法和手段。旨在通过通用过程的学习,体验和理解模块化编程思想,学会封装重复、复杂的程序段的方法,培养将复杂问题分解成简单子问题的思维意识。定义和调用通用过程的实践操作并不复杂,但是其概念抽象、作用与意义难以理解,教学需将其置于合适的问题情境中,真实问题的产生,能促进学生理解和掌握通用过程,对其结构组成和语法规则的教学宜采用实验探究方法去分析、验证和理解。为了突出教学重难点、降低编程难度,提供任务的半成品,让学生将注意力集中在本节教学内容上。二、学情分析在本节内容之前,学生已经理解常量、变量、函数、表达式、语句等基础知识概念,已掌握输入信息、处理信息和输出信息的一般方法。对于一般问题,虽能提出解决问题的算法,但尚不具备编写复杂程序去解决复杂问题的能力,缺乏将复杂问题转化成为简单子问题的思维意识,也不具备掌握将任务模块化的一般编程方法的技能,而它们正是这节课的教学目标。三、教学目标1.知识与技能掌握VB通用过程的定义及其调用。2.过程与方法逐步引导学生学会发现、思考、编程解决学习生活中的问题;学会实验探究学习程序编程;运用通用过程体验编程的模块化思想。3.情感、态度和价值观编程像搭积木,不难学。善思乐学,培养举一反三,灵活应用所学知识能力。四、教学方法讲解、演示、讨论学习、实验探究。五、教学重点与难点1.重点通用函数过程的定义和调用。2.难点分解复杂问题为小问题,并运用通用过程来解决小问题。六、教学策略课前组织学生利用学案自主学习,做好相关知识准备。创设问题情境,提出学生学习生活中的简单问题——“小北和小南”,在实践中,两次重复编写复杂表达式求步行和骑行到校时间较小值的情境下,引入通用过程教学。在学习定义和调用通用函数的方法后,通过实验探究,理解通用函数的基本组成和编写通用函数的一般语法规则,并且掌握定义和调用通用函数的方法。以解决输出(小北或小南)先到校时间的问题,进一步体验和理解通用过程的作用和意义。通过观察计算小北和小南到校时间的相似程序段,让学生运用所学知识,实践定义和调用通用函数fTime,进一步将任务模块化,培养学生举一反三、灵活应用所学知识的能力。在完成通用函数的学习后,鼓励学生通过学案自主学习通用子程序的定义和运用。最后,通过算法流程图,引导学生小结、归纳通用过程知识,体会模块化编程思想。七、教学过程(一)问题导入1.教师活动小北和小南的家距离学校不远,他们一般步行上学(速度均为1.2米/秒),最近他们发现他们家和学校都设有共享单车站点,虽然骑车比步行速度快(均为2米/秒),但取车和还车要花费1分钟,如果告诉你他们家和学校的距离,你能算出他们尽快到学校的时间吗?2.学生活动阅读、思考问题。图13.设计意图围绕学生的学习生活案例,思考其中的问题,快速进入学习情境。(二)分析问题,提出算法1.教师活动组织学生分析、归纳课堂的讨论、发言,提出算法。图22.学生活动讨论、发言并提出解决方法。发现解决问题的算法基本流程可以分为四个步骤:(1)输入小北、小南的家到学校的距离b,n;(2)计算小北到学校的较短时间bt;(3)计算小南到学校的较短时间nt;(4)输出bt,nt。3.设计意图培养使用计算机编程解决问题的一般过程习惯:首先分析问题、确定算法、然后编写程序。(三)引入课题1.教师活动(1)组织学生打开工程文件,填写空行。图3(2)观察、分析填写的计算小北和小南到学校较短时间的语句。是否能把这些复杂、常用的语句封装起来,然后像使用VB标准函数、过程一样调用,方便编程?利用VB中的通用过程可以实现想法。2.学生活动(1)打开工程文件及其窗体文件,填写“计算”按钮的事件程序空行。参考:Letbt=(x+y-Abs(x-y))/2Letnt=(x+y-Abs(x-y))/2(2)发现两条赋值语句的右侧表达式虽然较为复杂,但是一样。3.设计意图(1)为新知学习做好铺垫。(2)用问题导入课题。知识迁移学习通用过程的功能。(四)定义函数过程1.教师活动(1)VB通用过程分为子程序过程和函数过程。(2)定义通用过程的操作:在“代码窗口”视图下,执行“工具”-〉“添加过程”命令。图4(3)组织学生定义“fMin”通用函数过程实践活动。2.学生活动(1)利用学案学习定义通用过程的基本操作。(2)实践:定义一个名称为“fMin”,范围为“公有的”的函数。(3)编写函数体程序。参考:PublicFunctionfMin(x,y)Letm=(x+y-Abs(x-y))/2LetfMin=mEndFunction3.设计意图掌握定义通用过程的基本操作。(五)调用函数过程1.教师活动(1)我们定义好了fMin函数,接下来我们就可以像使用标准函数一样使用fMin函数。(2)组织学生修改计算较短时间的语句。观察学生实践过程,找出典型问题,组织讨论,解决问题2.学生活动(1)修改语句:Letbt=fMin(x,y)Letnt=fMin(x,y)运行调试程序。(2)展示程序,分析、讨论出现的问题,修改程序,解决问题。3.设计意图在实践中发现、分析问题、解决问题过程中掌握通用函数。(六)知识梳理1.教师活动(1)组织观察fMin函数的组成:图5(2)组织实验探究。2.学生活动(1)深入了解通用函数的组成。(2)实验探究:如果不写参数列表,编译程序会出现什么问题?如果不写函数返回值赋值语句,是否可行?3.设计意图实践后再学习通用函数定义和调用的疑难点,让经验和知识相统一。(七)问题拓展1.教师活动(1)如果小北和小南同时从家里出发,你能迅速算出先到达学校的人所需的时间吗?思考是否可以写成Lett=fMin(x,y)?(2)讨论分析函数参数列表的作用。(3)再观察程序计算小北和小南到校时间的程序段:Letx=b/1.2Lety=b/2+60Letbt=fMin(x,y)Letx=n/1.2Lety=n/2+60Letnt=fMin(x,y)(4)是否也可以定义一个通用函数fTime(d)来封装三条语句?组织学生实践尝试。2.学生活动(1)思考问题,实践尝试。参考:Lett=fMin(bt,nt)(2)结论:调用函数时,参数是将数值赋值给函数内部。(3)发现计算小北的三条语句与计算小南的基本相同。(4)学生实践。参考:PublicFunctionfTime(d)Letx=d/1.2Lety=d/2+60Lett=fMin(x,y)LetfTime=tEndFunctionLetbt=fTime(b)Letnt=fTime(n)3.设计意图培养学生举一反三,灵活应用所学知识的能力。(八)定义子程序过程1.教师活动如果交换小北和小南家到学校的距离数据,计算先到达学校的人所需的时间的结果会不会不一样?我们用程序来验证一下:为了快速验证,免去重复输入数据的操作,添加一个“交换”按钮,如图所示。图6与通用函数类似,我们可以使用子程序过程来封装交换过程。组织学生实践。观察子程序Swap,与通用函数fMin、fTime有什么区别?子程序过程调用与函数也有区别,子程序过程需要Call语句才可以调用。格式:Call子程序过程名称组织学生编写“交换”按钮的事件过程程序。组织实验探究:删除或注释Dimn,b语句,会出现什么结果,你有什么结论?2.学生活动学生思考、回答。学生实践。定义一个名称为Swap,范围为“公有的”的子程序过程。并填写代码。参考:Dimn,bPublicSubSwap()Lett=nLetn=bLetb=tEndSub观察、讨论。结论:最主要的区别是子程序过程没有函数返回值赋值语句。实践:在“交换”按钮事件过程中调用子程序过程Swap()。“交换”按钮事件程序参考:Letn=Text1.TextLetb=Text2.TextCallSwapLetText1.Text=nLetText2.Text=b运行、调试程序并验证设想。实验探究。结论:定义在通用过程内部的变量只在通用过程内部有效。3.设计意图(1)知识迁移学习子程序过程的定义。(2)比较子程序过程和通用函数,掌握它们定义和调用的不同点。(九)小结1.教师活动(1)通用过程要先定义,才可以调用;(2)通用过程让程序易编、易读;(3)使用通用过程让编程像搭积木一样,将问题分解成容易解决的小问题,利于我们解决复杂的问题2.学生活动浏览流程图,归纳总结。3.设计意图归纳和梳理所学知识。附件:流程图“计算”按钮事件过程流程图“交换”按钮事件过程流程图《定义通用过程》学习指导小组成员:?????TOC\o"1-2"\h\u一、知识准备1二、小北和小南1三、实践步骤2三、学习小结6一、知识准备求出数值型变量a,b较大或较小的一个值。可利用数学代数式计算出较大的值,计算出较小的值。1.假设a,b的值分别为3和5,请你验证一下:=?????=?????2.请你尝试将上述的数学代数式写成VB表达式。1)将a,b中较小的值赋值给x。Letx=?????将a,b中较大的值赋值给x。Letx=?????提示:可使用VB内部函数(标准函数)Abs(a-b)求|a-b|。小北和小南小北和小南的家距离学校不远,他们一般步行上学(速度均为1.2米/秒),最近他们发现他们家和学校都设有共享单车站点,虽然骑车比步行速度快(均为2米/秒),但取车和还车一共要花费1分钟,如果告诉他们家和学校的距离,你能算出他们尽快到学校的时间吗?请尝试填写【表格1】人物离校距离(米)步行到校(秒)骑行到校(秒)较短时间(秒)小北120???????????????小南240???????????????请思考,并与同学探讨解决问题的算法。三、实践步骤1.计算小北和小南各自尽快到校时间。(1)编写程序来解决上面的问题。请打开“上学.vbp”工程文件,双击打开窗体上的“计算”按钮,完善“计算”按钮的单击事件代码。(2)运行程序,输入上面【表格1】数据,进行验证。2.通用过程(函数)。(1)定义通用函数的方法:在“代码窗口”视图下,执行“工具”-〉“添加过程”命令。定义如图所示的通用过程fMin(2)编写通用函数fMin()的程序,参考如下:PublicFunctionfMin(x,y)Letm=(x+y-Abs(x-y))/2LetfMin=mEndFunction(3)调用通用函数fMin(),重新修改语句。实验探究观察通用函数fMin(x,y)的结构组成。实验1:尝试将参数列表删除,观察编译运行结果;实验2:尝试删除或注释函数返回值赋值语句,观察编译运行结果;新的问题如果小北和小南同时从家里出发,你能迅速算出先到达学校的人的所需时间吗?编写代码提示:调用通用函数fMin,并将其赋值给文本框Text5的Text属性。观察计算小北和小南到校时间的程序段,你能发现什么?计算小北的到校时间的程序段计算小南的到校时间的程序段Letx=b/1.2Lety=b/2+60Letbt=fMin(x,y)Letx=n/1.2Lety=n/2+60Letnt=fMin(x,y)定义通用函数fTime(d)来封装这三条语句(参数d是指小北或小南家离校距离)提示:PublicFunctionfTime(d)Letx=?????‘计算步行d距离所需时间xLety=?????‘计算骑行d距离和取放车所需的时间yLett=?????‘求出较短时间LetfTime=t‘将t作为函数值返回EndFunction调用通用函数fTime,修改程序重新计算小北和小南的尽快到校时间。计算小北的到校时间计算小南的到校时间Letbt=?????Letnt=?????通用过程(子过程)问题:如果交换小北和小南家到学校的距离数据,计算先到达学校的人所需时间的结果会不会不一样?验证想法,添加“交换”按钮对象,迅速交换小北和小南的数据。定义子程序过程swap来封装交换过程提示:交换n,b的值。Dimn,bPublicSubSwap()Lett=?????‘将n赋值给tLetn=?????‘将b赋值给nLetb=?????EndSub编写“交换”按钮的事件过程。子过程调用方法:Call子过程名称。提示:“交换”按钮事件程序参考:Letn=Text1.TextLetb=Text2.Text?????‘调用子过程LetText1.Text=nLetText2.Text=b实验探究若删除或注释Dimn,b,启动程序,观察结果,思考出现的问题。学习小结“计算”按钮事件过程的算法流程图“交换”按钮事件过程的算法流程图今天我们小组发现,对程序中需要重复编写、重复运行的语句可以通过定义请选择进行模块化,今天我们学习了如何定义请选择和请选择,通过它们有利于解决复杂问题。(共6张PPT)小北和小南PublicFunctionfMin(x,y)Letm=(x+y-Abs(x-y))/2LetfMin=mEndFunction函数首部参数列表函数返回值赋值语句函数尾部开始自定义函数自定义函数开始自定义过程fTime(d)EMin(x,y)Swap()输入b,nsText1.Textx=d1.2(x+y-Abs(x-y))/2tbt=ETime(b)b=Text2Texty=d/2+0tMin=m=bnt=fTime(n)CallSwapt=fMin(x,y)自定义函数b=t结束t=Min(bt,nt)Text1.Text=nfTime=t自定义过程结束输出bt,nt,tText2Text=b自定义函数结東结束结束 展开更多...... 收起↑ 资源列表 [教学设计]教学设计——定义通用过程.doc 定义通用过程.ppt 导学案.doc