卡片排列-第15届蓝桥第二次STEMA测评Scratch真题精选

news2024/11/18 16:28:12

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

第15届蓝桥杯第2次STEMA测评已于2023年10月29日落下帷幕,编程题一共有6题,分别如下:

  • 旅游相册

  • 隐身的小鸟

  • 摩天轮

  • 找不同游戏

  • 字母不重复的子串

  • 卡片排列

卡片排列,本题是2023年10月29日举行的第15届蓝桥STEMA测评Scratch编程初/中级组编程第6题,题目要求编程实现卡片排列的效果。

先来看看题目的要求吧。

一.题目说明

编程实现:

卡片排列。

具体要求:

1). 点击绿旗,角色、背景如图所示(随机显示5张不同卡片,显示在同一行,卡片间距相同);

图片

2). 舞台显示询问框,提示“请输入1或2”;

图片

3). 如果输入1,1秒内,按照卡片上的数从小到大排序(从左到右),如图所示;

图片

4). 如果输入2,1秒内,按照卡片上的数从大到小排序(从左到右),如图所示。

图片

评判标准:

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

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

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

  • 40分:满足"具体要求"中的4)。

二.思路分析

本题只有1个卡片角色,如图所示:

图片

但是卡片有12个造型,对应数字1~12,如图所示:

图片

需要注意的是,造型编号和卡片数字是一一对应的。

本题考查的知识点包括克隆、列表运算和排序算法。关于列表排序,在往届蓝桥杯真题中出现过多次,比如:

  • 《列表排序-第10届蓝桥杯Scratch省赛真题第6题》

  • 《对对碰-第11届蓝桥杯Scratch省赛真题第6题》

  • 《考试成绩系统-第12届蓝桥杯Scratch省赛2真题第5题》

  • 《统计字符串-第13届蓝桥杯Scratch省赛真题第5题》

  • 《列表排序-第14届蓝桥杯STEMA测评Scratch真题精选》

  • 《比较身高-第15届蓝桥杯第一次STEMA测评Scratch真题精选》

由此可见,排序算法有多么的重要,是必须要熟练掌握的知识点。

关于排序,有10来种不同的算法,比如选择排序、插入排序、冒泡排序、快速排序等。

之前已经介绍过一些排序算法,包括简单排序和选择排序,这一次超平老师准备使用冒泡排序算法。

除了排序之外,本题还需要使用卡片来显示排序效果,这是本题的难点。

不过,我们可以分两步来解决,先实现数据排序,然后再根据列表中的数据来显示卡片效果。

1. 数据排序

这里一共有5张卡片,卡片的数字分别是1~12,所以先要从1~12之间随机选择5个数字,保存到列表中,在输入1或2之后,需要对列表进行排序。

冒泡排序是一种典型的交换排序算法,持续比较相邻元素,将大(小)的移到后面,因此大的会逐步往后挪,故称之为冒泡。

具体过程如下:

1). 比较相邻的元素,如果第一个比第二个大(小),就交换它们两个;

2). 对每一对相邻元素作同样的工作,这样在最后的元素应该会是最大(小)的数;

3). 针对所有的元素重复以上的步骤,除了最后一个;

4). 重复步骤1~3,直到排序完成。

其动画效果如下:

图片

2. 卡片显示

卡片显示分两种情形:

1). 排序之前

2). 排序之后

其中,排序之前的比较容易,直接按照列表中的数据,选择对应造型逐个克隆并显示即可。

这里的难点是排序后的显示效果,题目要求1秒完成排序,我们可以使用“在1秒内滑行到x,y”指令,关键是需要知道每张卡片的x坐标。

我们可以使用一个列表,将5张卡片的x坐标保存起来,如图所示:

图片

当列表完成排序后,只需要根据卡片的造型编号,移到对应的位置即可。此处不是很好理解,需要多思考一下。

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

三.编程实现

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

  • 随机列表数据

  • 克隆卡片并显示

  • 列表排序

  • 卡片排序

1. 随机列表数据

先创建列表“卡片”,然后往列表中插入5个随机数字,数字的范围是1~12,为了方便讲解,可以使用自制积木来组织代码。

在卡片角色中编写自制积木如下:

图片

代码比较简单,关键点是要确保没有重复的数据,所以每一次都需要判断随机出来的数字是否包含在列表中,如果包含,则重新生成随机数。

2. 克隆卡片并显示

有了列表数据,就可以根据列表中的数字,选择对应造型克隆卡片了。为方便组织代码,继续使用自制积木,代码如下:

图片

这是一个典型的克隆场景,先将本体移到舞台左边,然后根据列表中的数据来选择对应造型,克隆卡片,每克隆一个,就右移80步,确保5张卡片自左至右依次排列。

注意,这里使用了列表”x坐标“,将卡片的坐标保存起来。

