最大的三位数-第15届蓝桥第5次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第177讲。

如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。

第15届蓝桥杯第5次STEMA测评已于2024年3月10日落下帷幕,编程题一共有6题(初级组只有前5道编程题),分别如下:

最大的三位数,本题是2024年3月10日举行的第15届蓝桥STEMA测评Scratch编程初/中级组编程第4题,题目要求编程创作最大的三位数作品。黑板上有一个四位数,请擦除其中一个数字,使得剩余数字组成的三位数最大。

先来看看题目的要求吧。

一.题目说明

编程实现:

最大的三位数。

黑板上有一个四位数,请擦除其中一个数字,使得剩余数字组成的三位数最大。

图片

具体要求:

1). 点击绿旗,黑板上显示一个随机的四位数,如图所示;

例如:随机的四位数为7971。

图片

2). 1秒后,老师说“请擦除一个数字”,如图所示;

图片

3). 鼠标点击黑板擦后,黑板擦会持续跟随鼠标移动,如图所示;

图片

4). 把黑板擦移动到想要擦除的数字上,点击鼠标左键,黑板擦会在该数字处上下滑动擦除该数字;(参考视频)

5). 黑板擦在擦除的过程中,该数字越来越模糊,最终留下一个很浅的痕迹,如图所示;(参考视频)

图片

6). 之后黑板擦回到最初的位置,如图所示;

图片

7). 如果擦除后得到的三位数最大,那么老师说“正确”;

8). 如果擦除后得到的三位数不是最大的,那么老师说“错误”。

评判标准:

  • 8分:满足"具体要求"中的1);

  • 2分:满足"具体要求"中的2);

  • 8分:满足"具体要求"中的3);

  • 10分:满足"具体要求"中的4);

  • 6分:满足"具体要求"中的5);

  • 2分:满足"具体要求"中的6);

  • 12分:满足"具体要求"中的7);

  • 12分:满足"具体要求"中的8)。

二.思路分析

本题提供了3个角色,分别是数字、老师和黑板擦,如图所示:

图片

其中,数字角色有10个造型,分别表示10个数字,如图:

图片

本题考查的知识点比较多,包括克隆、运动、事件广播和变量等。

我们可以分角色来分析,其中老师角色最简单,他就像一个主持人一样,负责开场和收尾,开始说了一句”请擦除一个数字“,最后判断擦除的数字是否正确。

其次是黑板擦角色,有两个小功能,一是在鼠标点击后跟随鼠标移动,二是上下移动,模拟擦除的动作。

数字角色是这里的重头戏,看起来好像只是一个简单的克隆和变淡效果,实际上还包含大量的数据处理和逻辑判断。

此处,超平老师需要强调一个重要的编程思想-数据驱动显示,即先有数据,然后再考虑角色的显示效果。

数据处理和逻辑判断是本作品的难点,我们可以从拆分成如下3个小模块:

1). 随机一个四位数

2). 计算出最大的三位数

3). 计算擦除任意数字后的三位数

第一步,比较简单,直接使用变量,并通过随机指令进行初始化,范围是1000~9999,如下:

图片

第二步,要计算最大的三位数,其实就是分别去掉千位、百位、十位和个位,然后逐个比较一遍,就可以得到最大的三位数。

比如,随机得到的四位数是5648,得到的三位数分别为:

去掉千位:648去掉百位:548去掉十位:568去掉个位:564

经过比较,可以发现最大的三位数是648,注意不是去掉最小数字就可以得到最大三位数的。

具体如何比较呢,这个可以结合第三步一起考虑。

第三步,计算擦除任意数字后的三位数,还是以四位数5648为例进行说明:

擦除第1个数字:648擦除第2个数字:548擦除第3个数字:568擦除第4个数字:564

看到这里,你想到了什么?

是不是和前面获取最大三位数时去掉千位、百位、十位和个位完全一样,难道要重新再来一遍?

很显然,这是不必要的,在编程中,使用变量(包括列表)可以避免做一些重复的工作。

不妨使用一个列表,将三位数按顺序依次保存起来,如下:

图片

有了这个列表,就要方便多了,遍历整个列表,就可以找到最大的三位数。更重要的是,当擦除任意个数字时,我们只需要知道该数字是第几个,就可以直接通过编号获取擦除后的三位数了。

如何知道是第几个数字呢,其实也非常简单,在克隆的时候,使用私有变量,给每个数字进行编号,从左到右依次为1、2、3、4。

如此一来,在擦除某个数字的时候,就可以通过编号获取擦除后的三位数了,再使用变量保存起来,如下:

图片

只需要一行代码就可以了,是不是非常的巧妙。

最大的三位数和擦后的三位数都有了,老师角色在判断的时候,就可以根据这两个变量是否相等来提示正确和错误了。

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

三.编程实现

