智能计价器-第14届蓝桥杯省赛Scratch中级组真题第5题

news2025/1/11 20:58:37

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

智能计价器,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第5题,题目要求编程创造智能计价器作品。玩家在输入公里数后,AI计价器会根据不同情况做出相应的处理并提示。

先来看看题目的要求吧。

一.题目说明

背景信息:

A城市的出租车计价:3公里以内13元,基本单价每公里2.3元(超过3公里的部分,不满1公里按照1公里收费),燃油附加费每运次1元。

例如:

3.2公里的打车费用:13+2.3+1=16.3

7.1公里的打车费用:13+2.3*5+1=25.5

编程实现:

智能计价器。

具体要求:

1). 点击绿旗,角色、背景如图所示(舞台下方出现询问框);

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

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

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

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

例如:输入3.2.则打车费用为16.3元

6). 重复执行2)、3)、4)、5)步骤。

评判标准:

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

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

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

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

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

  • 20分,满足"具体要求"中的6)。

二.思路分析

本题只有一个角色,就是智能计价器,如图所示:

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

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

  • 公里数 ≤ 0,提示“数据有误,重新输入”;

  • 0 < 公里数 ≤ 3,提示“打车费:14元”;

  • 3 < 公里 ≤ 100,提示具体的打车费;

  • 公里数 >100,提示“建议更换,交通工具”;

这是一个典型的条件结构,可以使用单分支指令“如果...那么”,也可以使用双分支指令“如果...那么...否则”。

除了让角色说出相应的提示信息,这里还需要在屏幕上显示同样的信息,这就要求我们自己创建角色,并绘制好相应的造型。

由于打车费是变化的,因此这里的难点是如何显示这些变化的数字,比如16.3,你有什么好方法吗?

关于这个问题,超平老师是这么想的,在比赛时,可以直接使用变量,然后将变量设置为大字显示即可,这样比较节省时间,效果也还不错。

如果要完全按照要求编程,我们可以通过克隆来实现,只是需要花费不少时间,感觉有些不划算,你觉得呢?

接下来,我们进入具体的编程实现环节。

三.编程实现

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

  • 创建文字角色

  • 计算打车费

  • 显示数字效果

1. 创建文字角色

由于题目并没有提供提示文字,所以需要考生自行创建,通常有两种思路,一是直接在智能计价器中修改并添加造型,二是单独创建文字角色并绘制相应造型。

相对来说,采取后者更加灵活,也更符合软件编程中提倡的单一职责。因此,我们创建一个文字角色,并绘制对应的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的厉害吧

四.总结与思考

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

  • 创建角色及绘制造型;

  • Scratch问答指令;

  • 运算指令,包括逻辑运算、算式运算、比较运算和字符串运算;

  • 多分支条件的实现;

  • 数字显示的编程技巧;

  • 字符串的遍历操作;

这是中级组的第5题,题目有一定的难度,完成时间在20分钟左右。本作品的逻辑并不复杂,难点是如何显示数字效果。

针对题目的要求,在考试的时候,超平老师建议直接使用变量的大字显示模式,这么做可能会扣掉几分,但是可以节省很多时间,如果所有的题目都做完了,回头再优化,这也是一种考试策略。

本题中介绍的数字显示技巧几乎可以用于所有的游戏创作中,常规的做法就是直接使用变量显示,如果要用一些漂亮的数字图片来显示,就可以使用这种编程技巧,效果非常好。

最后还是留两个思考题:

1). 在上面的代码中,我使用的是单分支条件指令,如果使用双分支条件指令,代码该如何编写呢,你可以尝试一下,看看哪种写法更简单。

2). 由于每公里是2.3元,在计算的时候可能会出现多位小数,如何确保任何时候最多只保留两位小数呢,你知道该怎么实现吗?

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

需要素材和源码的,可以移步至“超平的编程课”gzh,或者私信本人。

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

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

相关文章

楼宇租赁管理系统-什么是楼宇租赁系统

楼宇租赁管理系统是一种综合管理平台&#xff0c;它为不同规模楼宇的租赁管理提供了全面的解决方案。楼宇租赁管理系统的主要功能包括租赁管理、财务管理、维修管理、报告管理以及客户服务管理等。让我们逐一介绍每一个功能点。 一、租赁管理 楼宇租赁管理系统通过集成租户信息…

路径规划算法:基于群居蜘蛛优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于群居蜘蛛优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于群居蜘蛛优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

博学谷学习记录】超强总结,用心分享 | 架构师 MySQL调优MVCC学习总结

文章目录 1 概述2 快照读与当前读当前读快照读隔离级别&#xff1a;undo log版本链&#xff1a; 3 Read View3.1 什么是Read View?3.2 实现原理3.3 Read View规则&#xff08;可见性算法&#xff09; 4 MVCC整体流程4.1 可重复读是如何工作的&#xff1f;4.2 读提交是如何工作…

ChatGPT国内镜像,以及如何使用ChatGPT帮你制作PPT

一&#xff1a;前言 ChatGPT&#xff1a;智能AI助你畅聊天地 在现代人日益忙碌的生活中&#xff0c;难免需要一些轻松愉快的聊天来放松身心。而现在&#xff0c;有了 ChatGPT&#xff0c;轻松愉快的聊天变得更加智能、有趣且不受时间、地点限制&#xff01; 什么是 ChatGPT&…

Python中模块的使用方法4

1 模块、包和库的区别 Python中&#xff0c;模块的英文是“module”&#xff0c;是一个以py为后缀名的文件&#xff1b;包的英文是“package”&#xff0c;是一个包含了多个模块的目录&#xff1b;库的英文是“library”&#xff0c;包含了具有相关功能的包和模块。 2 模块的…

