智能计价器-第14届蓝桥杯省赛Scratch中级组真题第5题
2023-05-29 18:18:59
[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第140讲。
智能计价器,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第5题,题目要求编程创造智能计价器作品。玩家在输入公里数后,AI计价器会根据不同情况做出相应的处理并提示。
先来看看题目的要求吧。

2). 如果输入的公里数小于等于0,智能计价器说:"数据有误,重新输入〞并在屏幕上显示2秒后,回到初始状态;


3). 如果输入的公里数大于0小于等于3,智能计价器说:"打车费:14元”并在屏幕上显示2秒后,回到初始状态;


4). 如果输入的公里数大于100,智能计价器说:"建议更换,交通工具"并在屏幕上显示2秒后,回到初始状态;


5). 如果输入的公里数大于0小于等于100,智能计价器说出打车费用并在屏幕上显示2秒后,回到初始状态;
例如:输入3.2.则打车费用为16.3元


6). 重复执行2)、3)、4)、5)步骤。
评判标准:

角色也只有一个造型,如图:

题目描述的是日常生活中乘坐出租车的场景,根据输入的公里数来计算费用,一共分为如下4种情况:

2. 计算打车费
智能计价器根据玩家输入的数字进行相应的处理,为了方便,我们分步讲解。
首先,先创建好两个变量“费用”和“造型”,分别表示打车费和文字角色要显示的造型编号。

绿旗点击时,进行初始化设置,在计价器角色中编写代码如下:

当公里数 <= 0时,提示“数据有误,重新输入”,编写对应代码如下:

当0 < 公里数 <= 3时,提示“打车费:14元”,其代码如下:

当 3 < 公里数 <= 100时,根据计价规则,计算出相应的费用,其代码如下:

在计算费用的时候,需要考虑几个细节:
1). 3公里以内的费用是14元,包括起步价13元和燃油附加费1元;
2). 超过3公里的每公里2.3元,所以需要减去3;
3). 不满1公里的按1公里计算,所以需要用"向上取整"指令,将小数转成整数;
当公里数 > 100时,提示“建议更换,交通工具”,其代码如下:

将上述代码组合起来,就可以得到完整的代码,如下:

这里增加了重复执行指令,这样就可以重复询问了。
对应的,文字角色需要根据变量"造型"的值,切换对应的造型,切换到文字角色,编写代码如下:

代码非常的简单,注意调整好角色的造型顺序,确保和变量值一一对应。
3. 显示数字效果
关于打车费的显示效果,在考试的时候,可以考虑直接将变量拖到对应位置,如图:

对应的,只需要在代码中增加如下指令即可:

当然了,这种处理方式和题目要求还是有所差异的,接下来,超平老师就详细介绍一下完美的解决方案。
其思路是这样的,创建一个数字角色,包含11个造型,分别是0、1、2、3、4、5、6、7、8、9和小数点,然后根据费用变量的值克隆每一个字符,并依次显示出来。
首先,创建角色并绘制造型,如图所示:

需要注意都是,每个造型的名字和字符要一一对应,比如0的名字就是“0”,小数点的名字就是“.”。
切换到数字角色,绿旗点击时,将角色隐藏起来,代码如下:

当需要显示费用的时候,发送一个广播消息给数字角色,在智能计价器中增加代码如下:

对应的,数字角色在接收到广播消息后,就可以根据变量“费用”的值,依次取出每一个字符,进行克隆显示即可,在数字角色中编写代码如下:

这里使用了字符串运算指令,结合循环和变量,将“费用”中的字符依次取出,然后切换到对应造型,然后克隆数字。
重点强调两点:
1). 由于小数点比较小,所以如果是小数点,只向右移动了5步,数字则统一移动10步;
2). 在Scratch中,切换造型指令可以使用变量,当使用变量的时候,优先考虑的是造型名称,其次才是造型编号,这也是前面要求造型名称和字符要一一对应的原因;
对应的,每个克隆体要显示2秒,然后删除,继续编写代码如下:

之所以要等待2秒后删除,是因为提示信息显示的时间是2秒。
至此,一个完美的智能计价器作品就创作完成了,你可以体验一下AI的厉害吧
一.题目说明
背景信息: A城市的出租车计价:3公里以内13元,基本单价每公里2.3元(超过3公里的部分,不满1公里按照1公里收费),燃油附加费每运次1元。例如:3.2公里的打车费用:13+2.3+1=16.37.1公里的打车费用:13+2.3*5+1=25.5 编程实现: 智能计价器。 具体要求: 1). 点击绿旗,角色、背景如图所示(舞台下方出现询问框);








- 5分:满足"具体要求"中的1);
- 10分:满足"具体要求"中的2);
- 10分:满足"具体要求"中的3);
- 10分:满足"具体要求"中的4);
- 25分:满足"具体要求"中的5);
- 20分,满足"具体要求"中的6)。
二.效果预览
在编程之前,先来看一下作品的完整效果吧: [video width="640" height="480" mp4="https://cdn.scratch5.com/wp-content/uploads/2023/05/9cac82fc-fd4f-11ed-b3a2-62f967a21e2c-v8_f2_t1_uXRXWQ5i.mp4"][/video]三.思路分析
本题只有一个角色,就是智能计价器,如图所示:

- 公里数 ≤ 0,提示“数据有误,重新输入”;
- 0 < 公里数 ≤ 3,提示“打车费:14元”;
- 3 < 公里 ≤ 100,提示具体的打车费;
- 公里数 >100,提示“建议更换,交通工具”;
四.编程实现
根据题目描述和思路分析,我们可以分3步来编写程序:- 创建文字角色
- 计算打车费
- 显示数字效果
















五.总结与思考
本题是中级组编程部分第5题,分数为80分,积木块数量80个左右,涉及到的知识点主要包括:- 创建角色及绘制造型;
- Scratch问答指令;
- 运算指令,包括逻辑运算、算式运算、比较运算和字符串运算;
- 多分支条件的实现;
- 数字显示的编程技巧;
- 字符串的遍历操作;
微信扫码关注
抖音扫码关注