根据上面的思路分析,我们分5步来编写程序:

  • 随机四位数并获取最大三位数

  • 克隆数字

  • 老师提示擦除数字

  • 黑板擦擦除数字

  • 老师判断结果

1. 随机四位数并获取最大三位数

首先,创建两个变量“四位数”和“最大三位数”,将四位数设置为1000~9999之间的随机数。

再建立一个列表“三位数”,将4个三位数保存到列表中。由于计算最大三位数的代码有点多,我们创建一个自制积木来简化代码结构。

创建自制积木并编写代码如下:

图片

代码比较多,简单说明两点:

1). 为了方便,这里创建了4个变量,分别用来表示四位数的千位、百位、十位和个位;

2). 列表在使用之前一定要清空;

3). 在向列表中插入数据的时候,一定要注意组合的顺序,确保是依次去掉千位、百位、十位和个位;

4). 在获取最大三位数时,先将最大值设置为0,然后遍历列表逐一比较,并更新最大值。

执行这段代码,就可以获取最大三位数,并将擦除后的4个三位数保存到列表中了。

2. 克隆数字

有了四位数,就可以根据四位数来克隆数字了,为了方便,我们使用自制积木来组织代码,对应的代码如下:

图片

代码不多,强调一点,这里的_ID是私有变量,用来给数字进行编号,编号依次为1、2、3、4。

然后在数字角色的绿旗指令中编写代码如下:

图片

注意代码的顺序,必须是先设置变量,接着调用“获取最大三位数”积木,最后是“克隆数字”。

对应的,设置好克隆体的造型,并显示,代码如下:

图片

执行代码,就可以看到克隆好的四位数字了,如图:

图片

3. 老师提示擦除数字

接下来,是老师提示要擦除数字,这一步非常简单,切换到老师角色,编写代码如下:

图片

4. 黑板擦擦除数字

黑板擦开始位于黑板左下方,在鼠标点击后会跟随鼠标移动,在碰到某个数字时点击鼠标才停止下来。

切换到黑板擦角色,编写代码如下:

图片

代码不多,但非常有技巧性,强调两点:

1). 点击黑板擦,不要使用”当角色被点击“指令,避免反复点击;

2). 对于循环,能使用”重复执行直到“指令,就不要使用”重复执行“指令,代码会简单不少。

然后就是擦除的效果,分为两个部分,一是黑板擦的上下移动效果,二是数字的变淡效果。

而且这两个动作是同步的,需要在黑板擦移动之前给数字角色发送一个广播消息。

为方便起见,我们先实现黑板擦的移动效果,在上面的代码块下面,继续编写代码如下:

图片

代码不难,说明四点:

1). 一定要在重复移动之前发送“擦除”广播,确保数字变淡和黑板擦擦除的效果是同步的;

2). 上下移动的方式,除了改变y坐标,还可以使用滑行指令,确保效果一致即可;

3). 在擦除结束后,黑板擦要回到黑板左下方;

4). 整个动作完成后,发送了一个“判断”的广播,这个也可以放在数字角色中;

对应的,切换到数字角色,编写代码如下:

图片

代码比较简单,强调两点:

1). 由于所有的数字克隆体都能接收广播消息,因此需要判断,只有碰到黑板擦的数字才是我们需要的;

2). 虚像特效增加的大小和次数可以自行调整,确保效果和参考视频一致即可;

5. 老师判断结果

最后一步,比较简单,老师角色在接收到”判断“的广播后,比较两个变量即可。切换到老师角色,编写代码如下:

图片

至此,整个作品就创作好了,赶紧运行程序看看效果吧。

四.总结与思考

本题是初/中级组编程部分第4题,分数为60分,积木块数量108个左右,涉及到的知识点主要包括:

  • 运动编程;

  • 克隆编程;

  • 变量,尤其是私有变量;

  • 事件广播机制;

  • 列表的灵活运用;

本题难度较大,综合性非常强,完成时间30分钟左右。这里的难点是如何判断擦除是否正确,具体来说就是如何获取最大的三位数及擦除后的三位数。

我们巧妙地使用列表将所有的三位数保存到列表中,一来便于比较得到最大的三位数,二来可以直接获取擦除后的三位数,可以说是一举两得,这就是列表的强大和美妙之处。

再来说说考试策略问题,这道题可以说是本次测评中最难的一道题目,不少考生花费了大量时间,结果还是完成得不好,碰到这种情况该怎么办呢?

其实,每一次考试都有可能出现这种情况,最难的一题(准确来说,是对你来说最难的一题)并不是总是最后一题。

面临这种情况,一不要硬抗到底,摆出一副不做出来不罢休的架势,二不要直接跳过,干脆避而不见。

最佳策略是以最快的时间完成一部分,对于本题而言,题目要求有8条,如果去掉最后两条要求,是不是就简单多了。

