1、第 1 页做出判断的分支2.2编制程序实现对垃圾类型的分类判断功能简介如果 输入“猪可以吃”显示 “这是厨余垃圾(湿垃圾)”如果 输入“猪吃了会死”显示 “这是有害垃圾如果 输入“猪不吃”显示 “这是其他垃圾(干垃圾)”如果 输入“卖了可以买猪”显示 “这是可回收垃圾”其他 显示 “输入错误,请重新输入”算法设计4.1.14.1.1算法的实现、解析法和枚举法算法的实现、解析法和枚举法 教科版信息技术 必修1 数据与计算第 2 页单分支流程图 本节课学习目标本节课学习目标1、熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程2、了解算法的基本要素和重要特征3、运用恰当的方式描述算法4、运用解
2、析法实现简单算法,解决问题第 3 页单分支流程图一、趣题导入:让学生分析解决问题一、趣题导入:让学生分析解决问题 测测大家的测测大家的IQ寻找开关对应关系:寻找开关对应关系:一个房间有3盏灯,房间外有3个开关分别控制这3盏灯,在只允许进房间一次的情况下,如何判断哪个开关控制哪盏灯?打开思路,开动脑筋,提示:灯泡除了亮和灭两种状态外,还可以有什么状态?第 4 页单分支流程图第 5 页单分支流程图第一步:第二步:第三步:第四步:第五步:.第 6 页单分支流程图根据学生回答情况,有针对的分析问题:根据学生回答情况,有针对的分析问题:灯具有亮和灭两种状态,同时灯具有一种特殊性,开灯会伴有发热现象,因此
3、触摸灯泡会有冷和热两种状态。因此一盏灯具可能有4种不同的状态。如何使3盏灯处于不同的状态?解决问题的方法和步骤:解决问题的方法和步骤:(百日冲刺书第(百日冲刺书第23页)页)(一)使用自然语言的方法描述(一)使用自然语言的方法描述第一步:打开1号、2号两个开关第二步:过2分钟后关闭1号开关第三步:进房间,亮着的灯是由2号开关控制第四步:摸一下另外两盏不亮的灯,发热的灯泡是由1号开关控制第五步:不亮又不热的灯是由3号开关控制第 7 页单分支流程图也称为程序框图,它是描述问题解决的一种图形化表示方法。与使用自然语言描述相比,用流程图描述形象、直观、更容易理解。第 8 页单分支流程图第 9 页单分支
4、流程图(二)使用流程图的方法描述(二)使用流程图的方法描述第 10 页单分支流程图 二、算法:二、算法:(百日冲刺书第(百日冲刺书第21页)页)算法的定义算法的定义 算法是解决问题的方法和步骤。算法的描述方法算法的描述方法 自然语言;流程图;伪代码。算法的特征算法的特征1.有穷性。算法必须能在执行有限步骤之后终止。2.确切性。算法中的每一次运算都有明确的定义,无二义性,计算结果唯一。3.输入项。一个算法有0个或多个输入。4.输出项。算法一定要有输出。任何算法不能“无功而返”。5.可行性。算法在有限时间内完成,运算必须是可以实现的。第 11 页单分支流程图 三、使用三、使用解析法解决问题解析法解
5、决问题的思想方法的思想方法 (百日冲刺书第(百日冲刺书第42页)页)能熟练运用现有的公式、定理等将应用的数字解析式转换为 Python语句,以实现问题的求解。1.解析法:通过找出解决问题的前提条件与结果之间关系的表达式,再计算表达式来实现问题的求解。2.在生活中,我们可以利用已经成熟的数量关系和公式、定理来解析各种问题,如利用开根公式求根、利用海伦公式求三角形面积等。第 12 页单分支流程图典型例题:典型例题:1、以下为某同学求解的近似值的程序代码(求解关系式为 ),横线处应补充的语句为()。total,s,n,t=0.0,1,1.0,1.0while(n1000):total+=tn+=2s
6、=-s_pp=total*4print(值是:.20f.format(pp)A.t=s/nB.t=s/(-n)C.t=(-s)/nD.t=t/n第 13 页单分支流程图典型例题:典型例题:2.三角形面积公式 ,其中a、b为两条边的边长,这两条边的夹角为C(弧度制)。那么在 Python中,下列哪条语句是正确的?()A.S=(a*b*sin(C)*0.5B.S=(a*b*sinC)*0.5C.S=(a*b*sin(C)*2D.S=(a*b*sinC)/22sinSCba,第 14 页单分支流程图 四、使用枚举法四、使用枚举法解决问题解决问题的思想方法的思想方法(百日冲刺书第(百日冲刺书第46页)
7、页)1、枚举法:称为穷举法,是利用计算机运算速度快、精确度高的特点,把所有可能的答案一一列举,合适就保留,不合适就丢弃。2.枚举法解决问题的一般结构:循环+判断。3.枚举法需要逐一验证所有的可能情况,运算量比较大,解决问题的效率不够高。因此,使用枚举法解决问题时,需要考虑优化算法,选择恰当的枚举对象,尽量分析出问题中的隐含条件,缩小枚举范围,以提高解决问题的效率。第 15 页单分支流程图典型例题:典型例题:(先用数学的方法分析解决问题,然后转换为计算机语言)(先用数学的方法分析解决问题,然后转换为计算机语言)1.我国古代的数学著作孙子算经中有这样一道算术题:“今有物不知其数,三三数之剩二,五五
8、数之剩三,七七数之剩二,问物几何?”即一个数除以3余2,除以5余3,除以7 余 2。请补全下面的代码,使程序能够求出这个数。i=0while(i%3!=2 or i%5!=3 or ):print(i),第 16 页单分支流程图典型例题:典型例题:(先用数学的方法分析解决问题,然后转换为计算机语言)(先用数学的方法分析解决问题,然后转换为计算机语言)2、请填空完善下面程序,实现功能输出所有水仙花数。水仙花数是指一个三位数它的每一位上的数字的3次方之和等于它本身。例如:三位数153满足:1*3+5*3+3*3=1+125+27=153,则153是水仙花数。设变量b,s,g,分别用于存放个位、十位和百位上的数。print(所有水仙花数:)for x in range(100,):b=x/#百位 s=(x/10)%10#十位 g=x%#个位 if x=(b*3+s*3+g*3):print(x),