Mixed Number and Fraction Division: Area Model Interactive Practice

Mixed Number and Fraction Division: Area Model Interactive Practice
Loading the math board and drawing, please wait…
2023-04-12 05:46
① This GeoGebra activity demonstrates division of fractions and mixed numbers using area models, allowing students to interactively explore the process. ② Core math concepts include fraction division, conversion between mixed numbers and improper fractions, the inverse relationship between multiplication and division, and representing parts of a whole with area models. ③ Construction highlights: uses GeoGebra commands such as Shuffle, Element, Textfield, TextToUnicode, Denominator, Numerator, FractionText, Sequence, Zip, Flatten, Polygon, Corner, and others to generate random fraction pairs, animate rotation and movement, and provide input boxes and text displays for interactive practice. ④ Suitable for grades 6-8, this resource is ideal for classroom demonstration or self-paced learning, helping students grasp the geometric meaning of fraction division. A Spanish translation is available.

GeoGebra Commands & Parameters

  1. Shuffle({{1 / 2, 2 / 3}, {1 / 2, 2 / 5}, {1 / 2, 3 / 5}, {1 / 4, 2 / 3}, {1 / 4, 2 / 5}, {1 / 4, 3 / 5}, {3 / 4, 4 / 5}, {3 / 4, 3 / 5}, {1 / 3, 3 / 4}, {1 / 3, 3 / 5}, {1 / 3, 2 / 5}}) → randomFracPairs, {{0.5, 0.4}, {0.25, 0.6}, {0.25, 0.6666666666666666}, {0.3333333333333333, 0.4}, {0.3333333333333333, 0.6}, {0.75, 0.8}, {0.75, 0.6}, {0.5, 0.6}, {0.3333333333333333, 0.75}, {0.25, 0.4}, {0.5, 0.6666666666666666}}
  2. Element(randomFracPairs, Mod[countQuestion, Length[randomFracPairs]] + 1) → currentFracPair
  3. Textfield(input1) → InputBox1
  4. TextToUnicode(("" * InputBox1)) → inputUnicode
  5. Denominator(fracA) → denA
  6. Rotate(Flatten[Sequence[Sequence[AnchorBStart + (A, (-B)), A, 0, boxWidth, divisionWidth], B, 0, boxWidth, divisionHeight]], ((1 - animateRotate) * pi / 2), RotateCenter) → allPointsB
  7. Numerator(fracB) → numerB
  8. RemoveUndefined(Sequence[If[Mod[A, denA + 1] ≠ 0, allPointsB(A)], A, 1, ((denA + 1) * numerB)]) → boxPointsB
  9. Length(boxPointsB) → maxCountB
  10. If(animateControl < 1, animateControl, 1) → animateDivisionsA
  11. Denominator(fracB) → denB
  12. FractionText(numB) → numBLatex
  13. If(animateControl < 4, 0, If[animateControl ≥ 5, 1, animateControl - floor(animateControl)]) → animateMoveB
  14. If(animateControl < 3, 0, animateControl < 3 + maxCountB, floor(animateControl) - 3, maxCountB) → currentCountB
  15. Sequence(AnchorPhase2 + (A * (boxWidth / Denominator[numA], 0)), A, 0, numPiecesBPhase2 - 1) → anchorsPhase2
  16. If(animateControl < 4, 0, If[animateControl ≥ 4 + maxCountB, 1, animateControl - floor(animateControl)]) → animateCountB
  17. If(animateControl < 5 + maxCountB, 0, If[animateControl > 5 + maxCountB + maxCountA, maxCountA, floor(animateControl) - 5 - maxCountB]) → currentCountA
  18. Join({Sequence[AnchorA1 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1], Sequence[AnchorA2 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1]}) → basePointsA
  19. Zip(A + (0, boxHeight), A, basePointsA) → topPointsA
  20. Join({Sequence[topPointsA(1) + (0, ((-divisionHeight) * A)), A, 0, denB], Sequence[topPointsA(denA + 1) + (0, ((-divisionHeight) * A)), A, 0, denB]}) → sidePointsA
  21. Flatten(Sequence[Sequence[(x(topPointsA(A)), y(sidePointsA(B))), B, 1, denB], A, 1, Length[basePointsA]]) → allAnchorDivisionsA
  22. Sequence(allPointsB(A), A, denA + 1, Length[allPointsB], denA + 1) → sideRightB
  23. Sequence(allPointsB(A), A, 1, Length[allPointsB], denA + 1) → sideLeftB
  24. Take(allPointsB, 1, denA + 1) → topPointsB
  25. Take(allPointsB, Length[allPointsB] - denA) → basePointsB
  26. Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBox
  27. Corner(5) → layoutAppSize
  28. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  29. Element({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase) → layoutHintSolnX
  30. cornerBox(topPointsA(1), boxWidth, boxHeight) → wholePartA
  31. cornerBox(topPointsA(denA + 1), (boxWidth * fracA), boxHeight) → fracPartA
  32. Polygon({topPointsB(1), topPointsB(-1), sideRightB(numerB + 1), sideLeftB(numerB + 1)}) → fracPartB
  33. If(animateControl < 1, 0, If[animateControl ≥ 2, 1, animateControl - 1]) → animateDivisionsB
  34. Zip(Segment[A, A + (animateDivisionsA * (boxWidth, 0))], A, sidePointsA) → divisionBarsA
  35. Zip(Segment[A, A + (0, boxWidth)], A, basePointsA) → verticalBarsA
  36. Polygon(cornersB) → frameB
  37. If(animateControl < 5 + maxCountB, 0, If[animateControl ≥ animationLength, 1, animateControl - floor(animateControl)]) → animateCount
  38. Flatten(Sequence[Translate[anchorsPhase2, (0, (((-A) * 2) * divisionHeight))], A, 0, floor(ansVal)]) → allAnchorsPhase2
  39. cornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxA
  40. Sequence(cornerBox[allAnchorsPhase2(A), divisionWidth, divisionHeight], A, 1, (ceil(currentCountA / denAnswer) * denAnswer)) → displayFrames
  41. cornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxFrame
  42. Zip(Segment[A, B], A, sideLeftB, B, sideRightB) → divisionBarsB
  43. Zip(Segment[A, A + (animateDivisionsB * (B - A))], A, topPointsB, B, basePointsB) → verticalBarsB
  44. cornerBox(boxPointsB(currentCountB) + (If[currentCountB > denA, animateCountB, 0] * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxB
  45. Sequence(If[A > currentCountB, boxPointsB(A), If[A < currentCountB, anchorsPhase2(A)]], A, 1, Length[boxPointsB]) → currentLocationsB
  46. Zip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsB) → boxesB
  47. If(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeA
  48. Sequence(If[A > currentCountA, allAnchorDivisionsA(A), If[A < currentCountA, allAnchorsPhase2(A)]], A, 1, maxCountA) → currentLocationsA
  49. Zip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsA) → boxesA
  50. cornerBox(boxPointsB(currentCountB) + (animateCountB * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxBFrame
  51. Text(numBLatex, AnchorB - (1, 0), true, true, 0, 0) → lblBhint
  52. If(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeB
  53. Text((("" * numALatex) * If[animateDivisionsA ≟ 1, (((("=\dfrac{" * numPiecesA) * "}{") * commonDen) * "}"), ""]), AnchorLabel, true, true, -1, 0) → hintNumA
  54. Text((("" * numBLatex) * If[animateDivisionsB > 0, (((("=\dfrac{" * numPiecesBPhase2) * "}{") * commonDen) * "}"), ""]), AnchorLabel + (0, -6), true, true, -1, 0) → hintNumB
  55. If(animateControl < 4 + maxCountB, 0, If[animateControl ≥ 5 + maxCountB, 1, animateControl - floor(animateControl)]) → animateFadeBoxesB

AI Drawing Prompt Reference

Create an interactive area model for fraction division, showing how to divide mixed numbers and fractions using shapes. Draw a rectangle to represent the dividend, then split it into parts according to the divisor, with animations demonstrating the division and movement process. Include input boxes for users to enter fractions, generate random fraction pairs dynamically, and distinguish integer and fractional parts with different colors.
The prompt above was compiled from the original drawing commands and is for reference only.