争取把前面的部分都完成,也可以拿到36分了。而最后的两条要求一共是24分,但是会花掉你30分钟的时间,肯定不划算,你要知道,后面的题目分值更高呢,切不可因小失大。

超平老师给你留一道思考题,如果我们找到四位数中的最小数字,然后判断擦除的数字是否为最小数字,能否行得通呢,为什么?

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

需要素材和源码的,可以移步至“超平的编程课”gzh。

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
版权归作者所有,任何形式转载请联系作者。 作者:王颢(来自豆瓣) 来源:https://book.douban.com/review/8387262/ 一本书有它的读者群,这本书适合青少年编程,而不适合儿童编程。这里的青少年指中学及其以上水平的学生,有一定的数学基础。 首先看看原书作者:Majed Marji,是韦恩州立大学的电子工程博士,一直在汽车行业开发软件长达15年。所以,写出的编程书必然很专业。因为是面向青少年的编程书,所以呢,也蛮有趣的,但是本书长达260页,需要一定的耐心才能坚持读完。 一般的编程书,就是把做动画、游戏的步骤写出来,入门还不错,但是内容不太深入。这本书当然也是以例子来演示,但是穿插了数据结构等计算机科学方面的知识。适合哪些对编程感兴趣,又想继续深入学下去的青少年。 先看书的目录: 第1章:准备开始(软件安装、软件介绍) 第2章:动作和绘图 第3章:外观和声音 第4章:过程 第5章:变量 第6章:用逻辑做决定 第7章:深入循环 第8章:字符串处理 第9章:链表 贴上一张Scratch 2.0软件的编程界面: 第2章对应着软件中的“动作”和“画笔”,第3章对应软件中的“外观”和“声音”,第4章对应软件中“事件”中的广播知识和“更多模块”中的自定义模块知识,还有就是讲解编程思维。 第5章对应“数据”中的变量知识,第6章和第7章对应软件中的“控制”,第8章对应软件中的“运算符”,第9章对应软件中“数据”中的链表知识。 所以,学完这本书,基本上就把Scratch 2.0编程学完了。并且,每个章节后面,还有对应的习题,可以做做,看看自己是否掌握编程知识。实在不会做,可以到书中的官网下载练习题答案,对照一下,看看自己哪里没有掌握。 其实,这本书也适合做编程培训的老师。很多老师没有编程的基础,可以拿这个来做练习。每天学习一点,不要学太多,没有兴趣要坚持学下去还是挺累的。这样,差不多3-4周可以学完。 这本书比较好的就是:有些例子是和数学、英语、语文、物理、生物知识结合,不仅仅是游戏和动画。所以,在编程的过程中,也可以复习已经学过的课本知识,可以说一箭双雕。 再说说这本书不好的:中文翻译太烂。这个不是书的原因,是Scratch 2.0软件的问题。我尝试翻译的更地道些,好让学生更好理解积木的功能。但是,居然软件不让改变关键词的前后顺序!!! 我来举个例子:链表test中有个积木是“replace item x of test with thing”,其中x、test、thing是关键词,翻译时不能改变关键词的顺序。如果翻译成地道的中文就是:将链表test的第x项替换成thing。然后,逗比的Scratch 2.0就只能翻译成:替换第x项在链表test用thing。oh my god,杀死我吧,这是什么鬼?!不要拿英语的习惯来做软件好吗?中文和英文的意思完全相反好吧!
2023年2月蓝桥STEMA评测C中级组,氧气值、燃料值、装备重量是评测中的三个关键指标。 首先,氧气值是指参赛者所携带的氧气的储备量。在这个评测中,参赛者需要完成一系列与高海拔环境相关的任务,因此氧气的充足与否直接关系到参赛者的生命安全和任务完成的效率。参赛者需要合理规划氧气的使用,以满足任务需求,同时尽可能节约氧气的使用,减轻负重,提高携带效率。 其,燃料值是指参赛者所携带燃料的储备量,如液态燃料等。在这个评测中,参赛者可能需要使用燃料进行加热、照明或其他用途,因此燃料的储备量也直接关系到任务的顺利进行。参赛者需要合理估计燃料的消耗量,并储备足够的燃料,以确保任务期间的能源供应。 最后,装备重量是指参赛者在进行任务时所携带装备的总重量。在这个评测中,参赛者需要具备一定的装备,如登山工具、食物、药品等,但同时也需要合理控制装备的重量,以减少负担并提高机动性。参赛者需要权衡装备的必要性和其重量,选择轻便而又功能齐全的装备,以获得最佳的任务表现。 综上所述,氧气值、燃料值和装备重量是2023年2月蓝桥STEMA评测C中级组的三个重要指标。参赛者需合理规划、储备和利用氧气和燃料,同时也需要精心选择装备,以保证任务的安全和效率。这些指标将考察参赛者的规划能力、资源管理能力和任务执行能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值