数字游戏ABCDE=DCBA-第11届蓝桥杯Scratch选拔赛真题精选

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 53 浏览




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

第11届蓝桥杯青少年组第4次选拔赛于2019年12月15日举行,形式为线下考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

数字游戏ABCD*E=DCBA,本题是2019年12月15日举行的第11届蓝桥杯Scratch地区选拔赛真题编程第5题,题目要求编程实现数字游戏,找出满足ABCD*E=DCBA等式的数字组合。

先来看看题目的要求吧。



图片

题目说明

图片

程实现:

问题1:已知A、B、C、D、E分别代表0-9之间的数字。由A、B、C、D组成四位数ABCD和DCBA,还要满足算式:ABCD * E=DCBA(提示:在程序设计语言中“*”代表乘号)。例如1991*1=1991,则在列表1中输出19911。

请在列表1中按照从小到大的顺序输出所有可能的数字组合。

样例输出:

00000

00001

00002

00003

......

问题2:在问题1的基础上,现在要求数字A、B、C、D、E均不相同,在列表2中输出这样的数字组合。

具体要求:

步骤1:如下图,列表放在博士汪的左右两侧,绿旗被点击,清空所有列表,博士汪面向左,说“我要开始计算了!”(2秒);

图片

步骤2:表1开始自动运算。自动运算结束后列表1中显示所有情况,博士要面向列表1的方向(向左即可)说出列表1中一共有多少种情况(2秒);

图片

步骤3:列表2开始自动运算,运算结束后列表2中显示所有情况,博士汪面向列表2的方向(向右即可)说出列表2中一共有多少种情况(2秒),程序结束。

图片

将程序保存在桌面,命名为“5.sb2”。

评判标准:

  • 20分:实现步骤1;

  • 40分:在20分基础上,实现步骤2;

  • 40分:在60分基础上,实现步骤3


  • 图片

    思路分析

    图片

    本题只有1个小狗角色,如图所示:

    图片

    又是一道涉及到枚举算法的作品,所谓枚举算法就是将所有问题的可能性一一列举出来,并判断是否符合给定条件。
    对于枚举算法,通常需要结合循环来实现,当有多个变量的时候,则需要使用嵌套循环,这里有A、B、C、D、E五个变量,因此循环的层数有5层。
    A、B、C、D、E五个变量的取值范围都是0到9,然后将它们组成一个五位数,如果满足ABCD * E = DCBA,则将其加入到列表1中。这里涉及到将多个一位数组合得到一个多位数的编程技巧,在Scratch中,有两种方法,一是直接使用字符串连接运算,二是使用数学运算。
    列表2中的数据,则是在列表1的数据中进行二次筛选,要求数字A、B、C、D、E均不相同,我们可以将其拆分成4个条件:
    • A和B、C、D、E都不相等
    • B和C、D、E都不相等
    • C和D、E都不相等
    • D和E不相等
    将同时满足这4个条件的数字组合加入到列表2中即可。
    由于代码比较长,我们可以使用自制积木来简化代码结构

    图片

    程序实现

    图片

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

    • 准备工作

    • 使用枚举循环判断

    • 说出结果

    1. 准备工作
    先创建好6个变量,如图所示:

    图片

    创建好两个列表,如下:

    图片

    当绿旗被点击时,先清空列表,并设置好小狗的方向,然后说”我要开始计算了!“,对应的代码如下:

    图片

    2. 使用枚举循环判断

    接下来, 就需要使用枚举的算法思想,逐个进行判断,根据思路分析,继续编写代码如下:

    图片

    代码不难,只是嵌套的层数比较多,要细心一点,避免写错,在最内层的循环中,有一个”判断条件“的自制积木,它的作用就是对组合出来的数字进行判断,其定义如下:

    图片

    其中,第一个如果指令中的条件就是ABCD * E = DCBA,对于左边的A、B、C来说,分别表示千位、百位、十位,所以需要分别乘以1000、100、10,然后再进行相加,右边的也是如此。

    接下来的4个如果指令用来判断A、B、C、D、E各不相同,刚好对应于4思路分析中的4个条件。

    3. 说出结果

    在循环结束之后,列表1和列表2分别有了各自的数据,按照题目要求直接说出它们的项目数即可,这部分代码如下:

    图片

    代码比较简单,注意在说完第一句话后,需要将小狗的方向设置为90度,即面向右边



    图片

    总结与思考

    图片

    本题难度系数为7,积木块数量120个左右 ,涉及到的知识点主要包括:
    • 嵌套循环;

    • 条件嵌套;

    • 枚举的算法思想及实现方式;

    • 变量和列表的灵活运用;

    • 运算符的运用,包括算术运算、字符串运算和逻辑运算;
    • 自制积木的使用。

    本题难度较大,重点是理解枚举的算法思想及实现方式,所有的枚举算法都包含循环结构和条件结构,循环的层数取决于变量的个数,变量越多,嵌套的层数也就越深,在编写程序的时候一定要细心,避免出错。

图片


添加 家长论坛微信 



发布于 2024-04-26 14:04

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2