在绿旗下使用自制积木,实现随机卡片的排列效果,代码如下:

图片

对应的,将克隆体显示出来,如下:

图片

执行代码,效果如下:

图片

3. 列表排序

接下来是询问”请输入1或2“,然后根据输入数字对卡片进行排序。输入1时,按从小到大的顺序排列,我们称其为正序,输入2时,按从大到小的顺序排列,我们称其为逆序。

有的同学会想,我们要分别进行正序排序和逆序排序。实际上,我们只需要一次排序,只要确保列表中的数据是排好序的就行。

在循环遍历列表的时候,可以从第一项开始,也可以从最后一项开始,这样就可以得到正序和逆序的数据了。

根据前面的思路分析,我们使用自制积木来实现冒泡排序,代码如下:

图片

代码有些难度,简单说明3点:

1). 对于长度为5的列表,我们需要进行4轮排序,一轮排序完毕,就把未排序中最大的数据移到最后了;

2). 每一轮排序,都是从第一个数据开始比较,已排序的数据无需比较,所以比较次数为5 - i;

3). 在交换列表数据的时候,需要使用一个中间变量,就是这里的”临时编号“,注意其写法。

有了自制积木,就可以在绿旗代码段中,继续编写代码如下:

图片

4. 卡片排序

当接收到”正序“广播后,卡片按照正序排序,代码如下:

图片

同理,当接收到”逆序“广播后,卡片按照逆序排序,代码如下:

图片

至此,整个作品就创作好了,是时候来测试程序的效果了。

四.总结与思考

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

  • Scratch问答指令;

  • 循环编程,尤其是嵌套循环

  • 条件编程,包括单分支和双分支;

  • 变量的使用;

  • 列表的运算;

  • 克隆编程;

  • 排序算法;

这是中级组最后一题,难度较大,完成时间30分钟左右,难点有两个,一是列表排序,二是卡片的排列效果。

排序是编程中最基础的一种算法,其应用也非常的广泛。在众多的排序算法中,选择排序最简单,冒泡排序则是最经典的,所以,这是每一位学习编程的同学必须要熟练掌握的算法。

超平老师给你留一个思考题,本题中分享的冒泡排序,每次将较大的数字往后挪,其实也可以将较小的数字往前挪,如图:

图片

你知道如何编程实现吗,赶紧动手试试吧。

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

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

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

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

相关文章

cesium雷达扫描(模糊圆效果)

cesium雷达扫描(模糊圆效果) 1、实现思路 使用ellipse方法加载圆型,修改ellipse中‘material’方法重写自己的glsl来实现当前效果 1、示例源码 index.html <!DOCTYPE html> <html lang="en"><head><!<

如何将vscode和Linux远程链接:

如何将vscode和Linux远程链接&#xff1a; Remote - SSH - 远程登录Linux 安装Remote - SSH 我们下载完后&#xff0c;就会出现这些图标 这里点一下号 查看一下我们的主机名&#xff0c;并复制 输入ssh 用户名主机名 这里是要将ssh这个文件要放在主机下的哪个路径下&#xff…

最强人工智能ChatGPT引领AIGC发展

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- ——AI不会淘汰所有人&#xff0c;但会淘汰不懂AI的人 一、最强人工智能GPT-4 Turbo 在前不久的OpenAI开发者大会&#xff0c;正值Chatgpt3.5发布一…

微信第三方平台开发重点概念流程梳理

标题 微信开发的亿点点概念第三方平台代开发流程亿些概念开发流程 代公众号使用JS SDK一些概念具体流程引用 微信开发的亿点点概念 AppID&#xff1a;AppID是不同类型的产品的账号ID,是账号的唯一标识符。例如公众号的AppID、小程序的AppID、开放平台的AppID、第三方平台的App…

C++之内建函数对象

C之内建函数对象 算术仿函数 #include<iostream> using namespace std; #include<functional>//内建函数对象头文件 //内建函数对象 算术仿函数void test() {// negate 一元仿函数 取反仿函数negate<int>n;cout << n(100) << endl;//plus 二元仿…

油猴脚本(JavaScript)-练手-简单的随机音乐播放器

浅浅的写个简单的随机音乐播放脚本(可移动)&#xff0c;注释很详细&#xff0c;直接上源码 效果&#xff1a; // UserScript // name 播放音乐脚本 // namespace 代码对我眨眼睛 // version 1.2 // description 在API上请求音乐链接并随机自动连续播放音乐&…

解决向日葵远程控制linux命令行版本无法输入密码的问题

就是如下所示的框&#xff0c;官方说是按方向键↓选择用户名和密码的输入框输入&#xff0c;但是按方向键死活没用&#xff0c;研究了之后按tab键就行了。

WMS仓库管理系统库位分配规划

