FLINKe Abfahrt: Dynamic Demonstration of Integer Subtraction

FLINKe Abfahrt: Dynamic Demonstration of Integer Subtraction
Loading the math board and drawing, please wait…
2025-04-29 01:31
This example demonstrates integer subtraction through GeoGebra animation, highlighting the concept of subtraction operations. Key mathematical concepts include integer subtraction rules, negative number handling, and number line representation. Construction involves using commands like Shuffle, Join, and Midpoint to build subtraction models, with animations showing the subtraction process. Suitabl

GeoGebra Commands & Parameters

  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