micro:bit——请输入你的手机号码?

很多老师、同学可能会问:为什么要学习数字的增减、循环呢?学这个到底有什么实际的用处?

今天就来揭晓这个问题的答案[数学自有数学的用处,一切都是为了今天这个有实际意义的项目活动——“请输入你的手机号码?”,这是一个有交互(输入、输出),类似机器提问、人来作答的micro:bit编程项目活动。

0~9可以看成是十进制基本数字的循环(不进位),在需要输入数字,比如输入手机号码时,需要用的数字,就是0~9。在需要输入文本时,会是更加奇怪、庞大的数字循环,比如0~25(或者1~26)。如果你需要开发一种输入法,需要输入英语字母(仅大写字母或仅小写字母),就是26个数字的循环(每个数字与字母一一对应)。如果考虑大小写字母要区分,就是52个数字的循环。如果除了字母还考虑数字,那就是62个,以此类推。这些就是数字增减、循环的实际意义和用途。

在micro:bit 5×5的点阵屏幕上,要显示比较大的数字循环或者比较多的字母,会显得不怎么舒服。所以,我认为这个项目活动——输入11位的手机号码,基本上也已经到极限了。我接下来考虑设计输入字母的教学内容,会引入processing,来和micro:bit结合,这样在电脑屏幕上,就能显示更多的信息了。也可以选择Scratch进行程序开发,而选[processing,是因为相比Scratch,我更喜欢Processing!

以下,就让我们开始学习项目活动《请输入你的手机号码?》吧——

项目活动任务(需要micro:bit实现的功能):使micro:bit通过按钮A、B,实现选择、输入11位手机号码的数字,完成输入后自动显示此手机号码一遍。

接下来就让我们开始编程吧!

MakeCode篇:

方法1:

file

程序扼要说明:

声明变量i,并赋值为0(初始化)。变量i用以计量已通过按钮输入的手机号码的“位数”(个数)。

file

声明数组n[ ],手机号码是由11个数字组成的,这11个数字将按顺序储存在数组n[ ]内。

数组“进阶”选项卡内:

file

将变量n指定为数组类型,并将所有数组元素初始化为0:

file

事件on button A pressed,实现数字0~9的递增、循环

file

事件on button B pressed触发后,以变量i为索引值(index),把被按钮B选中的变量“显示数字”内的当前数字,储存在数组元素n[ i ]内。

file

变量i自增1,功能为:将数组的索引值移到下一位。

file

11个数字的数组内索引值为0~10,储存到数组内,对应的数组元素为n[0]~n[10]。

通过条件结构,判断变量i当前值的大小,即能判断出11位数字有没有全部输入。

条件为i>=11,或者也可以把条件改为i>10,在整数情况下,这两个条件是等价的。

file

当条件满足后,先清空屏幕上的数字(清屏),然后再显示滚动字幕“CALL:”

file

使用指定循环次数的循环(即for循环),将数组n[ ]中的元素依次在点阵上显示。

即:在屏幕上依次显示刚刚输入的11位手机号码,用“CALL:XXXXXXXXXXX”的形式,模拟打电话拨号的情景。

file

在for循环结束后,用reset()方法,重置、复位micro:bit开发板,实现新的一次“请输入你的手机号码?”。

file

file

方法2:

即把按钮“事件”改变成forever无限循环,这个我们之前在学习续篇之后,已有经验。

file

这个程序里面只有一点可能会让你比较困惑:

file

解释:

if条件结构里,增加了一个while循环。这个while循环的作用是,等待按钮B被释放Released),从而完成一次完整的按键+松开的Bumper动作。

这样做的效果是:不在一次按键中连续触发递增的效果。按一次按钮并释放后,才会递增(更新)一次数字,不会造成误按。

黔西南 触摸未来
我们正身处一个只要愿意思考,就能改变世界的时代