第3课 幻方
(资料图)
一、课程导入
1 、本节课你将会学到:幻方的概念、填幻方的技巧、以中心数为0的情况编写Scratch程序。
2、知识储备:幻方由3行×3列的9个小格子组成。其中中间的数叫中心数,横排的叫做“行”,竖排的叫做“列”,斜着排的叫做“对角线”。规则每行每列每条对角线上的数字之和都相等(即幻和)。每个格子里的数都互不相同,否则就没有意义了。(如图1所示)
二、例题讲解
1、如图2所示,在每个方格内填上适当的数,使每行、每列、每条对角线上的数字之和都相等。
2、明显这是个幻方题。前面我提到过幻方的概念,规则是每行、每列、每条对角线上的数字之和都相等吧?而且我们也可以通过幻方的概念直观的看到,给出的中心数是0,左下角是1,右下角是根号2。可难点是:算式的结果是唯一的,方格内要相加的数有8组。方格是二维的。这就意味着,只要“破坏”了幻方中任意一个内的数,格内的其他所有数就都会受到影响。这可怎么办呢?实际上不用担心。大家记住:当幻方的中心数为0时,它有个公理:对角线两数之差=中间数。以左下角为参照的数为例,右上角就是它的相反数,∵互为相反数的两个数相加得0,无理数、虚数、代数式也是同样道理,只不过这里还是要拿无理数来举例子讲为主。现在我们可以知道左上角是-根号2,右上角是-1,那剩下的也就好求了,答案如图3所示。
三、流程图讲解
如图4所示:
首先程序开始,第一步固定中心数为0,第二步固定好左下角和右下角的数字,这个程序里的这一步我们以左下角、右下角为例,第三步根据这些已知数推出角上的数,即左上角、右上角的变量,最后进一步推出边上的数,也就是格上方、格下方、格左方、格右方的变量。此时程序结束。
四、代码及其讲解
由于我们这里只以中心数为0为例来讨论,∴幻和一定为0。
当绿旗被点击
将幻和设为0
将中间数设为0
虽然幻方的规则是固定的,但是数字是无穷大、无穷小的,另外解题前总得出好题吧?流程图中就提到输入左下角、右下角的数,∴询问与回答的变量的部分也应该是左下角、右下角的数。
询问请输入左下角的数字并等待
将左下角设为回答
询问请输入右下角的数字并等待
将右下角设为回答
为什么接下来要处理的是对角线?∵现在两条对角线均只剩1个数字要填,并且根据互为相反数的两个数相加得0就可以推出对角线空缺的数,改变一下正负号就可以了。但是由于Scratch中没有相反数的积木块,可是我们却知道同号得正异号得负,1乘以任何非零数都等于另一个乘数本身,∴我们就可以把它替换成“××变量×(-1)”形式的积木块。
将左上角设为:右下角×(-1)
将右上角设为:左上角×(-1)
我们都知道,对于一行积木块而言,执行的步骤是“从里到外”逐一执行的。这就说明,如果把上一步的“下方”看成一个整体,那么“左下角×(-1)”和“右下角×(-1)”就是两个个体,于是有:
将上方设为:左上角+右下角
结合上两部分的思路,把最初设定的两个数分别看成一个整体,填数时再进行加减法化简,于是有:
将下方设为:左下角×(-1)
此时我们已经推出了右上角的数,它和下方、上方有个共同点:把邻边的两个对角处看成一个整体,填数时再进行加减法化简,只不过就是由于右上角是负数,需要加变减,那么脚本就是:
将右边设为:左下角-右下角
将左边设为:右上角+左上角×(-1)
标签: