第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间

(28) 2024-09-27 10:01:01

本文转自于”超平的编程课“公众号,更多教程,可移步至公众号。

[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第5讲。

第12届蓝桥杯青少年组国赛于2021年5月29日举行,本次赛事仍然采取了在线考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。

存钱罐,本题是第12届蓝桥杯Scratch国赛真题编程部分的第3题,初级组和中级组都有此题。题目要求考生使用Scratch编程模拟往存钱罐中存钱以及从存钱罐中取钱的过程和效果,本题难度系数为3,分值为60分。

先来看看题目的详细说明吧。

一.题目说明

编程实现:存钱罐

具体要求

1). 点击绿旗,出现对应的角色与背景(初始余额为1000);

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第1张

2). 点击存钱,询问存多少钱并出现对话框;

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第2张

3). 输入存钱数,余额显示存入后的总钱数;

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第3张

4). 点击取钱,询问取多少钱并出现对话框;

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第4张

5). 在对话框内容输入取钱数额,余额显示取出后的总钱数;

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第5张

6). 如果取出的钱数大于余额,则显示余额不足1秒后显示此时余额;

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第6张

评判标准

  • 5分:满足要求1;

  • 10分:满足要求2

  • 10分:满足要求3;

  • 10分:满足要求4;

  • 10分:满足要求5;

  • 15分:满足要求6。

二.思路分析

这是一道简单的编程题,涉及到角色也只有两个,分别是“存钱”按钮和“取钱”按钮,如图所示:

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第7张

本题没有复杂的逻辑,无非就是进行简单的加减运算,唯一要注意的就是在取钱的时候,要考虑两种情况,即余额充足和余额不足两种情形。

三.编程实现

接下来,我们就分两步来编写程序:

  • 存钱过程

  • 取钱过程

1.存钱过程

根据题目描述,初始余额为1000,在存钱和取钱的过程中,余额会发生变化,因此,需要创建一个变量,来表示余额,并设置初始值为1000,在“存钱”角色中编写代码如下:

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第8张

代码非常的简单,需要注意的是,除了变量初始化之外,还有设置方向和位置的指令,这是一个非常好的习惯,确保任何时候只要点击绿旗,“存钱”角色就可以回到正确位置。

这里的“余额”变量是一个全局变量,以确保在两个角色中都可以使用,同时要注意,变量有三种显示效果:

  • 正常显示

  • 大字显示

  • 滑杆

根据前面的图片展示效果,在这里我们需要将“余额”变量设置为第二种,即大字显示效果,并拖放到正确的位置。

当点击“存钱”按钮时,会询问“存多少钱?”,并根据用户输入数额改变余额,这需要使用Scratch侦测模块中的问答指令,代码也非常简单,如图:

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第9张

注意:Scratch中的“+”指令只对数字起作用,如果输入的是非数字内容,都会被当作0来处理。所以,如果输入的不是纯数字串,那么余额将保持不变。

2.取钱过程

接下来是取钱过程,当点击“取钱”按钮时,会询问“取多少钱?”并根据输入金额作相应处理。

这里有两种情形,一是余额不足,一是余额充足,所以,我们需要使用“如果...那么...否则”双分支条件指令。

如果余额充足,直接相减即可。如果余额不足,则需要先将变量“余额”修改为“余额不足”,1秒后再显示原来的余额,因此我们需要借助一个临时变量“临时余额”来保存余额。

切换到“取钱”角色,编写代码如下:

第十届蓝桥杯比赛题目_第十一届蓝桥杯比赛时间 (https://mushiming.com/)  第10张

如此一来,取钱过程也就顺利完成了。

四.总结与思考

本题相对比较简单,对于大部分考生来说是送分题,考察的知识点包括:

  • scratch问答交互,包括“询问并等待”和“回答”两个指令;

  • 变量的使用,这里主要是指全局变量;

  • 减法和减法运算符

  • 如果...那么...否则”双分支条件的使用;

另外,需要说明的,本题中要求输入的是数字,但用户可能会输入非数字,对于用户的非法输入,在实际编写程序中是需要进行处理的,以避免出现bug。只是题目中没有要求,由于考试时间优先,可以先不予考虑。不过你可以思考和尝试一下,要确保用户输入正确的内容,该怎么做呢?

需要素材和源码的,可以联系作者,或者移步至”超平的编程课“公众号。

THE END

发表回复