Mixed Number and Fraction Division: Area Model Interactive Practice
Loading the math board and drawing, please wait…
① 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
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}}Element(randomFracPairs, Mod[countQuestion, Length[randomFracPairs]] + 1) → currentFracPairTextfield(input1) → InputBox1TextToUnicode(("" * InputBox1)) → inputUnicodeDenominator(fracA) → denARotate(Flatten[Sequence[Sequence[AnchorBStart + (A, (-B)), A, 0, boxWidth, divisionWidth], B, 0, boxWidth, divisionHeight]], ((1 - animateRotate) * pi / 2), RotateCenter) → allPointsBNumerator(fracB) → numerBRemoveUndefined(Sequence[If[Mod[A, denA + 1] ≠ 0, allPointsB(A)], A, 1, ((denA + 1) * numerB)]) → boxPointsBLength(boxPointsB) → maxCountBIf(animateControl < 1, animateControl, 1) → animateDivisionsADenominator(fracB) → denBFractionText(numB) → numBLatexIf(animateControl < 4, 0, If[animateControl ≥ 5, 1, animateControl - floor(animateControl)]) → animateMoveBIf(animateControl < 3, 0, animateControl < 3 + maxCountB, floor(animateControl) - 3, maxCountB) → currentCountBSequence(AnchorPhase2 + (A * (boxWidth / Denominator[numA], 0)), A, 0, numPiecesBPhase2 - 1) → anchorsPhase2If(animateControl < 4, 0, If[animateControl ≥ 4 + maxCountB, 1, animateControl - floor(animateControl)]) → animateCountBIf(animateControl < 5 + maxCountB, 0, If[animateControl > 5 + maxCountB + maxCountA, maxCountA, floor(animateControl) - 5 - maxCountB]) → currentCountAJoin({Sequence[AnchorA1 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1], Sequence[AnchorA2 + ((boxWidth / Denominator[numA] * A), 0), A, 0, Denominator[numA] - 1]}) → basePointsAZip(A + (0, boxHeight), A, basePointsA) → topPointsAJoin({Sequence[topPointsA(1) + (0, ((-divisionHeight) * A)), A, 0, denB], Sequence[topPointsA(denA + 1) + (0, ((-divisionHeight) * A)), A, 0, denB]}) → sidePointsAFlatten(Sequence[Sequence[(x(topPointsA(A)), y(sidePointsA(B))), B, 1, denB], A, 1, Length[basePointsA]]) → allAnchorDivisionsASequence(allPointsB(A), A, denA + 1, Length[allPointsB], denA + 1) → sideRightBSequence(allPointsB(A), A, 1, Length[allPointsB], denA + 1) → sideLeftBTake(allPointsB, 1, denA + 1) → topPointsBTake(allPointsB, Length[allPointsB] - denA) → basePointsBPolygon(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)}]) → borderBoxCorner(5) → layoutAppSizeonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetElement({If[layoutX ≟ 16, layoutX - 5, 11], layoutX - 5}, layoutCase) → layoutHintSolnXcornerBox(topPointsA(1), boxWidth, boxHeight) → wholePartAcornerBox(topPointsA(denA + 1), (boxWidth * fracA), boxHeight) → fracPartAPolygon({topPointsB(1), topPointsB(-1), sideRightB(numerB + 1), sideLeftB(numerB + 1)}) → fracPartBIf(animateControl < 1, 0, If[animateControl ≥ 2, 1, animateControl - 1]) → animateDivisionsBZip(Segment[A, A + (animateDivisionsA * (boxWidth, 0))], A, sidePointsA) → divisionBarsAZip(Segment[A, A + (0, boxWidth)], A, basePointsA) → verticalBarsAPolygon(cornersB) → frameBIf(animateControl < 5 + maxCountB, 0, If[animateControl ≥ animationLength, 1, animateControl - floor(animateControl)]) → animateCountFlatten(Sequence[Translate[anchorsPhase2, (0, (((-A) * 2) * divisionHeight))], A, 0, floor(ansVal)]) → allAnchorsPhase2cornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxASequence(cornerBox[allAnchorsPhase2(A), divisionWidth, divisionHeight], A, 1, (ceil(currentCountA / denAnswer) * denAnswer)) → displayFramescornerBox(allAnchorDivisionsA(currentCountA) + (animateCount * (allAnchorsPhase2(currentCountA) - allAnchorDivisionsA(currentCountA))), divisionWidth, divisionHeight) → moveBoxFrameZip(Segment[A, B], A, sideLeftB, B, sideRightB) → divisionBarsBZip(Segment[A, A + (animateDivisionsB * (B - A))], A, topPointsB, B, basePointsB) → verticalBarsBcornerBox(boxPointsB(currentCountB) + (If[currentCountB > denA, animateCountB, 0] * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxBSequence(If[A > currentCountB, boxPointsB(A), If[A < currentCountB, anchorsPhase2(A)]], A, 1, Length[boxPointsB]) → currentLocationsBZip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsB) → boxesBIf(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeASequence(If[A > currentCountA, allAnchorDivisionsA(A), If[A < currentCountA, allAnchorsPhase2(A)]], A, 1, maxCountA) → currentLocationsAZip(cornerBox[A, divisionWidth, divisionHeight], A, currentLocationsA) → boxesAcornerBox(boxPointsB(currentCountB) + (animateCountB * (anchorsPhase2(currentCountB) - boxPointsB(currentCountB))), divisionWidth, divisionHeight) → moveBoxBFrameText(numBLatex, AnchorB - (1, 0), true, true, 0, 0) → lblBhintIf(animateControl < 3, 0, If[animateControl ≥ 4, 1, animateControl - floor(animateControl)]) → animateFadeBText((("" * numALatex) * If[animateDivisionsA ≟ 1, (((("=\dfrac{" * numPiecesA) * "}{") * commonDen) * "}"), ""]), AnchorLabel, true, true, -1, 0) → hintNumAText((("" * numBLatex) * If[animateDivisionsB > 0, (((("=\dfrac{" * numPiecesBPhase2) * "}{") * commonDen) * "}"), ""]), AnchorLabel + (0, -6), true, true, -1, 0) → hintNumBIf(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.