数据计算-第15届蓝桥杯第一次STEMA测评Scratch真题精选

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

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

  • 行走的螃蟹

  • 飞驰的高铁

  • 旋转的正方体

  • 弹跳小球

  • 比较身高

  • 数据计算

数据计算,本题是2023年8月20日举行的第15届蓝桥杯STEMA测评Scratch编程中级组编程第6题,题目要求编程实现数据计算。游戏开始后,输入两个整数,机器人先说出两数的和,然后将整数转成二进制并输出。

先来看看题目的要求吧。

一.题目说明

编程实现:

数据计算。

十进制整数转换成二进制整数:采用“除2取余,逆序排列”法可以将十进制数数转换为二进制整数,例如:140

计算步骤:

140/2 = 70 ......0

70/2  = 35 .....0

35/2  = 17 ......1

17/2   = 8 ......1

8/2   = 4 .......0

4/2   = 2 .......0

2/2   = 1 ........0

1/2   = 0 ........1

余数逆序排序后,转换为二进制的结果为 10001100

具体要求:

1). 运行程序,角色、背景如图所示;

图片

2). 等待1秒,机器人说:“输入2个数据”2秒;

图片

3). 舞台下方出现询问框,机器人说:"输入第1个数据”(数据为整数,且1 ≤ 数据 ≤ 100);

例如:输入80

图片

4). 完成输入,舞台下方出现询问框,机器人说:"输入第2个数据”(数据为整数,且1 ≤ 数据 ≤ 100);

例如:输入60

图片

5). 完成输入,机器人说出两个数据的和;

图片

6). 等待1秒,机器人说出两个数据和的二进制数。

图片

评判标准:

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

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

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

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

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

  • 65分:满足"具体要求"中的6)。

二.思路分析

本题只有1个角色,就是机器人,如图所示:

图片

本题考查的知识点包括列表应用和数学运算。

根据题目的描述,我们使用计算思维中的拆分思想,可以将作品的功能分为两个模块:

  • 获取输入数据并求和;

  • 将十进制数字转成二进制;

其中,模块1比较简单,只需要使用问答指令,将玩家输入的两个数字相加,然后说出即可。

真正的难点是模块2,对于很多同学来说,二进制是一个陌生的概念。当然,出题老师充分考虑到这一点,所以给出了进制转换的原理,并给出了一个案例。这就要求考生要读懂这个案例,并迅速找到实现思路。

转换的原理就8个字,“除2取余,逆序排列”,这就意味着需要使用余数指令,如图:

图片

同时,每次除以2之后,我们都需要把商保存起来,这里的商必须是整数部分,所以需要结合除法指令和向下取整指令,如图:

图片

在这个过程中,我们面临如下两个小问题:

1). 除2取余运算要执行多少次?

2). 怎么保存每次运算的商和余数?

很显然,不同的数字,计算的次数是不一样的,但是它们都有一个共同的特点,就是当商等于0时,就不需要再进行计算了,这就是循环结束的条件。

每进行一次除2取余运算,下一次就需要对新的商进行运算,是不是要把每一次的商都用一个变量保存起来呢?确实需要保存,但是我们不需要新的变量,直接使用一个变量,每次更新一下即可,这其实就是编程中经典的迭代思想。

对于每次的余数,则可以使用两种方式来处理,一是使用列表,将每次计算的余数保存到列表,计算完成,依次将列表中的数字取出拼接成一个数字串即可;二是直接使用字符串连接操作,将每次得到的余数进行拼接。在本作品中,超平老师将使用方式1来保存余数。

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

三.编程实现

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

  • 准备工作

  • 获取数据输入并求和

  • 将十进制转成二进制

1. 准备工作

这里的准备工作比较简单,主要是创建好需要用到的变量和列表,如图:

图片

其中,变量“i”是计数器,在循环遍历列表时需要用到。

2. 获取数据并求和

这一步比较简单,其代码如下:

图片

为方便理解,这里使用了两个变量“数字1”和“数字2”,实际上,还可以省去这两个变量,每次将回答进行累加即可,如图:

图片

不过,需要注意,使用方式1时,变量“”可以不用初始化,而使用方式2时,必须要将变量“”初始化为0。

方式2是一个非常好用的编程技巧,如果要输入多个数据的时候,它的优势就体现出来了,你说是吧。

3. 将十进制转成二进制

为了简化代码,我们将转换的过程定义成一个自制积木,自制积木的代码如下:

图片

简单说明3点:

1). 列表一定要清空,确保没有垃圾数据;

2). 变量“二进制”的初始值一定要设置为空;

3). 在向列表中添加余数的时候,每次将余数插入到列表的最前面,这就相当于逆序保存了余数,在接下来循环遍历列表的时候,只需要按照顺序拼接列表项即可。

有了自制积木,在绿旗代码块的最下面,添加如下3行代码即可:

图片

至此,整个作品就创作好了,一个简易的进制转换计算器就搞定了。

四.总结与思考

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

  • Scratch问答指令;

  • 变量的使用;

  • 列表的基本操作;

  • 运算符,包括取余、除法、向下取整等;

  • 字符串连接运算;

这是中级组的第6题,也是最后一题,难度较大,完成时间20分钟左右,难点是如何实现进制的转换。

二进制,是计算机技术中广泛采用的一种数制,由德国哲学家莱布尼茨发明,相传是受到了中国易经的启发。

图片

二进制数据是用0和1两个数码来表示的数,它的基数为2,进位规则是“逢二进一”,数字计算机只能识别和处理由0和1符号串组成的代码。

计算机中一切都可以用二进制来表示,不管是图片、指令、文件还是视频在计算机内部都是使用二进制来存储的。

对于进制之间的互相转换,是每一个学习编程的孩子都必须熟练掌握的,相信通过本作品的学习,你已经掌握了十进制转换二级制的原理和技巧了。

超平老师给你留一个思考题,如果要将十进制转换成八进制、十六进制,该如何实现呢,能否在本作品的基础上,增加这两个小功能,创作一个进制转换计算器呢。

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解Avast Driver Updater:电脑驱动更新工具的利器还是多余的软件?

亲爱的读者朋友们,你是不是经常为电脑的驱动问题而烦恼?如果是的话,你可能会对这款软件——Avast Driver Updater 电脑驱动更新工具感兴趣。但在你决定尝试之前,不妨先和我一起深入探讨一下它的优点、缺点以及它适用的使用场景。 …

pytorch第一天(tensor数据和csv数据的预处理)lm老师版

tensor数据: import torch import numpyx torch.arange(12) print(x) print(x.shape) print(x.numel())X x.reshape(3, 4) print(X)zeros torch.zeros((2, 3, 4)) print(zeros)ones torch.ones((2,3,4)) print(ones)randon torch.randn(3,4) print(randon)a …

使用U3D、pico开发VR(二)——添加手柄摇杆控制移动

一、将unity 与visual studio 相关联 1.Edit->Preference->External tool 选择相应的版本 二、手柄遥控人物转向和人物移动 1.添加Locomotion System组件 选择XR Origin; 2.添加Continuous Move Provider(Action-based)组件 1>…

10.1 File类

前言: java.io包中的File类是唯一一个可以代表磁盘文件的对象,它定义了一些用于操作文件的方法。通过调用File类提供的各种方法,可以创建、删除或者重命名文件,判断硬盘上某个文件是否存在,查询文件最后修改时间&…

12、Kubernetes中KubeProxy实现之iptables和ipvs

目录 一、概述 二、iptables 代理模式 三、iptables案例分析 四、ipvs案例分析 一、概述 iptables和ipvs其实都是依赖的一个共同的Linux内核模块:Netfilter。Netfilter是Linux 2.4.x引入的一个子系统,它作为一个通用的、抽象的框架,提供…

Docker从认识到实践再到底层原理(九)|Docker Compose 容器编排

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

Mysql生产随笔

