版本 2
支持库 spec
程序集 窗口程序集_启动窗口
子程序 _按钮1_被单击
局部变量 a, 文本型
局部变量 b, 文本型
a = “<120+1515+(68-24)>”
b = 取文本中间 (a, 2, 取文本长度 (a) - 2)
调试输出 (b)
标准输出 (, b)
调试输出 (表达式计算 (b))
子程序 表达式计算, 双精度小数型
参数 表达式, 文本型
局部变量 加, 整数型
局部变量 减, 整数型
局部变量 乘, 整数型
局部变量 除, 整数型
局部变量 左, 整数型
局部变量 左1, 整数型
局部变量 右, 整数型
右 = 寻找文本 (表达式, “)”, , 假)
如果真 (右 ≠ -1)
循环判断首 ()
左 = 寻找文本 (表达式, “(”, 左 + 1, 假)
循环判断尾 (寻找文本 (表达式, “(”, 左 + 1, 假) ≠ -1)
返回 (表达式计算 (取文本左边 (表达式, 左 - 1) + 到文本 (表达式计算 (取文本中间 (表达式, 左 + 1, 右 - 左 - 1))) + 取文本中间 (表达式, 右 + 1, 取文本长度 (表达式) - 右)))
如果真结束
加 = 寻找文本 (表达式, “+”, , 假)
如果真 (加 ≠ -1)
返回 (表达式计算 (取文本左边 (表达式, 加 - 1)) + 表达式计算 (取文本中间 (表达式, 加 + 1, 取文本长度 (表达式) - 加)))
如果真结束
减 = 寻找文本 (表达式, “-”, , 假)
如果真 (减 ≠ -1)
返回 (表达式计算 (取文本左边 (表达式, 减 - 1)) - 表达式计算 (取文本中间 (表达式, 减 + 1, 取文本长度 (表达式) - 减)))
如果真结束
乘 = 寻找文本 (表达式, “”, , 假)
如果真 (乘 ≠ -1)
返回 (表达式计算 (取文本左边 (表达式, 乘 - 1)) × 表达式计算 (取文本中间 (表达式, 乘 + 1, 取文本长度 (表达式) - 乘)))
如果真结束
除 = 寻找文本 (表达式, “/”, , 假)
如果真 (除 ≠ -1)
返回 (表达式计算 (取文本左边 (表达式, 除 - 1)) ÷ 表达式计算 (取文本中间 (表达式, 除 + 1, 取文本长度 (表达式) - 除)))
如果真结束
返回 (到数值 (表达式))
有图有真像
中间数字是13。这个幻方如下:18 6 15
10 13 16
11 20 8
幻和值=13×3=39
解法:
1、三阶幻方的角格×2=非相邻两个边格之和
(证明方法:第一列+主对角线=第一行+第二行,等式两边消去相同项即得)
也就是:11×2=16+第一行中间数,得第一行中间数=6
2、三阶幻方中心数×2=对称的两个数之和
第二列知道6和20,中间数=(6+20)÷2=13
3、幻和值=6+13+20=13×3=39,依次求出幻方其它数就OK了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)