当前位置:   article > 正文

马克思的手稿-第11届蓝桥杯Scratch选拔赛真题精选_蓝桥杯scrach2020五月

蓝桥杯scrach2020五月

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第92讲。

蓝桥杯选拔赛每一届都要举行4~5次,和省赛、国赛相比,题目要简单不少,再加上篇幅有限,因此我精挑细选了一部分题目进行解读。

第11届蓝桥杯青少年组第6次选拔赛于原定于2020年2月15日举行,因为疫情延期到5月31日,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

马克思的手稿,本题是2020年5月31日举行的第11届蓝桥杯Scratch选拔赛真题编程第5题,初级组和中级组都有此题,题目要求编程解决一道记录在马克思手稿中的数学趣题。

先来看看题目的要求吧。

一.题目说明

背景信息:

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩。在一家饭馆吃饭共花了50先令;每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令;问男人、女人和小孩各有几人?

编程实现:

1). 当绿旗被点击,舞台右侧添加一个空列表,并且小猫说“点击一次空格键,列表中添加一组男人、女人、小孩人数的答案”,如下图;

2). 接下来每点击一次空格,列表中就添加一组符合要求的数据,如下图;

3). 当所有符合要求的数据都添加到列表之后,小猫说“全部找到了”2秒,程序结束;

4). 再次点击绿旗,程序可以重复执行。

评判标准:

  • 20分:完成右上图;

  • 20分:列表中能显示2组及以上符合要求的数据;

  • 40分:列表中能显示所有符合要求的数据;

  • 20分:点击绿旗能重复执行,且完全符合要求。

二.思路分析

本题只有1个角色,就是默认的小猫,如图所示:

这是一道典型的枚举算法题,所谓枚举算法就是将所有问题的可能性一一列举出来,并判断是否符合给定条件。

根据题目描述,我们可以得出如下两个条件:

男人 + 女人 + 小孩 = 30
男人 * 3 +  女人 * 2 + 小孩 = 50

因此,我们可以将所有可能的组合都列出来,看看是否满足上述两个条件。典型的做法就是使用嵌套循环对每一种组合进行判断,将满足条件的组合存入到列表中。

对于本题而言,每按一次空格键就获取一种组合,我们可以先将男人的数量设置为1,每按一次空格键就将数量增加1,这就相当于是外层循环。

针对每一个确定的男人数量,我们需要对女人的数量进行循环判断,初始值也是1,有了男人数量和女人数量,就可以利用上面的第一个条件,计算出小孩的数量,然后根据第二个条件,将对应的组合存入列表。

我们可以使用如下流程图来表示这个过程:

需要注意的是,男人和女人数量的范围,题目明确说明在30人中有男人、女人和小孩,所以男人和女人的最小值必定为1,最大值呢?

一般我们都会这么思考,每个男人花了3先令,总共是50先令,假定都是男人,那么男人的数量要小于 50 /3,也就是男人数量的最大值是15,同理我们可以计算出女人数量的最大值是25。

实际上,我们还可以缩小男人数量的范围,将上面的两个条件等式相减可得:

男人 * 2 + 女人 = 20

从这个等式中,我们很容易得出男人的数量不超过10,女人的数量不超过18,范围缩小了,程序的效率就提高了。

三.编程实现

根据题目描述和思路分析,我们可以分两步来编写程序:

  • 准备工作及初始化

  • 按下空格键添加一组数据

1. 准备工作及初始化

创建3个变量,分别命名为“男人”、“女人”和“小孩”,如图所示:

再创建一个列表,将其命名为“男女小孩”,如图所示:

当点击绿旗时,将列表清空,将“男人”设为1,同时提示用户按空格键添加一组答案,在小猫角色中编写代码如下:

2. 按下空格键添加一组数据

根据思路分析中的流程图,编写代码如下:

代码是根据流程图来写的,但是有两个地方不一样,需要说明一下:

1). 这里只使用了一层循环,原因在于每按下一次空格键,代码就执行一次,男人的数量也增加1,其效果和循环是一样的;

2). 由于循环的次数是确定的,所以这里直接使用了”重复执行18次“,这么写比使用”重复执行直到“指令更简单。

四.总结与思考

本题难度系数为4,积木块数量35个左右 ,涉及到的知识点主要包括:

  • 变量和列表的使用;

  • 说话指令,注意两种不同形式的区别;

  • 运算符指令,包括算术运算、比较运算和字符连接运算;

  • 枚举算法的编程思想及实现方式。

本题有一定难度,重点是理解枚举算法的编程思想,掌握枚举算法的实现方式。同时要结合数学知识,简化代码结构,优化代码效率。

不知道你发现了没,这道题和著名的百钱百鸡问题非常类似,题目是这样的,公鸡每只5元,母鸡每只3元,三只小鸡1元,用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?有兴趣的同学可以挑战一下。

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

需要素材和源码的,可以联系本人,或者移步至同名wx号。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/340217
推荐阅读
相关标签
  

闽ICP备14008679号