跟数学老师学Scratch | 13 寻找完全数
人教版小学数学五年级下册《因数和倍数》一单元中,对完全数做了一些介绍。对于哪些数是完全数,其实都是书上说的,自己通过计算去寻找验证还真难做到。但是,对于计算机来说,做这件事却是小菜一碟。今天,我们通过Scratch编程来解决这个问题吧。13.1 项目描述https://v.qq.com/x/page/y0953vphzqo.html演示视频
当用户设定好寻找范围后,程序通过穷举法进行寻找;找到一个就显示、播报一个结果,直到全部寻找完。
13.2 数学小课堂 要编程寻找完全数,大家得先了解完全数的定义。这一定义的基础又是“因数”的概念。在没搞清楚“因数”之前,最好不要着急学习本项目。关于“因数”,请先自行学习或者复习。 上面是比较小的两个完全数,相信大家根据这两个例子能更明白什么样的数是完全数。
13.3 编程思路 本项目的程序还是采用穷举法,有两个循环体:一个是将设定范围内的所有数逐个进行判断,判断其是否为完全数;一个是判断是否完全数的子程序中,通过从1开始逐个去除需要判断的数以寻找到这个数的因数,是因数的将进行累加求和,所有因数都找出后判断这些因数的和是否等于这个数,从而判断这个数是否为完全数。
13.4 制作项目13.4.1 打开编程软件Mind+1.6.2,切换为【实时模式】13.4.2 导入背景图片和角色图片请自行设计背景、选择你喜欢的角色。
13.4.3 编写程序(1)建立四个变量,并让其显示在舞台上
(2)创建函数“判断是否为完全数”并进行定义 和上一个项目一样,采用了文本显示和语音播报方式,需要先添加“文字朗读”扩展包。 循环的终止条件为“除数=当前数”,这样可以保证当前数本身不会进行被累加求和。(3)编写主程序
程序开始后,通过用户输入获取寻找范围值;然后从2开始一直到达到指定范围上限,逐个进行是否为完全数判断;退出循环时,说明全部判断过了,最后提示“寻找完毕”。
13.5 补充说明 在程序中使用了另一个称谓“完美数”,原因是文字朗读会把“完全数”读成“wan(二声)quan(二声)shu(三声)”。 程序运行时,建议打开加速模式。具体方法,可在前面的教程中找。完整程序12.6 试一试 编写一个寻找一个数的全部因数的程序。
欢迎关注我的公众号 我爱学Scratch
怀若谷 发表于 2020-4-20 14:09
人教版小学数学五年级下册《因数和倍数》一单元中,对完全数做了一些介绍。对于哪些数是完全数,其实 ...
真好
要是用上教学
老师学生可以一起学数学和Scrath emmm这个脚本有几个优化速度的方法:[因为scratch本身重复运行速度较慢]
1.完全数的末尾都是6或28。可以这么设置:
如果[当前数长度]位数:当前数=6
那么:
如果[当前数长度-1]位数:当前数=2
那么:将当前数+2
否则:将当前数+10
而不是一个一个寻找
2.你可以建立一个链表
将寻找每个数的因数放进去
例:
将因数设定为1
重复执行
[设定一个 结果 变量]
将结果设定为当前数除以因数
如果结果四舍五入=结果
那么:如果链表中包含结果、因数不成立
那么将结果和因数加进链表
否则开始判定是否为完全数:
停止当前脚本
判定完全数:
重复执行[链表长度]次:
[设定一个因数和变量]
将因数和增加链表末尾
删除链表末尾
重复结束:
将因数和设定成因数和-当前数
然后判定因数和等不等与本数
这样可以加快许多运算速度 六年级编程小哥 发表于 2021-4-4 22:15
emmm这个脚本有几个优化速度的方法:[因为scratch本身重复运行速度较慢]
1.完全数的末尾都是6或28。可以这 ...
谢谢指教!设定的学习对象的是小学生。
页:
[1]