4.3选择结构导学案.docx
信息技术学科导学案章节4.3班级/姓名编号课型新授课题运用选择结构描述问题求解过程学习目标1、体会并理解if语句解决问题的基本思想2、掌握单分支、双分支和多分支if语句的格式3、掌握程序设计中的选择结构的应用学生任务图4-1网上购物项目范例设计购买纪念品的最佳方案如今,网上购物已经成为人们生活中的一部分。通过网购,人们不仅可以方便地在各家电商中获取商品的相关信息,而且可以对商品进行比质比价,从而以优惠的价格购得心仪的商品(图4-1)o为了购得既经济适用又美观大方的商品,人们就要根据需求设计好购买方案。目目设计购买纪念品的最佳方案【知识点拨】1.运行程序快捷键: 按键盘上的F5,保存 后程序运行。活动1:单分支if语句g项目小组成员在某购物网站上了解到某种笔记本搞优惠活动,规定一次购买6本以上(含6本)1。本以下(含10本)打九折,一次购买11本以上(含11本)打八折怎样根据笔记本的单价和购买数量编写程序计算总费用?一、分析问题:设项目小组购买笔记本的数量为S本,笔记本的单价为P元,折扣系数为j,总费用为t。(2)设计算法C根据上面对问题的分析,解决问题的算法描述如下:榆入5,P的值;2、在计算机中如何表示:6<sW10,果s<6,则尸1.0;如果6WsW10,则j=0.9;关系运算符:¼担N11,Wj=0.8;f=sXpXj;榆出/的值;转束。算法的流程图如图4-8所示C<<=>>=!=(6种)逻辑运算符:(3)编写程序。根据上面设计的算法,然写出解决该问题的程序(见配套学习资源包“第吗章课本素材程序4-2")如下:程序4-2and(与)or(或)not(非)s=input("请输入购买的笔记本的数量(多少本):“)、8=int(a)p=float(irui("请输入笔记本的单价(每本多少元):”)ifa<6:j=1.0ifh>=6and3=10:j=0.9ifa>=11:j=0.83、代码缩进:Python语言中,采用代码缩进和冒号":"区分代t三sp*jPrintr总费用为:"J%.r%t.”元。S/码之间的层次。对于任务一:打开程序42,补全代码,运行程序。类定义、函数定义、s=input(”请输入购买的笔记本的数量(多少本):")S=p=float(input("请输入笔记本的单价(每本多少元):")流程控制语句、异常处理语句等,行尾的ifs<6:j=1.0Ifj=0.9ifs>=11:j=0.8t=Print(“总费用为:",',%.lf,%t,"7G")冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结当输入输入S的值为IO0,p的值为8,得到的结果为:束。通常用4个空格作为一个缩进量。活动2 :双分支if语句o3项目小组成员在某购物网站上了解到某种笔记本搞优惠活动,规定一次购买6本以上 (含6本)1。本以下(含1。本)打九折,一次购买11本以上(含11本)打八折,怎样根据 笔记本的单价和购买数量编写程序计算总费用?用双分支if语句重新设计算法并编写程序。任务二:根据问题分析补全流程图:一、分析问题:【知识点拨】1、双分支if语句的格式:if(条件表达式):语句Aelse:语句B执行过程:如果如果 s<6,则 j=1.0;否则,如果s<=10,则j=0.9;否则,j=0.8;又t=s*p*j,求出t的值即为所求的总费用。条件表达式为真,则执行语句(组)A.然后继续往下执行;如果条件表达式为假,则执行语句(组)B1然后继续往下执行。任务三:根据流程图,补全程序4-2-2,并运行验证程序是否正确。s=input(”请输入购买的笔记本的数量(多少本):")s=int(s)p=float(input("请输入笔记本的单价(每本多少元):")if:j=1.0else:If:j=else:j=t=S*p*jPrint("总费用为:",%lf,%tj元")2、如何验证程序是否正确?一般通过输入多组一般数据和特殊数据查看输出结果是否正确来验证程序。如本题可以通过分布输入购买数量为5,6,1CuOo来进行验证。活动3:if.elif.else语句的应用R项目小组成员在某购物网站上了解到某种笔记本搞优忠活动,规定一次购买6本以上(含6本)10本以下(含10本)打九折,一次购买11本以上(含11本)打八折、怎样根据笔记本的单价和时买数量嫔写程序计算总费用?任务四:用if.elif.else语句改写程序422,并运行验证程序是否正确。s=input。请输入购买的笔记本的数量侈少本):")s=int(s)p=float(input("请输入笔记本的单价(每本多少元):")if:j=1.0elif:else:t=s*p*jPrint("总费用为:”J%.lf'%t,"元")【知识点拨】.1、ifelif.else语句的格式:if(表达式1):语句Ielif(表达式2):语句2elif(表达式N):语句Nelse:语句N+1执行过程:从表达式1开始依次进行判断真假,当某一表达式为真时,执行对应的语句组;如果所有的表达式都为假,执行else下的语句组。因此,在使用时应注意表达式的排序是否符合逻辑。学以致用:鸡兔同笼清输入头的数里:36请输入足的数里:97当头的总数是:LuN足的总数是97时:鸡的数里为:西同兔的数里为:12.5»>i-j=RESTART:C:Useri襦输入头的数里:20请输入足的数里:12当头的总额是:20足的总数是1?时;I鸡的数里为:34.0兔的数里为:1-14.01上节课同学们完成鸡兔同笼的编程后,在运行中发现了很多错误,比如半只鸡,14只兔子。很明显,我们的程序还存在bug,请修改程序,实现如下效果:常卷入会的数兽:36谪输入头的数S8:20由钟足的额黑:97清输入足的额里:12数据错俣,无解数据谓误,无解清输入头的数量:20请输入足的数里:60当头的总数是:20足的总数是60时:洱的数里为:io兔的数Si为:io鸡兔同笼程序代码:a=int(input("请输入头的数量:")b=int(input("请输入足的数量:")j=2*a-b2t=b/2-aPrint当头的总数是:”,a,“足的总数是”,b,”时:")Print("鸡的数量为:"J,”兔的数量为:,t)【知识点拨】.1、鸡兔同笼问题中,头和足的数量a,b应该满足以下关系:2*a<=b<=4*a且b是偶数。因此:鸡兔同笼有解的条件应该是:b>2*aand/orb<4*aand/orb%2=O2在Python中,当多个语句构成复合语句时,所有语句严格遵循相同的缩进。拓展提高:分析程序代码:age=int(input("请输入年龄:")ifage>=6:print(“青少年”)else:ifage>=18:Print("成人“)else:Print("婴儿“)当输入8和20时,输出的结果分别是什么?【知识点拨】在Python中,if语句的嵌套或多分支时,要注意条件表达式的逻辑关系。学习感受: