Inverse Operations: Addition and Subtraction

Inverse Operations: Addition and Subtraction
Loading the math board and drawing, please wait…
2024-07-03 21:38
This example uses the story of Kletter-Max to demonstrate the inverse relationship between addition and subtraction. It covers core math concepts of solving unknowns through inverse operations, emphasizing that addition is the inverse of subtraction and vice versa. The construction leverages GeoGebra commands like Sequence, Element, Textfield, SelectedIndex, Corner, Curve, Cartesian, PolyLine, Segment, If, Invert, Text, CircleArc, Vector along with objects to create interactive questions and feedback. Suitable for 5th-6th grade students to practice solving linear equations via inverse operations.

GeoGebra Commands & Parameters

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {1, 2, 3, 9, 5, 9, 8, 3, 8, 8}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. SelectedIndex(dropdown031) → index031
  5. SelectedIndex(dropdown041) → index041
  6. SelectedIndex(dropdown071) → index071
  7. SelectedIndex(dropdown081) → index081
  8. Textfield(input031) → InputBox031
  9. Textfield(input041) → InputBox041
  10. Textfield(input071) → InputBox071
  11. Textfield(input081) → InputBox081
  12. Corner(imgWand, 3) → PosImgWand3
  13. Sequence(PosImgWand1 + (0.105 * (PosImgWand2 - PosImgWand1)) + (0.105 * (PosImgWand3 - PosImgWand2)) + ((k * 0.07065) * (PosImgWand3 - PosImgWand2)), k, 0, 12) → PointListSprosse
  14. Sequence(Polygon[PointListSprosse(k) + {(0, 0), (0.775 * (PosImgWand2 - PosImgWand1)), (0.775 * (PosImgWand2 - PosImgWand1)) - (0.025 * (PosImgWand3 - PosImgWand2)), (-0.025 * (PosImgWand3 - PosImgWand2))}], k, 1, Length[PointListSprosse]) → SprosseList
  15. Sequence(PointListSprosse(k) + (0.25 * (PosImgWand2 - PosImgWand1)) - (0.035 * (PosImgWand3 - PosImgWand2)), k, 1, Length[PointListSprosse]) → PosListKM
  16. Sequence(PointListSprosse(k) + (0.9 * (dimWand, 0)) - (0.007 * (0, dimWand)), k, 1, 13) → PointListRight
  17. Sequence(Text[(((("\textsf{" * If[k ≟ actualSprosse, "\bold{\textcolor{#1565c0}{", "{{"]) * "") * k) * "}}}"), PointListRight(k), false, true, 0, 0], k, 1, 13) → CapList
  18. CurveCartesian(Midpoint[PointListRight(Min[Sprosse031, Sprosse041]), PointListRight(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1) + (Distance[Midpoint[PointListRight(Min[Sprosse031, Sprosse041]), PointListRight(Max[Sprosse031, Sprosse041])], PointListRight(Min[Sprosse031, Sprosse041])] * (cos(t), sin(t))), t, -60°, 60°) → arc031
  19. Sequence(PointListRight(k) - (0.9 * (dimWand, 0)), k, 1, 13) → PointListLeft
  20. PolyLine(PosImgMax2 + (-0.5, 3.5), Corner[txt111, 1] + (0.6, 0), Corner[txt111, 2] + (0.1, 0), Corner[txt111, 3] + (0.1, 0.1), Corner[txt111, 4] + (-0.05, 0.1), Corner[txt111, 1] + (-0.05, 0.5), PosImgMax2 + (-0.5, 3.5)) → sb
  21. CurveCartesian(Midpoint[PointListLeft(Min[Sprosse031, Sprosse041]), PointListLeft(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1) + (Distance[Midpoint[PointListLeft(Min[Sprosse031, Sprosse041]), PointListLeft(Max[Sprosse031, Sprosse041])], PointListLeft(Min[Sprosse031, Sprosse041])] * (cos(t), sin(t))), t, 120°, 240°) → arc041
  22. Segment(Point[arc031, 1], Point[arc031, 1] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListRight(Min[Sprosse031, Sprosse041]), PointListRight(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1), Point[arc031, 1]]])) → seg031
  23. Segment(Point[arc031, 0], Point[arc031, 0] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListRight(Min[Sprosse031, Sprosse041]), PointListRight(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1), Point[arc031, 0]]])) → seg032
  24. Segment(Point[arc041, 0], Point[arc041, 0] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListLeft(Min[Sprosse031, Sprosse041]), PointListLeft(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1), Point[arc041, 0]]])) → seg042
  25. Segment(Point[arc041, 1], Point[arc041, 1] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListLeft(Min[Sprosse031, Sprosse041]), PointListLeft(Max[Sprosse031, Sprosse041])] + (-0.25, -0.1), Point[arc041, 1]]])) → seg041
  26. If(Sprosse041 > Sprosse031, 7, 2) → Sprosse071
  27. If(Sprosse041 > Sprosse031, 2, 7) → Sprosse081
  28. Invert(pixMat) → invPixMat
  29. Text((((("\textsf{\colorbox{ebe7f8}{Operation:\\\bold{" * If[Sprosse031 < Sprosse041, "Addition", "Subtraktion"]) * "}\\") * If[Sprosse031 < Sprosse041, "+", "\(-\)"]) * " 3 Sprossen}}"), Pos031, false, true, 1, 0) → txt062
  30. CurveCartesian(Midpoint[PointListRight(Min[Sprosse071, Sprosse081]), PointListRight(Max[Sprosse071, Sprosse081])] + (-0.5, -0.1) + (Distance[Midpoint[PointListRight(Min[Sprosse071, Sprosse081]), PointListRight(Max[Sprosse071, Sprosse081])], PointListRight(Min[Sprosse071, Sprosse081])] * (cos(t), sin(t))), t, -60°, 60°) → arc071
  31. CurveCartesian(Midpoint[PointListLeft(Min[Sprosse071, Sprosse081]), PointListLeft(Max[Sprosse071, Sprosse081])] + (0, -0.1) + (Distance[Midpoint[PointListLeft(Min[Sprosse071, Sprosse081]), PointListLeft(Max[Sprosse071, Sprosse081])], PointListLeft(Min[Sprosse071, Sprosse081])] * (cos(t), sin(t))), t, 120°, 240°) → arc081
  32. Segment(Point[arc071, 1], Point[arc071, 1] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListRight(Min[Sprosse071, Sprosse081]), PointListRight(Max[Sprosse071, Sprosse081])] + (-0.5, -0.1), Point[arc071, 1]]])) → seg071
  33. Segment(Point[arc071, 0], Point[arc071, 0] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListRight(Min[Sprosse071, Sprosse081]), PointListRight(Max[Sprosse071, Sprosse081])] + (-0.5, -0.1), Point[arc071, 0]]])) → seg072
  34. Text((("\textsf{\bold{\textcolor{" * If[step ≟ 7, "006758", "black"]) * " }{") + Sprosse071 + " " + (If[Sprosse071 < Sprosse081, "+", "\(-\)"]) + " 5 = " + Sprosse081 + "}}}", Pos071 + (0, -0.5), false, true, 1, 0) → txt073
  35. Segment(Point[arc081, 1], Point[arc081, 1] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListLeft(Min[Sprosse071, Sprosse081]), PointListLeft(Max[Sprosse071, Sprosse081])] + (0, -0.1), Point[arc081, 1]]])) → seg081
  36. Segment(Point[arc081, 0], Point[arc081, 0] + (0.01 * UnitOrthogonalVector[Vector[Midpoint[PointListLeft(Min[Sprosse071, Sprosse081]), PointListLeft(Max[Sprosse071, Sprosse081])] + (0, -0.1), Point[arc081, 0]]])) → seg082
  37. Text((((("\textsf{\colorbox{ebe7f8}{Operation:\\\bold{" * If[Sprosse071 < Sprosse081, "Addition", "Subtraktion"]) * "}\\") * If[Sprosse071 < Sprosse081, "+", "\(-\)"]) * " 5 Sprossen}}"), Pos071, false, true, 1, 0) → txt102
  38. Text((((("\textsf{\colorbox{ebe7f8}{Umkehroperation:\\\bold{" * If[Sprosse031 > Sprosse041, "Addition", "Subtraktion"]) * "}\\") * If[Sprosse031 > Sprosse041, "+", "\(-\)"]) * " 3 Sprossen}}"), Pos041, false, true, -1, 0) → txt063
  39. Text((((("\textsf{\colorbox{ebe7f8}{Umkehroperation:\\\bold{" * If[Sprosse071 > Sprosse081, "Addition", "Subtraktion"]) * "}\\") * If[Sprosse071 > Sprosse081, "+", "\(-\)"]) * " 5 Sprossen}}"), Pos081, false, true, -1, 0) → txt103
  40. If(step ≟ 2, triesKM ≥ 1 ∧ animKM ∈ {0, 1}, step ≟ 8, anim081 ≟ 5 ∧ correct081 ∧ correctdd081, step ≟ 9, anim091 ≟ 5, true, step ≟ 3, correct031 ∧ correctdd031, step ≟ 4, anim041 ≟ 3 ∧ correct041 ∧ correctdd041, step ≟ 5, anim051 ≟ 3, step ≟ 7, correct071 ∧ correctdd071) → clickableBtnNext
  41. If(step ≟ 2, animKM ∈ {0, 1}, true, step ≟ 4, anim041 ≟ 3, step ≟ 5, anim051 ≟ 3, step ≟ 8, anim081 ≟ 5, step ≟ 9, anim091 ≟ 5) → clickableBtnBack
  42. If(step ≟ 3, Point[arc031, 0] + (0.5, -0.25), step ≟ 4, Point[arc041, 1] + (-4, -0.25), step ≟ 7, Point[arc071, 0] + (0.5, -0.25), Point[arc081, 1] + (-4, -0.25)) → PosBtnShowSolution
  43. Text((("\textsf{\bold{\textcolor{" * If[step ≟ 3, "006758", "black"]) * " }{") + Sprosse031 + " " + (If[Sprosse031 < Sprosse041, "+", "\(-\)"]) + " 3 = " + Sprosse041 + "}}}", Pos031 + (0, -0.5), false, true, 1, 0) → txt033
  44. Text((("\textsf{\bold{\textcolor{" * If[step ≟ 4, "006758", "black"]) * " }{") + Sprosse041 + " " + (If[Sprosse041 < Sprosse031, "+", "\(-\)"]) + " 3 = " + Sprosse031 + "}}}", Pos041 + (-1.9, -0.5), false, true, -1, 0) → txt043
  45. Text((("\textsf{\bold{\textcolor{" * If[step ≟ 8, "006758", "black"]) * " }{") + Sprosse081 + " " + (If[Sprosse081 < Sprosse071, "+", "\(-\)"]) + " 5 = " + Sprosse071 + "}}}", Pos081 + (-1.85, -0.5), false, true, -1, 0) → txt083
  46. CircleArc(Midpoint[PosZ1, PosZ2] + (0, -2), PosZ2 + (-0.25, 0.5), PosZ1 + (0.25, 0.5)) → arc111
  47. CircleArc(Midpoint[PosZ1, PosZ2] + (0, 2), PosZ1 + (0.25, -0.5), PosZ2 + (-0.25, -0.5)) → arc112
  48. Vector(Point[arc111, 0], Point[arc111, 0] + (0.1, -0.1)) → vec111
  49. Vector(Point[arc112, 0], Point[arc112, 0] + (-0.1, 0.1)) → vec112
  50. Text((("\textsf{\bold{" * If[Sprosse041 > Sprosse031, "+", "\(-\)"]) * " 3} Sprossen}"), Pos031 + (0, 0.25), false, true, 1, 0) → txt034
  51. Text((("\textsf{\bold{" * If[Sprosse031 > Sprosse041, "+", "\(-\)"]) * " 3} Sprossen}"), Pos041 + (0, 0.25), false, true, -1, 0) → txt044
  52. Text((("\textsf{\bold{" * If[Sprosse081 > Sprosse071, "+", "\(-\)"]) * " 5} Sprossen}"), Pos071 + (0, 0.25), false, true, 1, 0) → txt074
  53. Text((("\textsf{\bold{" * If[Sprosse071 > Sprosse081, "+", "\(-\)"]) * " 5} Sprossen}"), Pos081 + (0, 0.25), false, true, -1, 0) → txt084

AI Drawing Prompt Reference

This is an interactive mathematical teaching graphic with input boxes for entering numbers, dropdown menus to select operation types, and text boxes displaying problems and answers. The graphic includes a grid of points, curves, and line segments forming geometric shapes, with curves and segments connecting the points. Text boxes display information like "Operation: Addition or Subtraction 3 Sprossen". The overall layout resembles a teaching interface with buttons and feedback areas, used to illustrate the inverse relationship between addition and subtraction.
The prompt above was compiled from the original drawing commands and is for reference only.