计算游泳时间-第10届蓝桥杯Scratch省赛真题第3题

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

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

计算游泳时间,本题是第10届蓝桥杯Scratch省赛真题编程第3题,初级组和中级组都有此题,题目要求根据玩家输入的开始时间和结束时间,编程计算出游泳的时长。

先来看看题目的要求吧。

一.题目说明

编程实现:

你要参加运动会,每天都刻苦练习游泳,并给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算)。你只要说出自己从 a 时 b 分一直游泳到当天的 c 时 d 分,你的小鱼教练就能计算出你这天一共游了多少时间。你的小鱼教练是怎么算出来的呢?

具体要求:

1、程序开始运行时,小鱼教练询问游泳开始时间(分别询问 24 小时制的时和分)和结束时间(分别询问24 小时制的时和分)。

2、小鱼教练计算并说出游了多长时间。但如果你输入的结束时间早于开始时间,小鱼教练就会说“输入错误!结束时间早于开始时间”,程序结束。

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

评判标准:

  • 10 分:程序运行后,能够询问开始时间和结束时间(时和分);

  • 40 分:在 10 分的基础上,能够正确计算出游泳的时间;

    测试两种情况:

    1) 结束时间的分大于开始时间的分

    2) 结束时间的分小于开始时间的分

  • 50 分:在 40 分的基础上,如果输入结束时间早于开始时间,能够提示“输入错误,结束时间早于开始时间”,需要多次以不同情况输入来验证。

二.思路分析

本题只有一个角色,就是小鱼,如图:

严格来说,这是一道小学数学题,对于给定的起始时间和结束时间,计算二者的时间差。

起始时间和结束时间是玩家输入的,这可以通过Scratch中的问答指令来实现。

本题的重点是计算时间差,这里的时间有小时和分钟,单位不同不能直接相减,所以需要进行单位换算,统一单位,然后进行计算。

具体的做法,就是将统一将时间转换为分钟数,如果结束时间大于起始时间,就进行相减,然后再将结果转换成小时和分钟。

三.编程实现

根据前面的思路分析,我们可以分2步来编写程序:

  • 获取起始时间和结束时间

  • 计算游泳时间

1. 获取起始时间和结束时间

起始时间和结束时间都是由小时和分钟组成的,为了方便,先创建4个变量,分别命名为”开始小时“、”开始分钟“、”结束小时“和”结束分钟“,然后使用问答指令,获取玩家输入的时间,代码如下:

2. 计算游泳时间

接下来就需要换算时间,统一单位,这是本题的核心算法。为了方便,可以创建一个变量”总分钟数“,用于保存开始时间和结束时间相差的总分钟数,代码也比较简单,就是将小时乘以60,再加上分钟数,然后相减,代码如下:

对于计算得到的总分钟数,可能会出现两种情况,一是小于0,这说明你输入的结束时间早于开始时间,小鱼教练要给出输入错误的提示;二是大于0,此时则需要将总分钟数再转换成小时和分钟,然后组成一句完整的话,反馈给玩家,这部分的代码如下:

为了方便,这里创建了两个变量,分别是”小时“和”分钟“,如果总分钟数 > 0,就说出小时和分钟,不过需要使用连接运算符,连接成一句完整的话。

将总分钟数转换成小时和分钟,这里用到了数学中的余数知识,整数部分就是小时数,而小数部分则是分钟数。

将上面的3段代码连在一起,程序就可以正常工作了。

四.总结与思考

本题难度系数为4,积木块数量在42个左右,涉及到的知识点主要包括:

  • Scratch问答指令,包括询问并等待和回答指令;

  • 变量的使用;

  • 运算指令,包括加减乘除和求余数;

  • 字符串连接运算符,尤其是多个字符的连接

  • 双分支条件指令的使用

  • 小时和分钟的换算关系。

本题的代码量不多,但涉及到的数学知识不少,尤其是小时和分钟之间的换算关系,涉及了加减乘除和求余数等常见运算,正所谓编程和数学不分家。我们常说,生活中处处是数学,编程何尝不是如此呢!

如果你觉得文章对你有所帮助,别忘了点赞,你的鼓励是我坚持继续写下去的最大动力,Thanks♪(・ω・)ノ。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝桥杯scratch省赛真题是指蓝桥杯编程大赛中使用Scratch编程语言进行的省级比赛的问。具体的目会根据每年的比赛而有所不同,以下是一个例子: 目要求创建一个游戏,模拟猴子爬楼梯的场景。猴子每次可以爬1到3级的楼梯,目标是爬到楼梯的最顶层。玩家可以通过按键来让猴子爬楼梯,同时需要显示猴子当前所在的楼梯层数以及已经爬过的楼梯数量。 首先,我们需要使用Scratch中的精灵功能来创建一个猴子的角色,可以自定义猴子的造型和动作。接下来,我们需要创建一个楼梯场景,可以使用Scratch中的背景功能来绘制楼梯。可以使用简单的图形表示楼梯,比如长方形。 之后,我们需要添加按键事件,让玩家输入按键来控制猴子的爬楼梯动作。可以使用Scratch中的事件功能来实现按键事件的触发。当玩家按下某个按键时,猴子开始向上爬楼梯。可以使用Scratch中的运动功能来控制猴子的位置,让其向上移动相应的楼梯层数。 同时,我们需要计算猴子当前所在的楼梯层数和已经爬过的楼梯数量。可以使用Scratch中的变量功能来记录这些信息。当猴子爬上一级楼梯时,楼梯层数加一,已经爬过的楼梯数量也加一。可以使用Scratch中的运算功能来实现变量的加法操作。 最后,我们需要添加判断条件,当猴子爬到楼梯的最顶层时游戏结束。可以使用Scratch中的控制功能来实现判断条件。当猴子的位置达到最顶层时,显示游戏结束的提示信息,并停止猴子的爬楼梯动作。 通过以上步骤,我们可以完成蓝桥杯scratch省赛真题中的猴子爬楼梯游戏。这个例子中只是其中的一个目,实际比赛中的问会更加复杂和多样化。但无论目怎样,我们都可以通过使用Scratch的各种功能和编程思维,去解决这些问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值