分配说明 每个商品必须至少有一个分拣位&#xff08;整箱或拆零均可&#xff09;如果只设了拆零分拣位&#xff0c;则入库不分配存储位&#xff0c;只上拆零分拣位&#xff0c;对于DPS分拣商品是一品固定一个货位&#xff0c;对于RF分拣商品是动态分配货位&#xff0c;一个商品…

Java集合大总结——List的简单使用

List简单介绍 鉴于Java中数组用来存储数据的局限性&#xff0c;我们通常使用java.util.List替代数组List集合类中元素有序、且可重复&#xff0c;集合中的每个元素都有其对应的顺序索引。JDK API中List接口的实现类常用的有&#xff1a;ArrayList、LinkedList和Vector。 List…

Linux:清空或删除大文件内容的5种方法

在Linux终端下处理文件时&#xff0c;有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件。那怎样才能达到这个目的呢&#xff1f;在这篇文章中&#xff0c;我们将介绍几种借助一些实用的命令来清空文件内容的方法。 注意&#xff1a;在我们进一步…

美国政府首席信息安全官详细介绍零信任战略竞赛

如果企业想吸取教训&#xff0c;为庞大的组织快速制定零信任战略&#xff0c;他们应该看看美国联邦政府在 2024 年之前让所有机构合规的努力。 这就是被任命为联邦办公室 CISO&#xff08;首席信息安全官&#xff09; 的克里斯德鲁沙 (Chris DeRusha) 的看法。 周三&#xf…

OpenAI变天:也许会有另一个OpenAI要崛起?

本周五&#xff0c;OpenAI发布重磅声明&#xff0c;创始人兼CEO山姆奥特曼辞任OpenAI&#xff0c;并退出董事会。总裁Greg Brockman&#xff08;格雷格布罗克曼&#xff09;将辞去董事会主席一职&#xff0c;但将继续在公司担任职务&#xff0c;向CEO汇报。 作为吃瓜群众&#…

[CUDA]去除Eigen库中的warning

一、问题提出 假如使用nvcc对cuda代码进行编译时&#xff0c;如果代码中使用了Eigen库&#xff08;头文件&#xff09;&#xff0c;编译时可能会显示很多warning information&#xff0c;如下图红框中所示&#xff1a; 这些warning信息虽然不会影响代码的实际运行&#xff0c;…

【WiFI问题自助】解决WiFi能连上但是没有网的问题

WiFi能连上但是没有网的问题 背景&#xff1a;wifi能连上&#xff0c;但是没有网 解决 遇事不决&#xff0c;先重启啊&#xff01;怎么重启&#xff1f;拔掉电源再插上&#xff01;拔掉网线再插上&#xff01; 直接ok了。 思考记录 今天WiFi又上不了网了&#xff0c;昨天报…

C语言三位数求解(ZZULIOJ1076:三位数求解)

题目描述 已知xyzyzzn&#xff0c;其中n是一个正整数&#xff0c;x、y、z都是数字&#xff08;0-9&#xff09;&#xff0c;编写一个程序求出x、y、z分别代表什么数字。如果无解&#xff0c;则输出“No Answer”注意&#xff1a;xyz和yzz表示一个三位数&#xff0c;而不是表示x…

高可用--限流熔断降级

熔断 熔断是应对微服务雪崩效应的一种链路保护机制。 场景 服务端出现问题 服务指标&#xff1a;响应时间、错误率、连续错误数等&#xff0c;超过阈值出发熔断。硬件指标&#xff1a;CPU、网络IO、内存 目的 服务端恢复需要时间、服务端需要休息避免全调用链路崩溃&…

memcacheredis构建缓存服务器

一、缓存服务器&#xff1a; 1、简介&#xff1a; ① 许多Web应用都将数据保存到RDBMS中&#xff0c;应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中&#xff0c;就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。 ● RDBMS&…

Windows 下提取EXE文件中的图标

可以使用两种工具&#xff1a; 1 使用 IconViewer 下载地址: https://www.botproductions.com/iconview/download.html 2 使用 QuickAny2Ico 下载地址&#xff1a; Quick Any2Ico - Create icons from any source 2.1 操作步骤 样例(采用 python-3.7.9.exe 作为例子提取为…

MyBatis 操作数据库(构造动态 SQL)

前言 动态 SQL 是 Mybatis 的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接。 <if> 标签 我们在填写用户信息的时候经常会看到如下的界面&#xff0c;用户信息中包含必填信息和非必填信息&#xff0c;非必填信息是填和不填都可以的&#xff0c;那这样的话…

UDS 14229-1定义的请求的响应行为

UDS服务响应规则 重要提示服务器一般响应行为包含子功能的请求响应行为物理寻址请求功能寻址请求 没有子功能参数的服务响应行为物理寻址客户端请求功能寻址客户端请求 伪代码示例 重要提示 服务应当支持物理寻址方式请求&#xff0c;部分服务也支持功能寻址方式请求。在功能寻…