《枚举商品搭配方法》 教案 沪科版信息技术九年级上册.docx
枚举商品搭配方法教学设计课题枚举商Ia搭配方法单元三单元学科信息技术年级九年级教材分析4枚举商品搭配方法这一课时教材编排了.分析C可题,设计算法,编写条件结构的程序.运行,调试程序,说说做做和知识链接”的系列学习活动这一课旨在让学生了解如何利用枚举法纲程解决具体问题,引导学生在编写代码时运用枚举法解决生活中的搭配问题语句,进一步成轻代码的复杂性.在生活中运用程序制决实际间迎,这些学习对于初中学生来说是非常有必要的,不仅可以增加学生知识.同时也能增强计算机编程能力和科学思维.提高学生信息素养,教材编排合理,教学环节寓教于乐.贴近学生生活实际,符合九年级学生认知特点OO学习目标1 .信息意识:学习如何利用枚举法编程解决具体问题.2 .数字化学习与创新通过实践活动.掌握运用枚举法解决生活中的搭配问题的方法;能够在实际情境下运用所学知识,解决实际问题3 .计算思维:具备用计算机解决问题的能力。1.信息社会责任激发对计算机编程的兴趣和热情.将编程运用到生活中.俄炼自身的道德情操和品德修养.培养优秀的价值观和行为准则。重点利用枚举法编程解决具体问题难点将所学知识结合,彘写代眄教学过程教学环节教师活动学生活动设计意图导入新课1.导入:师:枚举法是较常用的算法之一,可对要解决的问慰的所有可能情况遂行逐一检蛤.从而找出正确的解.在日常生活中使用枚举法有时会显得比较“笨拙.花费时间较长,但计算机的高速运算能力保证了枚举法的可行性,而且对应的程序相对简单。在本活动中,我们将利用枚举法编程第决具体问题,感受算法的价值和魅力.了解本节课学习内容引入本节深知识激发学生学习兴趣.iB动积极性讲授新课一、分析问题要解决的问题如下:某客户计划向商店订购300千克饼干.饼干有两种规格:大盒5千克一箱.小盒2千克一箱.为了便于运输不允许开箱,且客户要求大小盒都必须有.商品可以提供多少种搭配方法?设大盒数量为X,小盒数量为y.则两者之间应满足的表达式为:5+y*2=3(M)且X和y必须是大于等于1的正整数,如果先一一列举大盒数量X.列出X的所有可能性(从1到S9.后者的情况为小盒为1).然后判断射下的饼干用小盒装是否正好装完,即没有余,也就是(Y)OSx)能够整除2若能装完,则算出小盒数量y-提示板:以上这种算法其实是我们生活中常用的枚举法0枚举法就是按照问短本身的性质一一列举出该间即所有可能的解,并在逐一列举的过程中,检蛤每个可能解是不是问题的真正解.若是,则采纳这个解,否则抛弃它。解决本问邈的枚举思路如下枚举对象:大盒数Xo枚举范围:x>=且XV=59检验条件:剩下的饼干用小盒笠无剁余,即(3(X>-5*x)%2=0说说做做生活中用枚举法解决问题的情景很常见.比如,忘记一串钥匙中那一把是大门钥世。选择生活中某个需要用枚举法解决的问题,并用自然语言或流程图描述其算法二、设计算法学生理解、思考将计算机与数学生活联系在一起枚举法要求将所有可能的答案遍历,往往适合使用循环结构;在遍历的同时,需要枪查每一个答案是否湎足要求.所以在循环结构中会嵌套一个选择结构。用流程图表示算法申1.F1.JI4*/1.Z三cr.三、编写程序猜到正确答案后,程序不再需要执行下一次循环.这时可以使用break语句.在循环条件仍然成立的情况下终止循环说说做做尝试画出顺序查找算法的流程图.写出相应程序,比竣两种查找算法的不同若将本例的枚举对象改为小盒数量解决本问这的枚举思路如下枚举对象:小盒数量义枚举范围:y>=1.且yv=150检验条件:剩下的饼干用大盒装无剩余,即(3-21.fx)%5=0巳知一个矩形的面积,且面积为正整数,求所有可能矩形周长的整数解deffind-rectang1.ciarca):自主学习反复探索学生完成课后练习让学生在反复探索宏成的过程中训练思维方式.理解变业可控的重复执行通过结合所学知识完成练习,拓展延伸学生知识,增加学生知识技能rectang1.es=Ibriinrangc(1.int(arca"OS)+1):ifarca%i=0:1.ength=iwidth=area/iperimeter=2(1.ength+width)r<xtang1.cs.appcnd(gth,width,perimeter)returnrectang1.esarca=in1.(inpu1.("请输入矩形的面积:"»rectang1.es=fi11d-rcc1.ang1.cs(area)Prim("矩形的周长整数解为:”)for1.ength,width,perimeterinrectang1.es:Prin1.T长度:(1.ength,宽度:(widthJ.周长:perimeier")知识链接算法的优化求100以内的素数,解决该问题可以采用枚举法,就是一个一个数字去检查该流程图中.判断i是素数这个校块还需细化.判断某个自然数是亲数的依扼:是该数除I和本身外,不能被任何自然数整除因此,可以用一个循环结构的算法.枪查i能否被2至M间的自然数整除.算法如下设isPmc=Truc循环j从2到i-1如果i能被j整除,则isPrimc=Fa1.sc如果isPrime=True.则i为素数输出i优化算法知识拓展更深层次了解python舞法只需要把之前找到的素数全部记录下来每次检查的时候只要检查所有找到的素数是否可以整除i即可。像这样利用问题的特点对算法或者流程的步骤进行简化的过程叫作优化.优化后的算法如下设isPriIne=True循环M范围为之前找到的素数集合)如果i能被j整除,MisPrime=Fa1.se如果isPrinw=True.则i为素数.输出i,且将i加入索数集合j四、运行,调试程序数字化学习:I-如何将上例中大盒和小盒的搭配结果用列表保存起来?尝试上网学习并参考知识链接”.完成程序的修改。2.尝试上网学习并参考知识琏接”,了解常见的排序算法。知识链接列表在Py1.hon中,可以用列表存储一系列对象所组成的系列。列表放在(中表示当想要往列表中添加新的对象时,可以利用append函数.列表和用range生成的序列一样,在Pjahon中同样可以用for循环来完成遍历。»>#创建空列表样»>a=I»>#在列表中添加一个元素»>a.append>»aH1.自主学习,知识拓展,更准魂理解课堂内容。让学生体验Python编程的强大功能,初步感受用编程技术驾驭计算机高效解决问题,»>append函数的调用是用”.”号引出的.表示这个函数是针对a这个对象迸行操作.是甘对列表对象的独有函数.像这样属于某类对象的专有操作函数.叫作对象的方法。求素数问遨的Python程序如下:#记录已经找到的素数用的列表primes=(。遍历从2到100的所有数字foriinrangc(2J()1.):#桧查i是否为素数isPritnc=Trueforpinprimes:ifi%p三=0:#如果能被之前的素数整除就不是索数isPrime=Fa1.se#将找到的素数输出并存入列表中ifisPri11e=True:prim(1.)PriInes.aed单元挑故下列活动按能力要求分成三类,请从这三类活动中侬次各选一项去挑战.并按照完成的情况给自己加星。卜活动:一个五位数,万位和百位上数字未知,只知道该数是57和67的倍数,求该数所有的可能性。单元学习总结,将本单元学习的东西结合运用起来。学生巩固复习知识,学以致用.deffindWmbCrs<):numbers=foriinranged(XX)O,KWXX):ifi%57=0andi%67=0:numbers.叩PCnd(i)returnnumbersnumbers=find_numbcn>()Prim("该数的所有可能性为:”)fornumberinnumbers:pri11(nunber)2.已知三种水果糖每500克价格分别为IO元、12元、16元,为糖果店的营型员设计个程序.榆入顾客购买的每种塘的重量,计算付款金额.,defca1.cu1.atc_paymcn(wcight_1.Weigh1._2,WCigh1.3):PriCJ1.=10PriCe_2=12PriCJ3=16payment=(weightpricc_1.)(WCighJ2priceJ2)+(wetghPriCeJ)returnpaymentWeigh1二fk11(input("请检入第一种糖的重负(单位:克):,»Weigh1.2-f1.oat(inpui("输入第二种糖的重量(单位:克):'Wweight_3=f1.oat(inpu-"请5入第三种糖的承量(单位:克):,)payment=ca1.cu1.atc-payncnt(wcight_1.WCigh1.2.Weigh1.3)Print("付款金祗为",payment,"7c")1.设计一款可供两人玩猜数字的小程序,制定游戏规则,并编程实现StartJimc=timc.time()#记录起始时间guess=None#初始化料测值Iirneou1.=Fa1.se。判断是否超时whi1.eguess!=IargeUiimberandnotIiineouctry:guess=int(input("请输入一个0-9之间的叁数(按Enter键):')ifguess<argct-numbcr:Print("太小了!再试一次.二)e1.ifguess>Iarge1.nUnIber:Printr太大了!再试一次e1.se:endjime=timc.time#记录结束时间C1.apstdjime=round(Cn1.1.imeMartJimc),2)弁计算消耗时间Prin1.("恭喜你猜对了!你花费了)秒完成游戏<,fo1111aMdaPSCdjimC)exceptVa1.ueErr:PrinIc1无效的垃人.请里斯辙人一个整数.-)iftimeout:Prim("时间已经用完.渣戏结束”)2.设计程序.榆出100200之间所有的素数importmathdefis-prin(num):ifnumV=1:returnFa1.seforiinrangc(2,int(math.sqrt(num>)+1):ifnum%i=0:re1.umFa1.sereturnTmefornumberinGmge(100,201):ifis_primc(number):prim(numbcr)3,2.W活动:.编写程序.求两个正整数的最大公约数importmathdefnd-gcd(a.b):returnmath.gcd(a,b)num1.=int(input("请输入第一个正整数:*)num2=int(input("请输入第二个正整数:')resu1.t=find-gcd(num1.,num2)Prin1("最大公约数为:",resu1.t)2.编写程序.打印I到100之内的整数.但数字中包含7的要跳过foriinranged.101):if*7,no1.instr(i):print(i)知识拓展:Py1.hon蒯法的特征1.输入:尊法具有0个或多个输入2*出:算法至少有I个或多个输出3.有突性:算法在有限的步骤之后会自动结束而不会无限循环,并且集一人步骤可以在可接受的时间内完成4.确定性:算法中的每一步都有确定的1'义,不会出现二义性5.可行性:算法的每一步都是可行的,也就是说每一步椰健桃执行有限的次数完成python算法的复杂度1.衡量标准算法在计算机执行中所消耗的时间算法在执行中所占用的资源的大小,如:内存空间的占用大小算法的易理解性,易实现性算法在计算机执行中消耗的时间跟时间有关的因素数据输入的时间算法编译成可执行程序的时间计算机执行卷条指令的时间算法语句曳狂执行的次数作业布置请同学们复习本节课学习的内容.用枚举法的方式斜决问题,并且用枚举法解决生活中的一些简单问题.课堂练习完成书上的说说做徽学生完成课堂练习巩因所学知识课堂小结I.学习了用枚举法编程解决具体问题2.学会了运用枚举法解决生活中的搭配问遨3复习整合单元内容.校理所学知识.学生总结本节课的学习内容做结概括本节课的学习知识内容板书一、分析问题二、设计算法三、编写程序四、运行,调试程序