Travel Around the World - Adding and Subtracting Rational Numbers

Travel Around the World - Adding and Subtracting Rational Numbers
Loading the math board and drawing, please wait…
2026-02-18 20:36
This example uses a travel around the world theme to demonstrate adding and subtracting rational numbers. Key mathematical concepts include operations with rational numbers. It utilizes GeoGebra commands such as Corner, Point, Vector, CountIf, Join, Textfield, Split, If, Element, Text, ParseToNumber, Sequence, and LCM. Suitable for middle school and above students to learn rational number operatio

GeoGebra Commands & Parameters

  1. Corner(FahneBlue, 1) → controlBlue
  2. Corner(FahneGelb, 1) → controlGelb
  3. Corner(FahneRosa, 1) → controlRosa
  4. Corner(FahneGreen, 1) → controlGreen
  5. Point(Kreis1) → Pfeil1A
  6. Point(Kreis2) → Pfeil1E
  7. Point(Kreis2) → Pfeil2A
  8. Point(Kreis3) → Pfeil2E
  9. Point(Kreis3) → Pfeil3A
  10. Point(Kreis4) → Pfeil3E
  11. Point(Kreis4) → Pfeil4A
  12. Point(Kreis5) → Pfeil4E
  13. Point(Kreis5) → Pfeil5A
  14. Point(Kreis6) → Pfeil5E
  15. Point(Kreis6) → Pfeil6A
  16. Point(Kreis7) → Pfeil6E
  17. Point(Kreis7) → Pfeil7A
  18. Point(Kreis8) → Pfeil7E
  19. Point(Kreis8) → Pfeil8A
  20. Point(Kreis9) → Pfeil8E
  21. Point(Kreis9) → Pfeil9A
  22. Point(Kreis10) → Pfeil9E
  23. Vector(Pfeil1A, Pfeil1E) → Pfeil1
  24. Vector(Pfeil2A, Pfeil2E) → Pfeil2
  25. Vector(Pfeil3A, Pfeil3E) → Pfeil3
  26. Vector(Pfeil4A, Pfeil4E) → Pfeil4
  27. Vector(Pfeil5A, Pfeil5E) → Pfeil5
  28. Vector(Pfeil6A, Pfeil6E) → Pfeil6
  29. Vector(Pfeil7A, Pfeil7E) → Pfeil7
  30. Vector(Pfeil8A, Pfeil8E) → Pfeil8
  31. Vector(Pfeil9A, Pfeil9E) → Pfeil9
  32. CountIf(a ≟ true, a, allCorrects) → correctCount
  33. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  34. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  35. Textfield(input) → inputBox
  36. Join(Sequence[Shuffle[1…4], k, 1, 60]) → listVZ
  37. Split(Text[inputBox], {""}) → l1
  38. CountIf(x ≟ "/", l1) → nBruch
  39. Join(Sequence[Shuffle[10…20], k, 1, 60]) → listZahlen2
  40. Join(Sequence[Shuffle[1…10], k, 1, 60]) → listZahlen1
  41. If(questionCount ∈ {1, 2, 4, 5, 8, 9}, listZahlen1, listZahlen2) → listZahlen
  42. Join(Sequence[Shuffle[{4.9, 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3, 2.2, 2.1, 1.9, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, 1.2, 1.1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}], k, 1, 3]) → listDezis
  43. Join(Sequence[Shuffle[{5, 4, 3, 2, 1}], k, 1, 50]) → listGanzis
  44. Join(Sequence[Shuffle[{{1, 2}, {2, 1}}], k, 1, 40]) → listMusterZ11
  45. Join(Sequence[Shuffle[{{1, 1, 2, 2}, {1, 2, 1, 2}, {1, 2, 2, 1}, {2, 1, 1, 2}, {2, 1, 2, 1}, {2, 2, 1, 1}, {2, 2, 2, 1}, {2, 2, 1, 2}, {2, 1, 2, 2}, {1, 2, 2, 2}}], k, 1, 40]) → listMusterZ13
  46. Join(Sequence[Shuffle[{{1, 2, 1}, {2, 1, 1}, {1, 2, 2}, {2, 1, 2}}], k, 1, 40]) → listMusterZ12
  47. If(questionCount ≤ 3, listMusterZ11(actualQuestion), questionCount ≤ 7, listMusterZ12(actualQuestion), listMusterZ13(actualQuestion)) → listActualMuster
  48. If(questionCount ≤ 3, listVZ(actualQuestion), listVZ((3 * actualQuestion))) → VZ2
  49. If(questionCount ≤ 3, listVZ(actualQuestion + 1), listVZ((3 * actualQuestion) + 1)) → VZ3
  50. If(questionCount ≤ 3, listVZ(actualQuestion + 2), listVZ((3 * actualQuestion) + 2)) → VZ4
  51. If(VZ1 ∈ {1, 2}, num1, (-num1)) → solution1
  52. If(VZ1 ∈ {1, 2}, num1, (-num1)) → actualNum1
  53. If(VZ2 ∈ {1, 4}, num2, (-num2)) → actualNum2
  54. If(VZ3 ∈ {1, 4}, num3, (-num3)) → actualNum3
  55. If(VZ4 ∈ {1, 4}, num4, (-num4)) → actualNum4
  56. If(Defined[input3], If[SelectedIndex[drop2] ≟ 2, input3, (-input3)], 0) → inputSet2
  57. If(Defined[input4], If[SelectedIndex[drop3] ≟ 2, input4, (-input4)], 0) → inputSet3
  58. If(Defined[input2], If[SelectedIndex[drop1] ≟ 2, input2, (-input2)], 0) → inputSet1
  59. CountIf(x ≟ "-", Split[Text[inputBox], {""}]) → nMinus
  60. Textfield(input1) → inputBox1
  61. Textfield(input4) → inputBox4
  62. Textfield(input3) → inputBox3
  63. Textfield(input2) → inputBox2
  64. If(pickedBlue, controlBlue, pickedGelb, controlGelb, pickedRosa, controlRosa, controlGreen) → controlMaster
  65. Element({Kreis1, Kreis2, Kreis3, Kreis4, Kreis5, Kreis6, Kreis7, Kreis8, Kreis9, Kreis10}, questionCount) → NextPosition
  66. Text(inputBox) → txtInputBox
  67. ParseToNumber(ReplaceAll[txtInputBox, ",", "."]) → a
  68. If(questionCount ≤ 3, 2, questionCount ≤ 7, 3, 4) → nNumbers
  69. Join(Sequence[Shuffle[{2, 3, 4, 5, 6, 8}], k, 1, 50]) → listNenner
  70. Join(Sequence[Shuffle[{1, 2, 3}], k, 1, 50]) → für4
  71. Join(Sequence[Shuffle[{1, 2}], k, 1, 50]) → für3
  72. Join(Sequence[Shuffle[{1, 2, 3, 4}], k, 1, 50]) → für5
  73. Join(Sequence[Shuffle[{1, 2, 3, 4, 5}], k, 1, 50]) → für6
  74. Join(Sequence[Shuffle[{1, 2, 3, 4, 5, 6, 7}], k, 1, 50]) → für8
  75. Sequence(If[listNenner(k) ≟ 2, 1, listNenner(k) ≟ 3, für3(k), listNenner(k) ≟ 4, für4(k), listNenner(k) ≟ 5, für5(k), listNenner(k) ≟ 6, für6(k), für8(k)], k, 1, 60) → l3
  76. Sequence(If[listNenner(k) ≟ 2, 1, listNenner(k) ≟ 3, für3(k), listNenner(k) ≟ 4, für4(k), listNenner(k) ≟ 5, für5(k), listNenner(k) ≟ 6, für6(k), für8(k)], k, 1, 60) → listZähler
  77. Sequence(1, k, 1, 60) → für2
  78. If(nenn1 ≟ 2, 1, nenn1 ≟ 8, für8((4 * actualQuestion)), nenn1 ≟ 3, für3((4 * actualQuestion)), nenn1 ≟ 4, für4((4 * actualQuestion)), nenn1 ≟ 5, für5((4 * actualQuestion)), nenn1 ≟ 6, für6((4 * actualQuestion))) → zähl1
  79. If(nenn2 ≟ 2, 1, nenn2 ≟ 8, für8((4 * actualQuestion) + 1), nenn2 ≟ 3, für3((4 * actualQuestion) + 1), nenn2 ≟ 4, für4((4 * actualQuestion) + 1), nenn2 ≟ 5, für5((4 * actualQuestion) + 1), nenn2 ≟ 6, für6((4 * actualQuestion) + 1)) → zähl2
  80. If(nenn3 ≟ 2, 1, nenn3 ≟ 8, für8((4 * actualQuestion) + 2), nenn3 ≟ 3, für3((4 * actualQuestion) + 2), nenn3 ≟ 4, für4((4 * actualQuestion) + 2), nenn3 ≟ 5, für5((4 * actualQuestion) + 2), nenn3 ≟ 6, für6((4 * actualQuestion) + 2)) → zähl3
  81. If(nenn4 ≟ 2, 1, nenn4 ≟ 8, für8((4 * actualQuestion) + 3), nenn4 ≟ 3, für4((4 * actualQuestion) + 3), nenn4 ≟ 4, für4((4 * actualQuestion) + 3), nenn4 ≟ 5, für5((4 * actualQuestion) + 3), nenn4 ≟ 6, für6((4 * actualQuestion) + 3)) → zähl4
  82. If(questionCount ∈ {1, 2, 4, 5, 8, 9}, 1, 2) → questionType
  83. Textfield(inputNenn1) → inputBoxNenn1
  84. Textfield(inputNenn2) → inputBoxNenn2
  85. Textfield(inputNenn3) → inputBoxNenn3
  86. Textfield(inputNenn4) → inputBoxNenn4
  87. Textfield(inputNenn5) → inputBoxNenn5
  88. Textfield(inputZähl1) → inputBoxZähl1
  89. Textfield(inputZähl2) → inputBoxZähl2
  90. Textfield(inputZähl3) → inputBoxZähl3
  91. Textfield(inputZähl4) → inputBoxZähl4
  92. Textfield(inputZähl5) → inputBoxZähl5
  93. If(VZ1 ∈ {1, 2}, zähl1 / nenn1, ((-zähl1)) / nenn1) → val1
  94. If(VZ2 ∈ {1, 4}, zähl2 / nenn2, ((-zähl2)) / nenn2) → val2
  95. If(VZ3 ∈ {1, 4}, zähl3 / nenn3, ((-zähl3)) / nenn3) → val3
  96. If(VZ4 ∈ {1, 4}, zähl4 / nenn4, ((-zähl4)) / nenn4) → val4
  97. If(SelectedIndex[dropB0] ≟ 2, inputB1, SelectedIndex[dropB0] ≟ 3, (-inputB1)) → actualB1
  98. If(SelectedIndex[dropB1] ≟ 2, inputB2, SelectedIndex[dropB1] ≟ 3, (-inputB2)) → actualB2
  99. If(SelectedIndex[dropB2] ≟ 2, inputB3, SelectedIndex[dropB2] ≟ 3, (-inputB3)) → actualB3
  100. If(SelectedIndex[dropB3] ≟ 2, inputB4, SelectedIndex[dropB3] ≟ 3, (-inputB4)) → actualB4
  101. LCM(If[Defined[nenn4], {nenn1, nenn2, nenn3, nenn4}, Defined[nenn3], {nenn1, nenn2, nenn3}, {nenn1, nenn2}]) → kGV
  102. If(SelectedIndex[dropB4] ≟ 2, inputB5, SelectedIndex[dropB4] ≟ 3, (-inputB5)) → actualB5
  103. If(Defined[actualB5] ∧ validate, If[correctB5, If[attemptCount ≤ 1 ∧ ((¬Defined[actualB1]) ∨ correctBSet0) ∧ ((¬Defined[actualB2]) ∨ correctBSet1) ∧ ((¬Defined[actualB3]) ∨ correctBSet2) ∧ ((¬Defined[actualB4]) ∨ correctBSet3) ∨ If[Defined[actualB1], correctBSet0, true] ∧ If[Defined[actualB2], correctBSet1, true] ∧ If[Defined[actualB3], correctBSet2, true] ∧ If[Defined[actualB4], correctBSet3, true], true, false], true], false) → showLastPoly