整数加减法可视化:用几何点与多边形演示正负数运算

整数加减法可视化:用几何点与多边形演示正负数运算
几何画板及绘图内容加载中,请稍等……
2017-10-09 22:38
① 本范例通过二维平面上的点、圆和多边形,直观演示整数加法和减法的运算过程,帮助学习者理解正负数的合并与抵消。② 核心数学概念包括整数运算、相反数、绝对值以及数轴上的位移,同时涉及随机变量和序列的生成。③ 作图要点:使用GeoGebra的Sequence和If命令生成正负点集,通过Flatten和SelectedElement管理列表,利用Textfield和InputBox创建交互输入,并用positiveCircles、negativeCircles等对象表示正负数,配合addStep1mover、subStep1mover等移动器展示逐步运算。④ 适合小学高年级至初中学生,作为整数运算的互动教具,也可用于教师课堂演示或学生自主探索。

GeoGebra 命令及参数

  1. Flatten(Sequence[Sequence[Point[{i, (-j)}], i, 1 / 2, 1 / 2 + floor(sqrt(If[n1 < 0, (-n1) + n1AddedNegative, n1AddedNegative])), 1], j, 1 / 2, 1 / 2 + floor(sqrt(If[n1 < 0, (-n1) + n1AddedNegative, n1AddedNegative])), 1]) → negativePoints
  2. Sequence(Max[abs(x(Element[negativePoints, i])), abs(y(Element[negativePoints, i]))], i, 1, Length[negativePoints]) → negativeSorter
  3. If(Length[negativePoints] > 0, First[Sort[negativePoints, negativeSorter], Max[(-n1) + n1AddedNegative, n1AddedNegative]], {}) → sortedNegativePoints
  4. Textfield(n1text) → InputBox1
  5. Textfield(n2text) → InputBox2
  6. Flatten(Sequence[Sequence[Point[{i, j}], i, 1 / 2, 1 / 2 + floor(sqrt(If[n1 > 0, n1 + n1AddedPositive, n1AddedPositive])), 1], j, 1 / 2, 1 / 2 + floor(sqrt(If[n1 > 0, n1 + n1AddedPositive, n1AddedPositive])), 1]) → positivePoints
  7. Sequence(Max[abs(x(Element[positivePoints, i])), abs(y(Element[positivePoints, i]))], i, 1, Length[positivePoints]) → positiveSorter
  8. If(Length[positivePoints] > 0, First[Sort[positivePoints, positiveSorter], Max[n1 + n1AddedPositive, n1AddedPositive]], {}) → sortedPositivePoints
  9. If(Length[sortedNegativePoints] > 0, Sequence[Circle[Element[sortedNegativePoints, i], 0.4], i, 1, Length[sortedNegativePoints]], {}) → negativeCircles
  10. If(Length[sortedPositivePoints] > 0, Sequence[Circle[Element[sortedPositivePoints, i], 0.4], i, 1, Length[sortedPositivePoints]], {}) → positiveCircles
  11. If((n1 * n2) < 0, Min[abs(n1), abs(n2)], 0) → extraZeros
  12. SelectedElement(addOrSub) → operation
  13. Textfield(n1Text) → InputBox3
  14. If(operation ≟ "+", n1 + n2, n1 - n2) → answer
  15. If(Max[{n1, n2, answer}] > 0, Max[{n1, n2, answer}], 0) → highestPositive
  16. If(Min[{n1, n2, answer}] > 0, 0, Min[{n1, n2, answer}]) → lowestNegative
  17. If(highestPositive ≟ lowestNegative, 10, ceil(sqrt(highestPositive))) → top
  18. Sequence(Text["+", Element[sortedPositivePoints, i] - (right / 50, (top + bottom) / 40)], i, 1, Length[sortedPositivePoints]) → plusSigns
  19. Sequence(Text["-", Element[sortedNegativePoints, i] - (right / 65, (top + bottom) / 40)], i, 1, Length[sortedNegativePoints]) → minusSigns