资源简介 (共20张PPT)4.3运用选择结构描述问题求解过程《数据与计算》必修一目 录4.3.1 if语句的应用4.3.2 if..elif..else语句的应用在程序设计中,主要使用条件语句(if语句)来实现判断和选择。if语句在使用中包括单分支if语句和双分支if语句。1.单分支if语句(1)格式:if (条件表达式):语句A(2)使用单分支if语句的注意事项:①if(条件表达式)后面加冒号“:”;②当语句A是由多个语句构成的复合语句时,所有语句严格遵循相同的缩进。(3)单分支if语句的执行过程根据其流程图:如果条件表达式为真,则执行语句A,然后继续往下执行;如果条件表达式为假,则不执行语句A,然后继续往下执行。单分支if语句执行过程思考:如下问题如何通过计算机程序来解决?项目小组成员在某购物网站上了解到某种笔记本搞优惠活动,规定一次购买6本以上(含6本)10本以下(含10本)打9折,一次购买11本以上(包含11本)打8折。怎样根据笔记本的单价和购买数量编写程序计算总费用?任务一:分析问题设项目小组购买笔记本的数量为s本,笔记本的单价为p元,折扣系数为j,总费用为t。根据题意,有:如果s<6,则j=1.0;如果s≥6而且s≤10,则j=0.9;如果s≥11,则j=0.8;又t=s×p×j,求出t的值即为所求的总费用。任务二:设计算法根据上面对问题的分析,解决问题的算法描述如下:①输入s,p的值;②如果s<6,则j=1.0;③如果s≥6而且s≤10,则j=0.9;④如果s≥11,则j=0.8;⑤t=s×p×j;⑥输出t的值;⑦结束。要求:以小组为单位,根据分析,设计算法.网购笔记本的金额计算流程图input()函数If语句print()函数根据设计的算法,写出解决问题的程序s=int(input("请输入购买的笔记本的数量(多少本):"))p=float(input("请输入笔记本的单价(每本多少元):"))if s<6:j=1.0if s>=6 and s<=10:j=0.9if s>=11:j=0.8t=s*p*jprint("总费用为:","%.1f"%t,"元")任务三:编写程序强制类型转换if条件判断任务四:调试运行程序float( ) 将变量转换成浮点型表示输出带有1位小数的数2.双分支if语句双分支if语句的流程图表示(1)格式:if (条件表达式):语句AElse:语句B(2)注意事项:①if(条件表达式)后面加冒号“:”;②当语句A和语句B是由多个语句构成的复合语句时,所有语句严格遵循相同的缩进。思考:求最值的方法有哪些,该如何编程实现?项目小组成员在某购物网站上看到三种笔记本的优惠价各不相同,笔记本1、笔记本2和笔记本3每本分别优惠价为a元、b元和c元,编程输出其优惠价的最大值。任务一:分析问题对于读入的三个数a、b、c,设其中的最大数为m,先找出a和b中最大的数赋给m,然后再将m与c比较,从而找了三个数中最大的数。任务二:设计算法解决问题的算法描述如下:①输入三个数a,b,c;②如果a>b,则m=a;否则m=b;③如果c>m,则m=c;④输出m的值;⑤结束。根据设计的算法,写出解决问题的程序任务三:编写程序print("请输入三种笔记本的优惠价(元):")a,b,c=input( ).split( )a=float(a)b=float(b)c=float(c)if a>b:m=aelse:m=bif c>m:m=cprint("优惠价最大的为:",m,"元")函数分割,字符串类型转换成浮点型任务四:调试运行程序.split() 对象是一个 “字符串”#split()括号内可以没有参数,代表按照空,空格,换行符,制表符来分割。运行时,用空格隔开。3.if语句的嵌套If 语句允许嵌套,即if语句中的语句A和语句B还可以是if语句。案例三:一元二次方程求解:有一方程ax2+bx+c=0,a,b,c的值由键盘输入,请编程序,打印出以下情况时方程的解。(1)a=0,b≠0时,解为-c/b;(2)a=0,b=0,c=0,解为任意值;(3)a=0,b=0,c≠0,无解;(4)a≠0,b2-4ac≥0,有两个实根;3.if语句的嵌套求解:ax2+bx+c=0的一元二次方程的解。其中a,b,c的值由键盘输入一、假设a=0(1)当b≠0时,方程的解为:-c/b;(2)当b=0时①假设c≠0,无解;②假设c=0,解为任意值;二、假设a≠0当b2-4ac≥0,有两个实根,x1=(b+d**0.5)/(2*a);x2=(-b-d**0.5)/(2*a);任务一:算法分析3.if语句的嵌套YNYYNNY任务二:算法设计a,b,c=input().split()a=float(a)b=float(b)c=float(c)if(a==0):if (b!=0):print("只有一个解",-b/c)else:if(c!=0):print("无解")else:print("解为任意值")else:d=b*b-4*a*cif(d>=0):x1=(-b+d**0.5)/(2*a)x2=(-b-d**0.5)/(2*a)print("x1=","%.2f"%x1)print("x2=","%.2f"%x2)任务三:编写程序任务四:调试运行程序a=0,b=2,c=1a=0,b=0,c=1a=0,b=0,c=0a=2,b=6,c=2.3 展开更多...... 收起↑ 资源预览