本文介绍的作品是全国青少年创意编程与智能设计大赛创意编程比赛一等奖获得者周逸城同学的参赛作品。
正文
在上一篇文章中,果冻老师与大家一起在Scratch中实现了一台普通的计算器,让它拥有了加减乘除这些基本的运算功能。这篇文章中,我们要对这个普通计算器进行升级,加入强大的科学计算与质数计算功能,让它成为名副其实的多功能计算器。
常数
首先,来看一下计算器界面最右边有一排紫色的按键。
它们就是数学中的常数,这四个按键可以让我们方便的进行常数的输入操作。
第一个常数大家非常的熟悉,Pi,或者用希腊字母π表示,中文叫做圆周率,它是圆的周长与直径的比值,这个值呢大家一定都背过,就是3.1415926。
当我们点击Pi这个按键后,代码就只有一行,就是把3.1415926这个值赋值给后变量。
接下来怎样使用后变量,用它来参与加减乘除运算,就又回到上篇文章的内容中了。
第二个常数e,表示自然对数函数的底数。这个常数以瑞士数学家欧拉命名,所以也叫做欧拉常数,e的值与π一样也是一个无限不循环小数,其值约为2.718281828。
第三个常数φ,大家一定听过它的中文名,叫做黄金比例,又称黄金分割点,其值约等于0.618。
第四个常数λ,叫做康威常数,表示Look-and-say数列相邻两项数字长度的比值的极限,其值约等于1.303577269。
这四个按钮可以方便我们输入常数值,比如,当需要输入Pi的值3.1415926时,我们不用一个一个点击数字键,只需要按下Pi键,3.1415926就直接显示在屏幕上了。
函数
看完了四个常数按键,接下来继续分析它们左边的八个蓝色数学函数按键。
第一个按键,幂函数。
点击这个按钮后会发送幂的广播,那什么是幂函数呢?一般地,形如y=x^a的函数称为幂函数,其中x是自然量,a是常数。幂函数的种类有很多,但是这里我们的计算器只支持a为正整数的幂函数。
接收广播幂的代码是这样的:
还是以一个例子来说明幂函数的计算过程,比如计算2^3的值是多少,我们先按下数字2,再按幂函数^键,接着按下数字3,这时前变量保存的是x自然量的值2,后变量保存的是a常数的值3,最后按下=号键计算结果,计算的过程是,首先将2×2=4保存在?变量中,接着重复执行3-1=2次,每次都将?变量的值×2,再保存回?变量,这样重复执行完后?变量的值为16,最后将16÷2=8保存在结果变量中,这就是最终计算出并显示在屏幕上的数值。
可是,果冻老师感觉这个计算过程有点点麻烦,应该是可以再优化的,那这个任务就交给你尝试一下吧。
第二个按键,根式函数。
根式函数就是形如y=a√x的函数,同样的,这里的a在我们的计算器中只支持正整数。根式函数的计算原理呢就是一个不断开平方根的过程。
剩下的六个函数按钮分别是In函数、log对数函数、sin正弦函数、cos余弦函数、tan正切函数、abs绝对值函数。这些函数的计算过程相比起来是非常简单的,因为上篇文章中说过,Scratch中已经提供了这些数学函数的计算语句,我们只需要拖动它们到代码区直接使用就可以了。
以sin正弦函数为例:
代码中真正的计算过程只有最后一行,将后变量中的值通过sin语句计算后保存在结果这个变量中就OK了。
好了,计算器中所有的科学计算部分到这里就介绍完了。接下来,我们退出普通计算器的界面,点击质数计算器进入强大的质数计算功能吧。
质数计算器
质数计算器的界面相对于普通计算器简单一些,它的键盘只有左侧绿色的数字键,屏幕上却多了计算和查询两个按钮。
在分析代码之前,我们有必要先了解一下什么是质数?质数又称素数,指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。举个例子大家就知道了,比如说数字3,它只能被1和3整除,所以它就是质数;再比如数字31,它也只能被1和31整除,所以它也是质数。像1、31这样比较小的数字我们口算就可以看出它是不是质数,但是如果碰到非常大的数字,比如499,那就需要使用质数计算器来帮助我们判断了。
好,了解了质数的含义后,质数计算器中计算按钮的作用就是计算出所有比输入数字小的质数,查询的按钮就是判断当前输入的数字是不是质数。
按照惯例,由简到难,我们先来看查询的功能吧。
在上一篇文章中介绍过,当我们按下一个数字键时,程序会将我们输入的数字保存在后与终止这两个变量中,后变量用于普通计算器的计算,而终止变量就是用于质数计算器的。
我们输入完数字,按下屏幕上的查询按钮,这个按钮会发出查询的广播。
而代码接收到查询的广播后,就会立即开始查询数字是不是质数的判断。
具体的判断过程就不再解析了,因为果冻老师不是数学老师呀!也许有很多同学的数学比我学的还要厉害,老师就不在这里班门弄斧了。
接着,是计算按钮,这个按钮是计算器中逻辑最复杂的一个功能,但是虽然代码庞大,它的计算逻辑与查询功能是类似的,不同的是它会将小于输入数字的所有质数和计算的时间都通过列表显示出来,具体的过程也就不在这里解析了。
最后的效果就是这样的:
总结
经过两篇文章的学习,我们一起在Scratch中实现了普通计算器、科学计算器与质数计算器的功能。虽然我们这是编程课,但是几乎上成了数学课,文章中涉及到了加减乘除运算、余数运算、常数、函数、质数等数学知识,同时充分使用了Scratch软件的运算模块,几乎用到了模块中所有的语句。像sin、cos、平方根这些语句我们在开发的过程中一般很少用到,通过这个作品我们对它们有了更深入的了解,不知道你学会了没有,希望这个作品对你的数学课也有帮助。如果你在学习完这篇文章之后有新的想法或者创意,那就不要犹豫赶紧行动去开始实现它吧。