环游世界 - 有理数加减法

环游世界 - 有理数加减法
几何画板及绘图内容加载中,请稍等……
2026-02-18 20:36
本范例通过环游世界的主题,演示有理数的加减法。核心数学概念包括有理数的运算。使用了GeoGebra中的Corner, Point, Vector, CountIf, Join, Textfield, Split, If, Element, Text, ParseToNumber, Sequence, LCM等命令。适合初中及以上学生学习有理数运算。

GeoGebra 命令及参数

  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