资源简介 (共22张PPT)广义上讲,算法是解决一个特定问题而采取的确定的、有限的步骤。在计算机领域,算法作为一个精心设计的运算序列,描述了计算机如何将输入转化为输出的过程2.4 常见算法的程序实现1.基于解析算法的问题解决2.基于枚举算法的问题解决学习目标理解解析算法和枚举算法,根据需要选用这两种算法,编程实现简单问题求解。认识问题解决中不同算法的效率,完成项目程序的调试与运行体验探索绿灯时长的最优设置通常,行人步行速度约为4.4km/h,观察到信号灯变化一的反应时间约为2s。要保证过街行人能走过长为20m的人行横道,人行过街绿灯时长至少需要设置为多少?思考:1.写出求解绿灯最短时长的计算公式: 。2.结合实际道路情况,思考在设置人行过街绿灯时长时需要考虑哪些因素,试着给出绿灯时长的最优设置模型。自助式人行过街红绿灯分析问题已知条件求解目标确立数学关系,建立数学模型。1.写出求解绿灯最短时长的计算公式: t=s/v+t 。建立数学模型数学模型是用数学符号、数学式子、程序、图形等对实际问题本质属性的抽象而又简洁的刻画。建立数学模型,就是根据实际问题来简化假设、分析内在规律,之后抽象成为数学的符号和语言。2.结合实际道路情况,思考在设置人行过街绿灯时长时需要考虑哪些因素,试着给出绿灯时长的最优设置模型。 成人 1.2 1~2老人和孩子 0.9 3 要在学校门口(马路宽20 m)设置一个“自助式人行过街红绿灯”,参考下表数据,绿灯时长最少应为多少秒 此处的“最少”≠数值“最小”向上取整 / s18.725.21926步行速度/( m·s-1)反应时间 / s计算结果 / s马路宽度s步行速度v人反应时间t02.4.1 基于解析算法的问题解决定义:解析算法指通过找出解决问题的前提条件与结果之间关系的表达式,并计算表达式来实现问题的求解。例如,在“体验探索”中求解行人过马路最短绿灯时长公式:t绿灯时长= t人反应 + s/v编程调试已知条件求解目标二者关系计算基于解析算法的问题解决方法及步骤解析算法通过分析问题的已知条件和求解目标,抽象成数学模型,借助解析式,用已知条件为变量赋值进行求解。例如:绿灯时长的最优设置已知求解解析式研究性学习中的问题现实生活中的问题kmkmkm例1:自由落体运行问题问题:从离地500m的高处自由落下一个小球,求从开始落下的时刻起,小球在最后1s内的位移(重力加速度g以9.8m/s2计)已知条件:小球离地高度500m,重力加速度g以9.8m/s2重力;求解目标:小球在下落最后1s内的位移;已知与未知的关系:可用自由落体运行位移与时间公式h=1/2gt2,求解出下落时间t,以及最后1s内小球的位移。(1)分析问题(2)设计算法在该问题中,要计算最后1s内小球的位移,首先要求出小球的落地时间t,由h=1/2gt2 可以得出落地t= ;然后计算前(t-1)s小球下落的高度hx;最后求出总高度h(500m)与hx的差hh,即为最后1s内小球的位移。开始h←500,g←9.8结束输出最后1秒的位移hhhh ← h-hx求解算法的流程图如下图示:自由落体运动问题求解流程图运行结果(3)编程实现与调试(4)保存文件,调试运行程序import mathh=500g=9.8t=math.sqrt(2*h/g)hx=0.5*g*(t-1)**2hh=h-hxprint("小球最后1秒下落的位移是:",hh,"米")实践活动编写程序研究某山地的气温分布P72某地区为了开发山区农业,需要了解山地的变化。现已知该地山区海拔每升高100m,气温下降约0.5°C,山地最高海拔为1500m,山脚下的年平均气温为22°C(假设山脚海拔为0m).1.依据气温随海拔升高而变化的规律,写出计算该山地不同海拔调试的气温的解析式,并编程实现。2.某种植物适宜生长在气温为18~20°C的山区,如果要分析这种植物应被种植在该山地多高的地区为宜,需要如何修改算法?试编程实现。现有一段长度为66 km的测速区间,汽车的限速是100 km/h。数据中心需要编写一段程序来判断汽车是否超速通过。例2: 区间测速要判断小车是否在区间内超速,需要求得小车的平均时速,并与限速对比,如果大于限速则超速,否则就是正常通过。求平均时速需要提供区间距离和通过时间。区间距离已经明确,小车的通过时间可以由前后两个监测点的时间差判定,为简化问题,我们可以将通过时间设为输入数据。分析问题已知求解数学模型设计算法输入ts=66v=s/t*60开始结束输出'超速通过'v>100输出'正常通过'是否(t以分钟为单位。)编程实现s=66t=int(input("请输入通过限速路段时间:"))v=s/t*60if v>100:print("超速通过!")else:print("正常通过")分析问题分析出已知条件、求解目标和已知与未知的关系。设计算法然后推导构建出解析式。编程调试最后将数学解析式转换成程序表达式,进行编程实现并调试。解析算法基于解析算法的问题解决微信抢红包微信红包是大家都熟悉的一种游戏娱乐方式。请思考:红包的数额是如何生成的?为什么你打开的红包金额和别人的不一样?实践探索练习提升1.交通信号“绿波带”是根据车辆运行情况对各路口红绿灯进行协调,使车辆通过路口时能连续获得一路绿灯。某路段启用了“绿波带”技术,如下图示,全长1.6km,5个灯控路口,提示的“绿波速度”为60km/h,假设5个灯控路口间距相等。在公考虑一辆车通行的情况下,如果实现“绿波”交通,那么相信两个路口间绿灯亮起的最大时间间隔应该设置为多少?思考该问题求解的算法并编程实现。阅读拓展利用“割圆术”求π的近似值P72import mathn=int(input("请输入正多边形的边数(n大于或等于6,且是6乘2的整数次方):"))i=6x=1s=6*math.sqrt(3)/4while i<=n/2:h=math.sqrt(1-(x/2)**2)s=s+i*w*(1-h)/2x=math.sqrt((x/2)**2+(1-h)**2)i=2*iprint("当正多边形的边数为",n,"时,π的近似值为:",s)程序代码:分析问题分析出已知条件、求解目标和已知与未知的关系。设计算法然后推导构建出解析式。编程调试最后将数学解析式转换成程序表达式,进行编程实现并调试。解析算法基于解析算法的问题解决课堂小结 展开更多...... 收起↑ 资源预览