超平老师计划推出《Python蓝桥杯真题解析100讲》

2024-02-27 14:40:38 欧洲杯赛事 admin

  [导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第23讲。

  小球自由下落,本题是2020年5月31日举办的第11届蓝桥杯青少组Python编程选拔赛真题,题目要求编程计算一个小球从n米高度自由下落,第10次反弹的高度以及一共经过的距离。

  先来看看题目的要求吧。

  编程实现:

  一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第10次反弹到最高点时(不含第十次落下距离)一共经过了多少米?

  输入样例:

  1024

  输出样例:

  1.0

  3069.0

  评判标准:5分:能正确判断一组数据;9分:能正确判断两组数据;11分:能正确判断三组及三组以上数据。

  这是一道简单的计算题,考查的知识点包括循环和算术运算。

  根据题目的描述,每次落地之后,反弹回来的高度是原高度的一半,我们以n=1024为例,使用表格来描述这个过程:

  看到这个表格,是不是有点豁然开朗的感觉,我们将小球单次的运动,分成如下两个过程:下落反弹

  每一次,反弹的高度是下落高度的一半,而这个高度又作为下一次下落的高度。在统计总运动距离的时候,将每次下落和反弹的高度都累加起来就可以了,然后将单次程重复10次即可。

  思路有了,接下来,我们就进入具体的编程实现环节。

  根据上面的思路分析,我们直接编写程序如下:

  代码非常简单,强调一点,在循环过程中,有3行代码,注意其顺序,先将下落的距离累加起来,再计算反弹距离,也是下一次下落的高度,同时再将反弹的高度累加起来。

  运行程序,输入1024,效果如下:

  输入2048,效果如下:

  注意结果是浮点数,因为在Python编程中,除法/得到的结果就是小数,即使是能够整除,结果也是小数。

  至此,整个程序就全部完成了,你也可以输入不同的数字来测试效果。

  本题的分数为25分,代码在8行左右,涉及到的知识点包括:输入和输出语句;循环语句,主要for...in循环;算术运算,包括加法和除法;变量的使用;

  题目难度一般,关键是要将小球下落和反弹的过程分析清楚,其高度是怎么变化的,遵循什么样的规律。

  在分析问题时,建议多使用画图或者表格的方式,它是将抽象问题具体化的一个过程,非常便于我们理解问题。

  你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

  如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香

超平老师计划推出《Python蓝桥杯真题解析100讲》

超平老师计划推出《Python蓝桥杯真题解析100讲》

发表评论: