Add and Subtract Integers: Visualizing Positive and Negative Numbers with Geomet

Add and Subtract Integers: Visualizing Positive and Negative Numbers with Geomet
Loading the math board and drawing, please wait…
2017-10-09 22:38
① This GeoGebra example demonstrates integer addition and subtraction using points, circles, and polygons on a 2D plane, making the merging and canceling of positive and negative numbers visually intuitive. ② Core math concepts include integer operations, opposite numbers, absolute value, and number line movement, along with random variables and sequences. ③ Construction highlights: commands such as Sequence, If, Flatten, and SelectedElement manage lists of positive and negative points; Textfield and InputBox provide interactive input; objects like positiveCircles, negativeCircles, and addStep1mover/subStep1mover illustrate step-by-step operations. ④ Suitable for upper elementary to middle school students, this interactive tool supports classroom demonstrations and self-paced exploration of integer arithmetic.

GeoGebra Commands & Parameters

  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