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

news2024/11/27 11:36:50

[导读]:超平老师的《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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【合合TextIn】AI构建新质生产力,合合信息Embedding模型助力专业知识应用

目录 一、合合信息acge模型获MTEB中文榜单第一 二、MTEB与C-MTEB 三、Embedding模型的意义 四、合合信息acge模型 (一)acge模型特点 (二)acge模型功能 (三)acge模型优势 五、公司介绍 一、合合信息…

目标检测——植物病害图像数据集

一、重要性及意义 首先,植物病害图像是了解农业中植物生长和受病害情况的重要信息来源。通过对这些图像的分析,可以直观地观察到植物的生长状况,及时发现病害的存在。这不仅有助于农民和研究人员快速、准确地诊断植物病害,还能为…

电源纹波测量

前言 掌握电源纹波测量方法 测量器材 一台示波器 一、先点击示波器的测量通道 二、设置耦合方式为交流耦合、带宽限制为20M、探头X10 三、纵轴和横轴的一个格子均设置为20ms 四、观察这个Vpp,就是纹波 五、测量时不要用这个接地,构成的回路太大&…

浅谈投资者需要了解的伦敦银买卖规则

别看近期伦敦银价格曾经大涨,现在入场做伦敦银投资的朋友不一定能盈利,因为他们不了解伦敦银买卖规则。投资伦敦银需要了解哪些规则呢?下面我们就来讨论一下这个问题。 知晓杠杆交易的风险。伦敦银是一种杠杆交易,或者说保证金交易…

DFS(基础,回溯,剪枝,记忆化)搜索

DFS基础 DFS(深度优先搜索) 基于递归求解问题,而针对搜索的过程 对于问题的介入状态叫初始状态,要求的状态叫目标状态 这里的搜索就是对实时产生的状态进行分析检测,直到得到一个目标状态或符合要求的最佳状态为止。对于实时产生新的状态…

二极管基础知识篇(一)

大家好,我是砖一。 今天给大家分享一下二极管的基础知识,把主要知识点进行简化汇总,这样才能更好使用。 一,二极管的介绍 1,世界上有三种材料,分别是绝缘体,导体,还有一种处于导体…

Jmeter通过OS进程取样器调用Python脚本实现参数互传

1、 Python中 sys.argv的用法解释:sys.argv可以让python脚本从程序外部获取参数,sys.argv是一个列表,可用[]提取其中的元素,其第一个元素是程序本身,随后才依次是外部给予的参数,可以接受多个参数&#xff…

类和对象(下)--- 初始化列表、explicit、友元、static、匿名对象和内部类

本篇将会对类和对象的主要知识收尾,先会对构造函数进行补充,分别补充了构造函数体赋值、初始化列表、explicit 关键字,然后介绍 static 成员知识以及友元、内部类还有匿名对象等知识点,目录如下: 目录 1. 构造函数补充…

逐浪100人丨对话魔珐科技CEO柴金祥:AI时代,虚拟人的边界在哪?

Photo by 《机械姬》剧照 ©自象限原创 访谈丨程心 生成式AI的爆发,带领全民到达AIGC的新时代。 在这个新时代,虚拟人作为一种新兴的内容载体,不仅在娱乐、教育、零售等领域中扮演着越来越重要的角色,也成为了品牌与消费者…

第十三届蓝桥杯国赛真题 Java C 组【原卷】

文章目录 发现宝藏试题 A: 斐波那契与 7试题 B: 小蓝做实验试题 C: 取模试题 D: 内存空间试题 E \mathrm{E} E : 斐波那契数组试题 F: 最大公约数试题 G: 交通信号试题 I: 打折试题 J: 宝石收集 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&#x…

关于Ansible的模块②

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 接《关于Ansible的模块 ①-CSDN博客》,继续学习和梳理Ansible的常用文件类模块 1. copy模块 从当前机器上复制文件到…

PCB表面缺陷检测项目 | 轻量化PCB表面缺陷检测算法实现

项目应用场景 面向 PCB 表面缺陷检测场景,包括漏孔 missing hole、咬伤 mouse bite、开路 open circuit、短路 short、支线 spur、杂铜 spurious copper 六种缺陷类型。 项目效果: 项目细节 > 具体参见项目 README.md (1) 下载模型 (2) 安装依赖&…

Master公式(计算递归复杂度)

Master公式 在计算涉及递归的算法的时候,计算复杂度就会变得有些麻烦。Master公式就是用来进行剖析递归行为和递归行为时间复杂度的估算的 Master公式:T(N) a*T(N/b) O(N^d) 公式解释:n表示问题的规模,a表示递归的次数也就是生…

使用 Yoda 和 ClickHouse 进行实时欺诈检测

背景 Instacart 是北美领先的在线杂货公司,拥有数百万活跃的客户和购物者。在其平台上打击欺诈和滥用行为不仅对于维护一个值得信赖和安全的环境至关重要,也对保持Instacart的财务健康至关重要。在这篇文章中,将介绍了一个欺诈平台——Yoda,解释了为什么我们选择ClickHous…

每日一题(相交链表 )

欢迎大家来我们主页进行指导 LaNzikinh-CSDN博客 160. 相交链表 - 力扣(LeetCode) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节…

服务器主机推荐

服务器推荐:雨云 - 新一代云服务提供商 雨云的服务器享受免费使用CDN服务,当前CDN调整中; 使用CDN时域名无需备案; 注册后绑定微信可以获得一张首月5折优惠券; 雨云支持1元任意配置1天试用,试用服务器一…

2024年美团笔试题(1)

一.题目描述 小美拿到了一个排列,其中初始所有元素都是红色,但有些元素被染成了白色。 小美每次操作可以选择交换任意两个红色元素的位置。她希望操作尽可能少的次数使得数组变成非降序,你能帮帮她吗? 排列是指:一个长度为n的数组&#…

将在使用的git分支的历史其中的一个版本切换成新的git分支

要将正在使用的 Git 分支的历史中的一个版本切换成新的 Git 分支,可以按照以下步骤进行操作: 两种方式 1.(命令行)可以使用 git log 命令查看提交历史并找到对应的提交哈希值。 2.(图形化) 2.1通过idea…

Netty教程之NIO基础

NIO 介绍 NIO 全称java non-blocking IO(非阻塞 I/O),后续提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的。 阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种…

Php_Code_challenge12

题目: 答案: 解析: 字符串拼接。