FLINKe Abfahrt:整数减法运算的动态演示

FLINKe Abfahrt:整数减法运算的动态演示
几何画板及绘图内容加载中,请稍等……
2025-04-29 01:31
本范例通过GeoGebra动态演示整数减法运算过程,展示减法运算的直观性。核心数学概念为整数减法运算,涉及减法运算规则、负数处理及数轴表示。作图要点包括使用Shuffle、Join、Midpoint等GeoGebra命令构建减法模型,通过动画展示减法过程。适合小学7-8年级学生用于理解减法运算,适用于课堂教学和自主学习。

GeoGebra 命令及参数

  1. Shuffle(Sequence[Random[-20, 5], i, 1, 100]) → randomNosForX, {-3, 1, 4, -17, -7, -19, -7, -14, 1, -10, -4, -18, -11, -6, -3, 1, -18, -12, -17, -13, -17, -6, -12, -5, -1, 3, 2, -10, -20, 3, 1, -8, -14, -18, -8, 5, -1, -1, -4, -6, -16, -19, -5, -18, 5, -8, 0, -3, 0, -19, -20, -19, -5, -18, -1, -7, -18, -20, -11, -17, -6, -19, -4, -5, -4, -17, -17, -4, -14, 5, -11, 4, -10, 4, -6, -1, 4, -9, 2, -4, -3, -9, 3, -1, -20, -14, -12, -14, -20, -7, -15, -19, 4, 5, -1, -5, -13, 3, -2, 3}
  2. Shuffle(Sequence[Random[1, 20], i, 1, 100]) → randomNosForY, {2, 5, 6, 12, 14, 1, 11, 5, 3, 20, 2, 11, 4, 8, 10, 2, 10, 9, 4, 12, 5, 8, 17, 5, 7, 20, 9, 3, 9, 16, 18, 7, 10, 16, 17, 12, 11, 16, 7, 3, 18, 4, 18, 19, 3, 8, 13, 17, 16, 11, 18, 19, 14, 15, 20, 11, 11, 11, 11, 13, 12, 1, 16, 9, 16, 3, 4, 19, 16, 5, 2, 18, 14, 4, 7, 20, 16, 3, 11, 12, 19, 4, 17, 2, 11, 6, 13, 20, 11, 10, 17, 12, 3, 1, 8, 6, 12, 20, 10, 19}
  3. Join(Sequence[Shuffle[Sequence[0, 1]], m, 1, 100]) → listMinus
  4. Zip(If[m ≟ 0, a - b, a + b], m, listMinus, a, randomNosForX, b, randomNosForY) → listRandomFalseOption1
  5. Join(Sequence[Shuffle[{-1, 1, 2, -2}], m, 1, 100]) → listRandomFalseOption2Difference
  6. Zip(m + (If[minus ≟ 1, -1, 1] * n) + a, m, randomNosForX, n, randomNosForY, a, listRandomFalseOption2Difference) → listRandomFalseOption2
  7. Midpoint(PLeftOriginal, PRightOriginal) → PMitteOriginal
  8. Distance(PMitteOriginal, PLeftOriginal) → absMitte
  9. If(part < 3, Max[absMinFaktor, animR], animR) → animRtrue
  10. If(part < 3, Max[absMinFaktor, animL], animL) → animLtrue
  11. Shuffle(Join[{Sequence[1, m, 1, 60], Sequence[2, m, 1, 60]}]) → listCorrect, {1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 1, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2}
  12. If(part ≟ 1, PMitteOriginal, PMitteOriginal + ((animMR * (maxR - absMinFaktor)), 0)) → PMitteRightAnim
  13. If(part ≟ 3, inputCorrectBefore, inputCorrect) → inputCorrectCurrent
  14. If(part ≟ 1, PMitteOriginal, PMitteOriginal + ((animML * (maxL - absMinFaktor)), 0)) → PMitteLeftAnim
  15. Point(listOptions) → P
  16. IndexOf(P, listOptions) → input1
  17. If(part ≟ 1, P1, P2 + (0, (-height))) → B2a
  18. Textfield(input1) → Eingabefeld1
  19. Textfield(input2) → Eingabefeld2
  20. Element(randomNosForX, Mod[taskCount, 100] + 1) → numX
  21. Element(randomNosForY, Mod[taskCount, 100] + 1) → numY
  22. Append(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayX
  23. Append(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayY
  24. Remove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeat
  25. Remove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeat
  26. Element(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeat
  27. Element(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeat
  28. Defined((input1 * input2)) → fixed
  29. If(part ≟ 3, P3, P1 + (0, (-height))) → B1a
  30. If(part ≟ 2, P2, P3 + (0, (-height))) → B3a
  31. If(part ≟ 1, PMitteOriginal, Element[{PMitteRightAnim, PMitteLeftAnim}, inputCorrectCurrent]) → PMitteAnim
  32. If(part ≟ 1, PLeftOriginal, PMitteOriginal + ((animLtrue * maxL), 0)) → PLeftAnim
  33. If(part ≟ 1, PRightOriginal, PMitteOriginal + ((animRtrue * maxR), 0)) → PRightAnim
  34. If(minus ≟ 1, numX - numY, numX + numY) → sol
  35. Join(Sequence[Shuffle[{1, 2, 3, 3}], m, 1, 80]) → listRandomFalseOptions
  36. Element({POpt1, POpt2}, inputCorrect) → PCorrect
  37. If(inputCorrect ≟ 1, POpt2, POpt1) → PFalse
  38. Sequence(PCounter + ((m * sizemann), 0), m, 0, 2) → listPointsCounter
  39. Point(Line[A, xAxis]) → B
  40. If(inputCorrectCurrent ≟ 2, GO1left, GO1right) → GO1
  41. Spline({FlockeAnimStart, FlockeAnimMid, FlockeAnimEnd}, 3) → a
  42. Point(a, anim4) → FlockeAnimPos
  43. CircleArc(KreisFix3, KreisFix1, KreisFix2) → c_{1}
  44. Point(c_{1}) → F
  45. Circle(KreisFix1, KreisFix2, F) → d
  46. Angle(KreisFix1, KreisFix3, KreisFix2) → α
  47. Point(d) → KreisTachoStart
  48. Rotate(KreisTachoStart, (-180° * speedrel), KreisFix3) → KreisDyn1
  49. Rotate(KreisDyn1, α, KreisFix3) → KreisDyn2
  50. Point(d) → KreisTachoEnd
  51. Circle(FlockeAnimPos, sizeFlocke) → FlockeAnimBox
  52. Rotate(FlockeAnimPos + (0, (-sizeFlocke)), (-99.94°) / 2 + (360° * anim4), FlockeAnimPos) → FlockeAnimIMG1
  53. Rotate(FlockeAnimIMG1, 99.94°, FlockeAnimPos) → FlockeAnimIMG2
  54. Rotate(FlockeAnimEnd + (0, (-sizeFlocke)), (-99.94°) / 2, FlockeAnimEnd) → FlockeFixIMG1
  55. Rotate(FlockeFixIMG1, 99.94°, FlockeAnimEnd) → FlockeFixIMG2
  56. Text(textCountCorrect, PosCounterTxt, false, true, 0, 0) → CounterTxt
  57. Rotate(FlockeHighscorePos + (0, (-sizeFlocke)), (-99.94°) / 2, FlockeHighscorePos) → FlockeHighscoreIMG1
  58. Rotate(FlockeHighscoreIMG1, 99.94°, FlockeHighscorePos) → FlockeHighscoreIMG2
  59. Circle(HighscoreAnimCenter, sizeHighscoreAnim1) → CircHighscoreAnim1
  60. Circle(HighscoreAnimCenter, sizeHighscoreAnim2) → CircHighscoreAnim2
  61. Rotate(HighscoreAnimCenter + (0, sizeHighscoreAnim1), (-360° * anim5), HighscoreAnimCenter) → HighscoreAnimAnchor
  62. Sequence(Rotate[HighscoreAnimAnchor, (360° * i / 8), HighscoreAnimCenter], i, 0, 7) → HighscoreAnimPL1
  63. Rotate(HighscoreAnimCenter + (0, sizeHighscoreAnim2), (-360° * anim5), HighscoreAnimCenter) → HighscoreAnimAnchor2
  64. Sequence(Rotate[HighscoreAnimAnchor2, (360° * i / 8) + (360°) / 16, HighscoreAnimCenter], i, 0, 7) → HighscoreAnimPL2
  65. Sequence(If[Mod[i, 2] ≟ 0, HighscoreAnimPL1(floor(i / 2)), HighscoreAnimPL2(floor(i / 2))], i, 2, 17) → HighscoreAnimPLMaster
  66. Polygon(HighscoreAnimPLMaster) → Vieleck1
  67. SpeechBubbleRight(POSSpeechBubble1, 7.5, 1.8) → SpeechBubble1
  68. Text(correctText, POScorrectTextReal, false, true, 0, 0) → correctTextReal
  69. If(end ∧ lap > 1 ∧ showButtonNochmal ∧ correctCount ≤ highscore, Text11, end ∧ lap > 1 ∧ showButtonNochmal ∧ correctCount > highscore, Text10, Text6) → TextMasterOutline
  70. If(left, PosSpeechEnd1 + (0, dfCone), PosSpeechEnd2 + (0, dfCone)) → PosSpeechEnd5
  71. If(left, PosSpeechEnd1 + (dfCone, 0), PosSpeechEnd2 + ((-dfCone), 0)) → PosSpeechEnd6
  72. If(left, {PolyLine[{POSSpeechBubbleEndL, PosSpeechEnd6, PosSpeechEnd2, PosSpeechEnd3, PosSpeechEnd4, PosSpeechEnd5, POSSpeechBubbleEndL}]}, {PolyLine[{POSSpeechBubbleEndR, PosSpeechEnd6, PosSpeechEnd1, PosSpeechEnd4, PosSpeechEnd3, PosSpeechEnd5, POSSpeechBubbleEndR}]}) → SpeechBubbleEnd
  73. If(left, {Polygon[{POSSpeechBubbleEndL, PosSpeechEnd6, PosSpeechEnd2, PosSpeechEnd3, PosSpeechEnd4, PosSpeechEnd5, POSSpeechBubbleEndL}]}, {Polygon[{POSSpeechBubbleEndR, PosSpeechEnd6, PosSpeechEnd1, PosSpeechEnd4, PosSpeechEnd3, PosSpeechEnd5, POSSpeechBubbleEndR}]}) → SpeechBubbleEndArea
  74. Corner(TextEndAbstandFlocke1, 2) → HelperAbstandFlocke1
  75. Corner(TextEndAbstandFlocke2, 2) → HelperAbstandFlocke2
  76. If(left, EndTxtPosL, EndTxtPosR) → EndTxtMaster
  77. Corner(TextEndAbstandFlocke3, 2) → HelperAbstandFlocke3
  78. Corner(TextEndAbstandFlocke4, 2) → HelperAbstandFlocke4
  79. Text((("$\textsf{" * highscore) * "}$"), FlockeHighscorePos + (1, 0), false, true, 0, 0) → Text7
  80. Text("$\textsf{HIGHSCORE}$", FlockeHighscorePos + (1.4, 0), false, true, 1, 0) → Text8
  81. Text("$\textsf{SCORE}$", FlockeAnimEnd - (1.7, 0), false, true, -1, 0) → Text9