魔法壶中的数学运算

魔法壶中的数学运算
几何画板及绘图内容加载中,请稍等……
2025-06-02 16:39
这个范例通过魔法壶演示了数学运算,涉及整数、自然数、加法、减法等核心概念。通过使用Sequence, Element, Textfield, Join等GeoGebra命令,可以构造出动态的数学问题。适合小学高年级至初中学生使用,帮助他们理解数学运算的实际应用。

GeoGebra 命令及参数

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {5, 2, 7, 8, 3, 6, 10, 7, 7, 6}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. 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
  5. 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
  6. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  7. Textfield(input031) → InputBox031
  8. Textfield(input032) → InputBox032
  9. Textfield(input041) → InputBox041
  10. Textfield(input042) → InputBox042
  11. SelectedIndex(dropdown031) → index031
  12. SelectedIndex(dropdown032) → index032
  13. SelectedIndex(dropdown041) → index041
  14. SelectedIndex(dropdown042) → index042
  15. Sequence(IsInRegion[AllPStones06(k), RegionZK(1)], k, 1, Length[AllPStones06]) → StoneInRegion06
  16. Ellipse(Midpoint[PointsAZK(1), PointsAZK(2)] + (sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2)), 0), Midpoint[PointsAZK(1), PointsAZK(2)] + ((-sqrt(Distance[PointsAZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2) - Distance[PointsBZK(2), Midpoint[PointsAZK(1), PointsAZK(2)]]^(2))), 0), Distance[PointsAZK(1), PointsAZK(2)] / 2) → ellZK
  17. Sequence(IsInRegion[AllPStones01(k), RegionZK(1)], k, 1, Length[AllPStones01]) → StoneInRegion01
  18. Sum(Sequence[If[StoneInRegion01(k), AllNumbersStones01(k), 0], k, 1, Length[AllNumbersStones01]]) → actualTemperature01
  19. Sum(Sequence[If[StoneInRegion06(k), AllNumbersStones06(k), 0], k, 1, Length[AllNumbersStones06]]) → actualTemperature06
  20. Sequence(IsInRegion[AllPStones07(k), RegionZK(1)], k, 1, Length[AllPStones07]) → StoneInRegion07
  21. Sum(Sequence[If[StoneInRegion07(k), AllNumbersStones07(k), 0], k, 1, Length[AllNumbersStones07]]) → actualTemperature07
  22. Sequence(IsInRegion[AllPStones08(k), RegionZK(1)], k, 1, Length[AllPStones08]) → StoneInRegion08
  23. Sum(Sequence[If[StoneInRegion08(k), AllNumbersStones08(k), 0], k, 1, Length[AllNumbersStones08]]) → actualTemperature08
  24. If(step < 6, actualTemperature01, step ≟ 6, actualTemperature06, step ≟ 7, actualTemperature07, actualTemperature08) → actualTemperature
  25. Sequence(((dimStoneA * cos(k°)), (dimStoneB * sin(k°))), k, 0, 360, 5) → PointStone
  26. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone011 > 0, "+", numberStone011 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone011)), (abs(numberStone011) * "")]) * "}}}"), PStone011 + (0, 0.05), false, true, 0, 0) → txtStone011
  27. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone012 > 0, "+", numberStone012 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone012)), (abs(numberStone012) * "")]) * "}}}"), PStone012 + (0, 0.05), false, true, 0, 0) → txtStone012
  28. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone013 > 0, "+", numberStone013 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone013)), (abs(numberStone013) * "")]) * "}}}"), PStone013 + (0, 0.05), false, true, 0, 0) → txtStone013
  29. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone014 > 0, "+", numberStone014 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone014)), (abs(numberStone014) * "")]) * "}}}"), PStone014 + (0, 0.05), false, true, 0, 0) → txtStone014
  30. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone015 > 0, "+", numberStone015 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone015)), (abs(numberStone015) * "")]) * "}}}"), PStone015 + (0, 0.05), false, true, 0, 0) → txtStone015
  31. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone016 > 0, "+", numberStone016 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone016)), (abs(numberStone016) * "")]) * "}}}"), PStone016 + (0, 0.05), false, true, 0, 0) → txtStone016
  32. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[2 > 0, "+", 2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(2)), "2"]) * "}}}"), PosStoneDeko011 + (0, 0.05), false, true, 0, 0) → txtStoneDeko011
  33. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-3 > 0, "+", -3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-3)), "3"]) * "}}}"), PosStoneDeko012 + (0, 0.05), false, true, 0, 0) → txtStoneDeko012
  34. Text((((("\textsf{\bold{" * If[actualTemperature > 0, "+", ""]) * "\(") * actualTemperature) * "\) °C}}"), PosDigitaleAnzeige + (0, 0.05), false, true, 0, 0) → txtDigitaleAnzeige
  35. If(step ≟ 2, activateNext02, true, step ≟ 3, correct031 ∧ correctdd031 ∧ correct032 ∧ correctdd032, step ≟ 4, correct041 ∧ correctdd041 ∧ correct042 ∧ correctdd042, step ≟ 6, actualTemperature06 ≟ 3, step ≟ 7, actualTemperature07 ≟ -2) → clickableBtnNext
  36. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone061 > 0, "+", numberStone061 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone061)), (abs(numberStone061) * "")]) * "}}}"), PStone061 + (0, 0.05), false, true, 0, 0) → txtStone061
  37. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone062 > 0, "+", numberStone062 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone062)), (abs(numberStone062) * "")]) * "}}}"), PStone062 + (0, 0.05), false, true, 0, 0) → txtStone062
  38. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone063 > 0, "+", numberStone063 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone063)), (abs(numberStone063) * "")]) * "}}}"), PStone063 + (0, 0.05), false, true, 0, 0) → txtStone063
  39. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone064 > 0, "+", numberStone064 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone064)), (abs(numberStone064) * "")]) * "}}}"), PStone064 + (0, 0.05), false, true, 0, 0) → txtStone064
  40. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone065 > 0, "+", numberStone065 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone065)), (abs(numberStone065) * "")]) * "}}}"), PStone065 + (0, 0.05), false, true, 0, 0) → txtStone065
  41. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone066 > 0, "+", numberStone066 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone066)), (abs(numberStone066) * "")]) * "}}}"), PStone066 + (0, 0.05), false, true, 0, 0) → txtStone066
  42. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-2 > 0, "+", -2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-2)), "2"]) * "}}}"), PosStoneDeko061 + (0, 0.05), false, true, 0, 0) → txtStoneDeko061
  43. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-4 > 0, "+", -4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-4)), "4"]) * "}}}"), PosStoneDeko062 + (0, 0.05), false, true, 0, 0) → txtStoneDeko062
  44. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[6 > 0, "+", 6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(6)), "6"]) * "}}}"), PosStoneDeko063 + (0, 0.05), false, true, 0, 0) → txtStoneDeko063
  45. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[8 > 0, "+", 8 ≟ 0, "\phantom{+}", "\(-\)"] * abs(8)), "8"]) * "}}}"), PosStoneDeko071 + (0, 0.05), false, true, 0, 0) → txtStoneDeko071
  46. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-6 > 0, "+", -6 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-6)), "6"]) * "}}}"), PosStoneDeko072 + (0, 0.05), false, true, 0, 0) → txtStoneDeko072
  47. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[3 > 0, "+", 3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(3)), "3"]) * "}}}"), PosStoneDeko073 + (0, 0.05), false, true, 0, 0) → txtStoneDeko073
  48. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-1 > 0, "+", -1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-1)), "1"]) * "}}}"), PosStoneDeko074 + (0, 0.05), false, true, 0, 0) → txtStoneDeko074
  49. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-2 > 0, "+", -2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-2)), "2"]) * "}}}"), PosStoneDeko075 + (0, 0.05), false, true, 0, 0) → txtStoneDeko075
  50. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[1 > 0, "+", 1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(1)), "1"]) * "}}}"), PosStoneDeko076 + (0, 0.05), false, true, 0, 0) → txtStoneDeko076
  51. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-3 > 0, "+", -3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-3)), "3"]) * "}}}"), PosStoneDeko077 + (0, 0.05), false, true, 0, 0) → txtStoneDeko077
  52. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-4 > 0, "+", -4 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-4)), "4"]) * "}}}"), PosStoneDeko081 + (0, 0.05), false, true, 0, 0) → txtStoneDeko081
  53. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[-3 > 0, "+", -3 ≟ 0, "\phantom{+}", "\(-\)"] * abs(-3)), "3"]) * "}}}"), PosStoneDeko082 + (0, 0.05), false, true, 0, 0) → txtStoneDeko082
  54. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone071 > 0, "+", numberStone071 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone071)), (abs(numberStone071) * "")]) * "}}}"), PStone071 + (0, 0.05), false, true, 0, 0) → txtStone071
  55. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone072 > 0, "+", numberStone072 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone072)), (abs(numberStone072) * "")]) * "}}}"), PStone072 + (0, 0.05), false, true, 0, 0) → txtStone072
  56. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone073 > 0, "+", numberStone073 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone073)), (abs(numberStone073) * "")]) * "}}}"), PStone073 + (0, 0.05), false, true, 0, 0) → txtStone073
  57. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone074 > 0, "+", numberStone074 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone074)), (abs(numberStone074) * "")]) * "}}}"), PStone074 + (0, 0.05), false, true, 0, 0) → txtStone074
  58. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone075 > 0, "+", numberStone075 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone075)), (abs(numberStone075) * "")]) * "}}}"), PStone075 + (0, 0.05), false, true, 0, 0) → txtStone075
  59. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone076 > 0, "+", numberStone076 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone076)), (abs(numberStone076) * "")]) * "}}}"), PStone076 + (0, 0.05), false, true, 0, 0) → txtStone076
  60. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone077 > 0, "+", numberStone077 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone077)), (abs(numberStone077) * "")]) * "}}}"), PStone077 + (0, 0.05), false, true, 0, 0) → txtStone077
  61. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone081 > 0, "+", numberStone081 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone081)), (abs(numberStone081) * "")]) * "}}}"), PStone081 + (0, 0.05), false, true, 0, 0) → txtStone081
  62. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone082 > 0, "+", numberStone082 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone082)), (abs(numberStone082) * "")]) * "}}}"), PStone082 + (0, 0.05), false, true, 0, 0) → txtStone082
  63. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone083 > 0, "+", numberStone083 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone083)), (abs(numberStone083) * "")]) * "}}}"), PStone083 + (0, 0.05), false, true, 0, 0) → txtStone083
  64. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone084 > 0, "+", numberStone084 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone084)), (abs(numberStone084) * "")]) * "}}}"), PStone084 + (0, 0.05), false, true, 0, 0) → txtStone084
  65. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone085 > 0, "+", numberStone085 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone085)), (abs(numberStone085) * "")]) * "}}}"), PStone085 + (0, 0.05), false, true, 0, 0) → txtStone085
  66. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[numberStone086 > 0, "+", numberStone086 ≟ 0, "\phantom{+}", "\(-\)"] * abs(numberStone086)), (abs(numberStone086) * "")]) * "}}}"), PStone086 + (0, 0.05), false, true, 0, 0) → txtStone086
  67. If(step ≟ 6, ¬(PStone061 ≟ PointZKStones(1) ∧ PStone062 ≟ PointZKStones(2) ∧ PStone063 ≟ PointZKStones(3) ∧ PStone064 ≟ PointParkedStones(1) ∧ PStone065 ≟ PointParkedStones(2) ∧ PStone066 ≟ PointParkedStones(3)), step ≟ 7, ¬(PStone071 ≟ PointZKStones(1) ∧ PStone072 ≟ PointZKStones(2) ∧ PStone073 ≟ PointZKStones(3) ∧ PStone074 ≟ PointParkedStones(1) ∧ PStone075 ≟ PointParkedStones(2) ∧ PStone076 ≟ PointParkedStones(3) ∧ PStone077 ≟ PointParkedStones(4)), step ≟ 8, ¬(PStone081 ≟ PointZKStones(1) ∧ PStone082 ≟ PointZKStones(2) ∧ PStone083 ≟ PointZKStones(3) ∧ PStone084 ≟ PointParkedStones(1) ∧ PStone085 ≟ PointParkedStones(2) ∧ PStone086 ≟ PointParkedStones(3)), true) → clickableBtnResetTask
  68. Text("\bold{\textsf{Zieh mich!}}", PosZK2 + (-1.25, -0.25), false, true, 0, 0) → CapZiehMich2
  69. Text("\bold{\textsf{Zieh mich!}}", PointParkedStones(1) + (-2.5, 0.75), false, true, 0, 0) → CapZiehMich1
  70. Segment(Midpoint[Corner[CapZiehMich1, 1], Corner[CapZiehMich1, 2]], PointParkedStones(1) + ((-dimStoneA) - 0.25, 0)) → segZiehMich1
  71. Segment(Midpoint[Corner[CapZiehMich2, 4], Corner[CapZiehMich2, 3]], Midpoint[Corner[CapZiehMich2, 4], Corner[CapZiehMich2, 3]] + (0.65 * Vector[Midpoint[Corner[CapZiehMich2, 4], Corner[CapZiehMich2, 3]], PointZKStones(3) + (0, 0)])) → segZiehMich2
  72. If(step ≟ 3 ∧ (¬correct031) ∨ step ≟ 4 ∧ (¬correct041), (3.75, 8), (3.75, 6)) → PosShowSolution
  73. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[1 > 0, "+", 1 ≟ 0, "\phantom{+}", "\(-\)"] * abs(1)), "1"]) * "}}}"), PosStoneDeko083 + (0, 0.05), false, true, 0, 0) → txtStoneDeko083
  74. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[2 > 0, "+", 2 ≟ 0, "\phantom{+}", "\(-\)"] * abs(2)), "2"]) * "}}}"), PosStoneDeko064 + (0, 0.05), false, true, 0, 0) → txtStoneDeko064
  75. Text((("\textsf{\bold{\textcolor{white}{" * If[showMinusStone, (If[8 > 0, "+", 8 ≟ 0, "\phantom{+}", "\(-\)"] * abs(8)), "8"]) * "}}}"), PosStoneDeko065 + (0, 0.05), false, true, 0, 0) → txtStoneDeko065
  76. Sequence(PointsThermoEnd(1) + (k * (0, Distance[PointsThermoEnd(1), PointsThermoEnd(2)] / (thermoEnd - thermoStart))), k, 0, thermoEnd - thermoStart, 1) → PointsThermo
  77. RemoveUndefined(Sequence[If[Mod[TemperatureList(k), thermoStepMark] ≟ 0, Segment[PointsThermo(k) + (((-segLengthThermo)) / 2, 0), PointsThermo(k) + (segLengthThermo / 2, 0)]], k, 1, Length[PointsThermo]]) → segMarkThermo
  78. RemoveUndefined(Sequence[If[Mod[TemperatureList(k), thermoStepCap] ≟ 0, Text[((("\textsf{\(" * If[TemperatureList(k) > 0, "+", ""]) * TemperatureList(k)) * "\)}"), PointsThermo(k) + ((6 / 5 * segLengthThermo), 0.05), false, true, 0, 0]], k, 1, Length[PointsThermo]]) → CapThermo
  79. Text(((("\textsf{\bold{\(" * If[actualTemperature > 0, "+", ""]) * actualTemperature) * "\)}}"), PointsThermo(IndexOf[actualTemperature, TemperatureList]) + ((-6 / 5 * segLengthThermo), 0.05), false, true, 0, 0) → CapActualTemperature