(
课件网) 最大三位数 教师姓名 学校名称 学习板块 黑板上有一个四位数,请擦除其中一个数字,使得剩余数字组成的三位数最大。 1). 点击绿旗,黑板上显示一个随机的四位数 例如:随机的四位数为7971。 2). 1秒后,老师说“请擦除一个数字” 3). 鼠标点击黑板擦后,黑板擦会持续跟随鼠标移动 4). 把黑板擦移动到想要擦除的数字上,点击鼠标左键, 黑板擦会在该数字处上下滑动擦除该数字; 5). 黑板擦在擦除的过程中,该数字越来越模糊,最终留下 一个很浅的痕迹,如图所示; 6). 之后黑板擦回到最初的位置 7). 如果擦除后得到的三位数最大,那么老师说“正确”; 8). 如果擦除后得到的三位数不是最大的,那么老师说“错误” 具体要求 提供了3个角色,分别是数字、老师和黑板擦 思路分析 其中,数字角色有10个造型,分别表示10个数字 思路分析 拆分成如下3个小模块: 1). 随机一个四位数 2). 计算出最大的三位数 3). 计算擦除任意数字后的三位数 第一步,比较简单,直接使用变量,并通过随机指令进行初始化,范围是1000~9999,如下: 思路拆分 第二步,要计算最大的三位数,其实就是分别去掉千位、百位、十位和个位,然后逐个比较一遍,就可以得到最大的三位数。 比如,随机得到的四位数是5648,得到的三位数分别为: 去掉千位:648 去掉百位:548 去掉十位:568 去掉个位:564 经过比较,可以发现最大的三位数是648,注意不是去掉最小数字就可以得到最大三位数的。 具体如何比较呢,这个可以结合第三步一起考虑。 思路拆分 第三步,计算擦除任意数字后的三位数,还是以四位数5648为例进行说明: 擦除第1个数字:648 擦除第2个数字:548 擦除第3个数字:568 擦除第4个数字:564 看到这里,你想到了什么? 是不是和前面获取最大三位数时去掉千位、百位、十位和个位完全一样,难道要重新再来一遍? 很显然,这是不必要的,在编程中,使用变量(包括列表)可以避免做一些重复的工作。 不妨使用一个列表,将三位数按顺序依次保存起来。 思路拆分 有了这个列表,就要方便多了,遍历整个列表,就可以找到最大的三位数。更重要的是,当擦除任意个数字时,我们只需要知道该数字是第几个,就可以直接通过编号获取擦除后的三位数了。 如何知道是第几个数字呢,其实也非常简单,在克隆的时候,使用私有变量,给每个数字进行编号,从左到右依次为1、2、3、4。 如此一来,在擦除某个数字的时候,就可以通过编号获取擦除后的三位数了,再使用变量保存起来。 只需要一行代码就可以了,是不是非常的巧妙。 最大的三位数和擦后的三位数都有了,老师角色在判断的时候,就可以根据这两个变量是否相等来提示正确和错误了。 思路有了,接下来,我们就进入具体的编程实现环节。 思路拆分 1随机四位数并获取最大三位数 首先,创建两个变量“四位数”和“最大三位数”,将四位数设置为1000~9999之间的随机数。 再建立一个列表“三位数”,将4个三位数保存到列表中。由于计算最大三位数的代码有点多,我们创建一个自制积木来简化代码结构。 创建自制积木并编写代码 程序编写 2. 克隆数字 有了四位数,就可以根据四位数来克隆数字了,为了方便,我们使用自制积木来组织代码 程序编写 3. 老师提示擦除数字 接下来,是老师提示要擦除数字,这一步非常简单,切换到老师角色,编写代码 程序编写 4. 黑板擦擦除数字 黑板擦开始位于黑板左下方,在鼠标点击后会跟随鼠标移动,在碰到某个数字时点击鼠标才停止下来。 切换到黑板擦角色,编写代码 程序编写 ... ...