ChatGPT 在自动化测试领域的应用,我们真的要被代替了吗?

目录 前言 一、ChatGPT 简介 二、ChatGPT 的应用场景 三、ChatGPT 的优势 四、ChatGPT 的局限性 五、ChatGPT 在自动化测试领域的拓展应用 六、ChatGPT真的可以代替软件测试人员吗 七、结语 前言 人工智能技术在近年来得到了快速发展&#xff0c;不少领域都开始尝试融合…

入理解深度学习——正则化(Regularization):多任务学习

分类目录&#xff1a;《深入理解深度学习》总目录 多任务学习是通过合并几个任务中的样例&#xff08;可以视为对参数施加的软约束&#xff09;来提高泛化的一种方式。正如额外的训练样本能够将模型参数推向具有更好泛化能力的值一样&#xff0c;当模型的一部分被多个额外的任务…

redis主从复制策略的原理:主从节点间如何同步数据?

redis的主从复制原理经历了多个版本的更新。 redis2.8之前的SYNC方案 命令&#xff1a; SYNChttps://www.yuque.com/snailclimb/mf2z3k/ks9olb19hc9wse5k#5935f46a 存在的问题&#xff1a; slave加载RDB的过程中不能对外提供读服务slave和master断开连接后&#xff0c;sla…

HCIA-VLAN间通信之路由器

目录 路由信息获取方式&#xff1a; 最佳路由条目选择&#xff08;根据路由的优先级和开销选择&#xff09;&#xff1a; VLAN间通信 方案1&#xff0c;使用路由器的物理接口来实现不同vlan间的通信 方案2&#xff1a;使用路由器的子接口来实现 路由&#xff1a;指导报文转…

【Vue】二:Vue核心处理---计算属性 监视属性

文章目录 1.计算属性示例2. 监听属性3.补充 1.计算属性示例 实际上计算属性与methods中定义方法基本上没有什么区别&#xff0c;只是计算属性基于响应式依赖缓存&#xff0c;只要数据没有发生改变&#xff0c;计算属性从缓存中取值&#xff0c;只有当数据发送改变&#xff0c;才…

Linux 用户与组群管理

1 用户账户与群组概念 Linux操作系统是多用户多任务的操作系统&#xff0c;允许多个用户同时登录到系统&#xff0c;使 用系统资源。用户账户是用户的身份标识。用户通过用户账户可以登录到系统&#xff0c; 并且访问已经被授权的资源。系统依据账户来区分属于每个用户的文件…

Flutter 笔记 | Flutter 动画

Flutter中的动画抽象 为了方便开发者创建动画&#xff0c;不同的UI系统对动画都进行了一些抽象&#xff0c; Flutter中也对动画进行了抽象&#xff0c;主要涉及 Animation、Curve、Controller、Tween这四个角色&#xff0c;它们一起配合来完成一个完整动画&#xff0c;下面我们…

整数在内存中原来是这样存储的,看完表示头好痒,感觉要长脑子了!

本篇文章来介绍一下整形在内存中的存储&#xff0c;内容丰富&#xff0c;干货慢慢。 目录 1.整形家族 2.整形在内存中的存储 3.大端小端存储 4.练习 1.整形家族 在开始之前&#xff0c;我们先来简单回顾一下整形家族&#xff1a; char unsigned char signed char short u…

chatgpt赋能python:Python补0——让你的数字更规整

Python 补0——让你的数字更规整 在编写代码的过程中&#xff0c;我们经常需要将数字格式化&#xff0c;以便更好地呈现给用户。例如&#xff0c;一个价格可能需要显示为“$100.00”而不是“$100”或“$100.0”。这时候&#xff0c;我们就需要使用 Python 的补0功能。本文将为…

【015】C++的函数详解

C的函数详解 引言一、函数介绍1.1、函数的概述1.2、函数的分类 二、函数定义、声明、调用等2.1、定义函数2.2、函数声明2.3、调用函数2.4、默认参数2.5、函数重载2.6、函数的调用过程 三、函数的传参3.1、普通变量作为函数的参数3.2、数组作为函数的参数 总结 引言 &#x1f4a…

浅浅入门SpringCloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发&#xff0c;如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等&#xff0c;都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有…

如何在Linux机器中测试存储/磁盘I/O性能?

在Linux环境中&#xff0c;了解存储/磁盘I/O性能对于评估系统性能和优化存储子系统非常重要。通过测试存储/磁盘I/O性能&#xff0c;我们可以确定磁盘的读写速度、延迟和吞吐量等指标。本文将介绍几种常用的方法来测试Linux机器中的存储/磁盘I/O性能。 方法一&#xff1a;使用d…

测试开发工程师必问面试题

1.对测试开发的理解 测试开发首先离不开测试&#xff0c;而软件测试是指&#xff0c;在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行评估的过程。 而且&#xff0c;现在不仅仅是通过手工测试来发…

【C++】容器篇(四)—— queue的基本介绍以及模拟实现

前言&#xff1a; 在上期博文中我带大家对stack进行深入的学习&#xff0c;本期我将带领学习的是关于 queue的基本知识&#xff0c;并且还将给大家介绍并实现 priority_queue。接下来&#xff0c;让我们正式本期的内容。 目录 &#xff08;一&#xff09;queue的基本介绍 &…

83.响应式设计原则

什么是响应式设计&#xff1f; ● 使网页根据任何可能的屏幕尺寸&#xff08;窗口或视口尺寸&#xff09;调整其布局和视觉风格的设计技术。 ● 在实践中&#xff0c;这意味着响应式设计使网站可以在所有设备上使用&#xff0c;如台式电脑、平板电脑和手机。 ● 这是一套做法&…