第1篇 机械运动 机械运动是宇宙中最普遍的现象,也是自然界中最简单、最基本的运动形态。机械运动的形式多种多样,有沿着直线运动的,也有沿着曲线运动的; 有运动得快的,也有运动得慢的。 本篇把多种类型的机械运动与有趣的Scratch案例结合,通过编程让机械运动生动而形象地展现在眼前。 第1课运动的快慢——区间测速 第2课加速度——疯狂的赛车 第3课重力加速度——自由落体运动 第4课平抛运动——飞机投弹 第5课斜抛运动——定点投篮 第6课单摆运动——神奇的小球 第1课运动的快慢——区间测速 1. 课程目标 当人们乘坐车辆在高速公路上行驶时,经常会听到导航里提示“您已进入区间测速”。这句提示语是什么意思呢?所谓区间测速,就是在某个路段上设置前、后两个监控点,监测车辆通过这两个监控点的时间来计算车辆在该路段上的平均速度,并根据该路段的限速标准来判断车辆是否超速。 本节课将带你学习机械运动中最简单的直线运动,学习如何计算物体运动的速度,并用Scratch模拟实现“区间测速”系统。相信学完本节课的内容后,你对“区间测速”会有更深入的理解。 本节课的案例预期的实现效果如图11所示。当汽车从A点行驶到B点时,程序能立即计算出汽车行驶的平均速度。 图11“区间测速”程序的实现效果 2. 物理知识 速度 天上飞行的飞机,地上行驶的汽车,水里航行的轮船,都有一个共同点,那就是它们都是运动中的物体,位置随着时间的变化而不断变化。这种运动在物理学中叫作机械运动。大到宇宙中的天体,小到陆地上的一只蜗牛,它们做的都是机械运动。 对于运动中的物体,通常用一个关键词“快慢”来形容。怎么比较物体运动的快慢呢?通常有两种方法: 一种是在相同时间内,如果物体经过的路程越长,就代表这个物体运动得越快; 另一种是在相同路程内,如果物体用的时间越短,就代表这个物体运动得越快。这两种方法最终比较的都是同一个物理量——速度。 在物理学中,速度就是用来表示物体运动快慢的物理量。通常用s表示路程,t表示时间,v表示速度,则有 v=s/t 速度的单位通常用米每秒(m/s)或者千米每小时(km/h)来表示。 匀速直线运动和变速直线运动 做机械运动的物体按照运动轨迹的曲直可以分为直线运动和曲线运动。本节课先来学习简单的直线运动。在直线运动中,又根据速度是否变化,分为匀速直线运动和变速直线运动。 如果一个物体沿着直线运动且速度保持不变,那么这个物体做的是匀速直线运动。如果一个物体沿着直线运动而速度是变化的,那么这个物体做的是变速直线运动。 变速运动相对复杂,如果只做粗略研究,也可以套用速度计算公式v=s/t,这样计算出来的速度就是平均速度。 接下来分析图12中两只小猫的运动情况。 图12做匀速直线运动和变速直线运动的Scratch小猫 第一只小猫做匀速直线运动,速度是7/70=0.1m/s。 第二只小猫做变速直线运动,平均速度也是7/70=0.1m/s。 这说明,虽然这两只小猫的运动形态不同,但它们运动的快慢差不多。 明白了这个物理原理之后,接下来,我们用Scratch编写“区间测速”的程序。 3. 算法分析 试着模拟这样的场景,小车从A点行驶到相距100m的B点,A点和B点在一条直线上。小车做变速直线运动,速度不定。测量小车从A点行驶 图13程序算法流程图 到B点的时间t,计算出小车的平均速度v。 已知小车行驶的总路程为A点到B点的距离100m,要计算出小车的速度v,必须要知道小车行驶的时间t。要怎么测量它的行驶时间呢?答案是采用计时器。 当小车启动时,将计时器归0,启动计时器开始计时。当小车到达B点后,停止计时器,此时计时器的时间就是小车行驶的时间t。 用自然语言描述整个程序的算法,步骤如下。 (1) 程序开始,进行数据初始化,计时器清0。 (2) 单击启动按钮,小车从A点出发,开始计时。 (3) 小车向前做变速直线运动。 (4) 判断小车是否到达B点,若是,转到第(5)步; 若否,转到第(3)步。 (5) 停止计时器,得到小车的行驶时间t。 (6) 计算平均速度v。 (7) 程序结束。 用流程图可以更直观地描述上述算法,如图13所示。 4. 编程实现 (1) 新建角色。 本程序主要的角色有: 小车、“开始”按钮、学生lisa。 (2) 数据初始化。 本程序需要用三个变量表示小车的行驶过程,分别是小车的行驶路程s、行驶时间t和行驶平均速度v。将变量按图14进行初始化。 (3) 小车在行驶过程中,做变速直线运动。 通过不断检测小车的x坐标,来判断小车是否到达B点。 如果小车未到达B点,那么小车继续向前行驶,小车的x坐标不断增加。因为小车做的是变速运动,所以坐标变化不是固定的。 如果小车到达B点,那么将此时计时器的值赋值给行驶时间t变量,这样就得到了小车的行驶时间。 请你思考一个问题,可以直接用计时器的值来代表小车的行驶时间吗? 答案是不行。因为Scratch里面的计时器是不能暂停或停止的。除非清0,否则计时器一直在计时。即使程序结束,计时器仍然在计时。所以为了准确地表达小车的行驶时间,需要引入一个新的变量t。在小车到达B点时,把此时计时器的瞬时值赋值给t,这样t就能准确代表小车的行驶时间了。具体代码如图15所示。 图14数据初始化的代码 图15计算小车行驶时间t的代码 (4) 计算小车的平均速度v。 运用平均速度计算公式v=s/t,代码如图16所示。 图16计算小车平均速度的代码 5. 试一试 在示例程序中,让小车做的是变速直线运动。请你打开程序,思考并尝试实现如下效果: 如何让小车做匀速直线运动?如何让小车行驶得更快?如何让小车行驶得更慢? 第2课加速度——疯狂的赛车 1. 课程目标 在第1课中,我们学习了用速度表示物体运动的快慢。现在有两辆小汽车,一辆小汽车在10s内,速度从0达到70km/h; 另一辆小汽车在20s内,速度也从0达到70km/h。虽然这两辆小汽车都从0达到70km/h,但是它们的运动情况显然是不同的。此时“速度”这个物理量已经无法描述这种不同了,那应该怎样描述呢? 本节课将带你学习一个新的物理量“加速度”来描述这种不同,并用Scratch模拟实现“疯狂的赛车”比赛。通过这个案例,相信你能够更好地理解加速度在物体运动中的作用效果。 2. 物理知识 加速度 本节课开头提到的两辆小汽车都在做加速运动,速度都是从0增加到70km/h,但所用的时间不同。也就是说,它们的速度变化量相同,但速度变化的快慢不同。用时短的,速度变化快; 用时长的,速度变化慢。物理学中,把描述速度变化快慢的物理量叫作加速度,通常用a来表示。加速度a的表达公式为 a=ΔvΔt 加速度的单位是米每二次方秒,符号是m/s2。 加速度是有方向的。如果速度在增加,那么加速度与速度方向相同,用正数表示。如果速度在减小,那么加速度与速度方向相反,用负数表示。 匀变速直线运动 前面提到的两辆小汽车,如果加速度保持不变,那么第一辆小汽车的加速度为 a1=(70-0)/10=7(m/s2) 第二辆小汽车的加速度为 a2=(70-0)/20=3.5(m/s2) 由于加速度保持不变,小车的速度随时间均匀的变化,这两个小车所做的运动就叫作匀变速直线运动。 匀变速直线运动分为匀加速直线运动和匀减速直线运动。 速度与时间的关系 现在,已知小汽车的初始速度v0,加速度a,行驶时间t,那么小汽车当前的速度v是多少呢? 把Δv=v-v0代入a=ΔvΔt中,得到v=v0+at,这就是匀变速直线运动中速度与时间的关系式。图21描绘了匀加速直线运动中速度随时间的变化情况。 图21匀加速直线运动中速度与时间的关系 位移与时间的关系 做匀变速直线运动的物体,其位移大小可以用图21中的梯形面积来表示。根据梯形的面积公式,得出位移s=12(v0+v)t。把v=v0+at代入,可得 s=v0t+12at2 这就是匀变速直线运动中位移与时间的关系式。 明白了这些物理原理之后,接下来用Scratch编写“疯狂的赛车”的程序。 3. 算法分析 在“疯狂的赛车”程序中,有三辆小车,分别用红车、绿车、黄车表示。从起始点开始比赛,三辆小车分别做着不同的运动,最先到达终点的小车获胜。把屏幕左侧边缘设为起始点,把屏幕右侧边缘设为终点。 下面分别描述这三辆小车的运动情况。 (1) 绿车起始速度是5m/s,加速度为0,做匀速直线运动。 图22程序算法流程图 (2) 红车起始速度是3m/s,加速度为0.1m/s2,做匀加速直线运动。 (3) 黄车起始速度是0,加速度为0.2m/s2,做匀加速直线运动。 这三辆小车虽然运动状态不同,但都符合下面的算法模型。 用自然语言描述这个算法模型,步骤如下。 (1) 程序开始,进行数据初始化。 (2) 把小车移到起点,比赛开始。 (3) 计算小车在单位时间内的位移,并移动到新的位置。 (4) 判断小车是否到达终点,若否,转到第(3)步; 若是,转到第(5)步。 (5) 判断是否是第一个到达,若是,则赢得比赛。 (6) 程序结束。 用流程图可以更直观地描述上述算法,如图22所示。 虽然三辆小车的算法模型相同,但用到的具体算法是不同的,不同点就在于位移计算的方法不同。 (1) 绿车做匀速直线运动,其位移计算公式为s=vt。 (2) 红车和黄车做匀加速直线运动,其位移计算公式为s=v0t+12at2。 (3) 黄车的初始速度为0,其位移计算公式可简化为s=12at2。 最后程序实现的效果如下。 (1) 比赛开始后,绿车领先,红车其次,黄车最后(见图23)。 (2) 红车超过绿车,领先比赛,绿车其次,黄车最后(见图24)。 (3) 黄车反超,领先比赛,红车其次,绿车最后(见图25)。 (4) 黄车赢得比赛的胜利(见图26)。 从上面的程序结果可以看出,虽然比赛开始时,黄车初始速度小,处于落后状态,但黄车的动力强劲,加速度最大,很快就追了上来,最后赢得了比赛。 这说明运动的物体随着时间的增加,加速度越大,运动得越快,这就是加速度在物体运动中的作用效果。 图23比赛开始0.8s左右,绿车领先 图24比赛开始1.6s左右,红车领先 图25比赛开始2.2s左右,黄车领先 图26最后黄车赢得比赛 4. 编程实现 (1) 新建角色。 本程序主要的角色有: 绿车、红车、黄车。 (2) 数据初始化。 每个角色都创建3个私有变量: 初始速度v0、时间t和位移s。红车和黄车还多了1个私有变量——加速度a。 以红车做数据初始化的代码为例,如图27所示。 程序中还有一个全局变量“冠军”,用于存储比赛是否产生冠军的结果。在舞台背景的程序中,创建全局变量“冠军”,并初始化为0(见图28)。 (3) 小车向前行驶,直到到达终点。代码如图29所示。 绿车做匀速直线运动,计算位移的方法如图210所示。 图27红车做数据初始化的代码 图28舞台背景的初始化代码 图29实现“小车向前行驶直到终点”的代码 图210绿车计算位移的代码 红车做初速度不为0的匀加速直线运动,计算位移的方法如图211所示。 图211红车计算位移的代码 黄车做初速度为0的匀加速直线运动,计算位移的方法如图212所示。 图212黄车计算位移的代码