目录 1. Mysql批量Kill删除processlist 1.1查看进程、拼接、导出、执行 1.2常见错误解决方案 2.关于时区 3.内存占用优化 记录一下生产过程中的一些场景和命令使用方法,不定期进行更新 1. Mysql批量Kill删除processlist 1.1查看进程、拼接、导出、执行 sho…

Java后端接口编写流程

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Java后端接口编写流程 Java后端接口编写流程,更具业务逻辑编写Java后端接口,提供给前端访问 实现逻辑流程 POJO:实体类编写 Data B…

黑豹程序员-架构师学习路线图-百科:Java

1、简介 Java是Sun公司推出的一门面向对象的编程语言,它是一种通过解释方式来执行的语言。 它出身名门,简化C而来,但并未照搬。继承了C语言各种优点,却摒弃了C里的多继承、指针等概念,因此Java语言具有功能强大和简单…

CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明

国庆假期,闲着没事,在家研究技术~ 上一篇,我们介绍了动画剪辑、动画组件以及基本的使用流程,感兴趣的朋友可以前往阅读: CocosCreator 动画系统-动画剪辑和动画组件介绍。 今天,主要介绍动画编辑器相关功能…

【进阶C语言】动态内存分配

本章大致内容介绍: 1.malloc函数和free函数 2.calloc函数 3.realloc函数 4.常见错误案例 5.笔试题详解 6.柔性数组 一、malloc和free 1.malloc函数 (1)函数原型 函数参数:根据用户的需求需要开辟多大的字节空间&#xff…

C++实现集群聊天服务器

C实现集群聊天服务器 JSON Json是一种轻量级的数据交换模式(也叫做数据序列化方式)。Json采用完全独立于编程语言的文本格式来存储和表示数据。见解和清晰的层次结构使得Json称为理想的数据交换语言。易于阅读和编写。同时也易于支持机器解析和生成&am…

Qt::图层框架-图片图层-序列图层-QGraphicsPixmapItem

二维矢量动画智能制作软件开发合集 链接:软件开发技术分享及记录合集 个人开发二维矢量动画智能制作软件界面如下: 目录 一、图片序列图层原理 二、图片序列图层代码实现 三、图片序列图层软件测试视频 结束语 一、图片序列图层原理 本软件的11种…

【Java 进阶篇】深入理解 JDBC:Java 数据库连接详解

数据库是现代应用程序的核心组成部分之一。无论是 Web 应用、移动应用还是桌面应用,几乎都需要与数据库交互以存储和检索数据。Java 提供了一种强大的方式来实现与数据库的交互,即 JDBC(Java 数据库连接)。本文将深入探讨 JDBC 的…

vue 实现弹出菜单,解决鼠标点击其他区域的检测问题

弹出菜单应该具有的功能,当鼠标点击其他区域时,则关闭该菜单。 问题来了,怎么检测鼠标点击了其他区域而不是当前菜单? 百度“JS检测区域外的点击事件”,会发现有很多方法,有递归检测父元素,有遍…

装饰器模式详解和实现(设计模式 二)

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将对象添加到现有对象中,以提供额外的功能,同时又不影响其他对象。 实现示例 1.定义一个接口或抽象类,表示被装饰对象的公共接口 //抽…

mathtype试用期后如何继续使用?

MathType7已经正式发布,作为一款强大的数学公式编辑器可以将编辑好的公式保存成多种图片格式或透明图片模式,可以很方便的添加或移除符号、表达式等模板(只需要简单地用鼠标拖进拖出即可),也可以很方便地修改模板,为理…

NLP的不同研究领域和最新发展的概述

一、介绍 作为理解、生成和处理自然语言文本的有效方法,自然语言处理 (NLP) 的研究近年来迅速普及并被广泛采用。鉴于NLP的快速发展,获得该领域的概述和维护它是困难的。这篇博文旨在提供NLP不同研究领域的结构化概述,…

Python集成开发环境(IDE):WingPro for Mac

WingPro for Mac是一款Python集成开发环境(IDE)软件,它提供了一系列强大的工具和功能,帮助Python开发人员提高开发效率和质量。 WingPro for Mac拥有直观的用户界面和强大的调试器,可以帮助用户快速定位问题和修复错误…