Dividing Fractions
Loading the math board and drawing, please wait…
This example demonstrates how to perform fraction division, especially with unlike denominators, using GeoGebra. Through commands like RandomUniform, Take, If, PrimeFactors, GCD, Text, TextToUnicode, CountIf, Zip, Textfield, Polygon, Corner, Flatten, Sequence, Mod, Translate, Length, First, PartitionPoint, students can understand the principles of fraction division. Suitable for 4th to 5th grade students for practice.
GeoGebra Commands & Parameters
RandomUniform(0, 0.99, 200) → allRandoms, {0.2641672330294202, 0.5771217701168445, 0.7713426996768162, 0.12466409521532323, 0.9805709227149851, 0.513429117972684, 0.26509914662538225, 0.5510645083180115, 0.1960542177321791, 0.4064259136601884, 0.4385879710320415, 0.8005125009836908, 0.7079312495007495, 0.3443283948513142, 0.516299876868448, 0.7921221784608996, 0.059325325066750575, 0.2686705055935912, 0.30354686513260687, 0.5207102611026377, 0.5674191604433858, 0.39687523971144373, 0.39939814617871316, 0.4471197290733726, 0.8168278338282713, 0.26664272810559103, 0.47163518147245564, 0.0187593425864648, 0.7080462795725838, 0.9144681075734733, 0.32767660801471354, 0.6700694484470828, 0.16915629226795423, 0.1300066127890218, 0.7278752520669621, 0.39499713542645937, 0.37314691667070266, 0.4908445460494482, 0.06097857522094599, 0.4743752753665196, 0.02331048094177369, 0.22851471909952806, 0.02586924006831273, 0.5003469204194116, 0.14522096534582468, 0.9563113854533588, 0.02896685240351268, 0.7976631533311919, 0.7457837153908824, 0.3626140506125784, 0.852872897930659, 0.3278044848030568, 0.5677658844266223, 0.5300214926248208, 0.8189791224411063, 0.8864375083261401, 0.9520740097482704, 0.14062625645075166, 0.6548368608890324, 0.9177155688765247, 0.1798400569592478, 0.95122721881875, 0.9560970606283208, 0.40036849828250015, 0.05211016873757255, 0.04918154935082413, 0.2727830567771379, 0.4403990517541617, 0.20659957398794648, 0.0999397168119656, 0.28054650115780294, 0.09351461229713724, 0.028584952978718128, 0.5910860115626191, 0.18938271048595864, 0.2271702422595861, 0.6265507595278268, 0.2749242354511057, 0.6350456155320581, 0.11728543740279597, 0.20268743669885297, 0.08230222899830467, 0.18210394452455125, 0.11831919048441787, 0.3037606535612083, 0.1744609134683093, 0.7722183612267549, 0.1874492373424522, 0.7692270346865956, 0.8572226519093379, 0.40679568264328375, 0.36409874744621046, 0.26076745229476483, 0.2528006718398864, 0.4596905658804555, 0.16498994723314772, 0.440641074177587, 0.218915497116467, 0.20307493597154558, 0.8322766614036646, 0.505433277406455, 0.882746073189943, 0.2979855881613974, 0.8381184129748627, 0.5168782188596754, 0.1385228777369055, 0.07038518915242835, 0.40330709473431176, 0.8724813399041301, 0.7222866516252157, 0.8438368542015848, 0.9802424424093321, 0.22564998211336415, 0.6554909533058699, 0.6310924717293966, 0.6716755327615296, 0.7479598186922879, 0.9507186773920497, 0.9190345131678783, 0.8662004897082867, 0.10504246702613819, 0.5878114838175247, 0.564486795387072, 0.49947216601701033, 0.7123745120927875, 0.4971785868270106, 0.1824232822020228, 0.8965634146027522, 0.747980474407329, 0.6989547797365463, 0.69305574145517, 0.8857484328048, 0.47573245702272277, 0.3020203149068305, 0.40016873167537964, 0.06730939609550832, 0.31553624173540434, 0.7556736454115189, 0.8598977686365921, 0.2627113241081677, 0.5952388912464858, 0.24896573874095393, 0.09690919163142205, 0.25967622836216825, 0.4135750649054635, 0.9683579317615617, 0.24364203274478455, 0.17730992379925317, 0.8638894067297014, 0.37345825540621574, 0.2879105229856867, 0.7924960711069069, 0.474729645272561, 0.7331194210606679, 0.12474229578744431, 0.9742695016720081, 0.3856998391617848, 0.3801490343902821, 0.6298407942108183, 0.5968171254887685, 0.635195967064251, 0.7122868588451757, 0.44451175306205504, 0.01412697578772166, 0.6408158080594786, 0.6599454885985239, 0.22528214395677482, 0.870117005465513, 0.6733422304867572, 0.6774904648368916, 0.5557662597113623, 0.25732329031196516, 0.22124434187699576, 0.324552072148715, 0.7335971727528967, 0.32491243056850283, 0.6446233579312435, 0.6370162025999921, 0.9514430435668898, 0.6629066949819653, 0.8554493918940063, 0.8939326169848579, 0.7782666205405971, 0.14407004683596467, 0.18479352061394233, 0.14660882265301103, 0.03506186202729255, 0.4879022142206246, 0.03755400123045731, 0.7596242353977052, 0.5883160788674899, 0.36262289127700575, 0.6309081040214667, 0.850403848112918, 0.04439630201386007, 0.3209013289165719, 0.27439067459684763, 0.4443322438937494, 0.41894835434629163, 0.33339734347409117}Take(allRandoms, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsIf(testMode, testDen1, 3 + floor((currentRandomSeeds(1) * 7))) → randD1PrimeFactors(randD1) → factRandD1If(testMode, testDen2, countQuestion ≟ 0, randD2Start, 3 + floor((currentRandomSeeds(2) * 7)) ≟ randD1, randD1 - 1, 3 + floor((currentRandomSeeds(2) * 7))) → randD2PrimeFactors(randD2) → factRandD2If(randN2Start > randD2, {randD2 - 1}, PrimeFactors[randN2Start]) → randN2ListIf(Length[Remove[randN2List, factRandD2]] > 0, Remove[randN2List, factRandD2], {1}) → randN2FinalIf(testMode, testNum2, Sum[randN2Final]) → randN2If(randN1Start > randD1, {randD1 - 1}, PrimeFactors[randN1Start]) → randN1ListIf(Length[Remove[randN1List, factRandD1]] > 0, Remove[randN1List, factRandD1], {1}) → randN1FinalIf(testMode, testNum1, Sum[randN1Final]) → randN1GCD({solutionList(1), solutionList(2)}) → gcfSolutionText(input1, false) → textInputTextToUnicode(stringA) → studentCharsCountIf(n ≟ 47, n, studentChars) → divCountInputTextToUnicode(" 0123456789./()") → validCharsZip(UnicodeToLetter[n], n, TextToUnicode[textInput]) → listInputTextfield(input1) → InputBox1Polygon(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) → layoutAppSizeCorner(5) → DimsFlatten(Sequence[Sequence[Point[{Start3 + ((i * 5 / randD1), (j * 5 / randD2))}], i, 0, randD1 - 1], j, 0, randD2 - 1]) → modelAnimationPoints1Flatten(Sequence[Sequence[Point[{Start1 + ((i * 5 / randD1), (j * 5 / randD2))}], i, 0, randN1 - 1], j, 0, randD2 - 1]) → modelAnimationPoints2Zip(Distance[a, b], a, modelAnimationPoints1, b, modelAnimationPoints2) → modelAnimationDistanceSequence(Sum[First[modelAnimationDistance, n]] + animation2End, n, 1, Length[modelAnimationDistance]) → modelNumRangeSequence, {82.5, 98.83524648659389, 116.64987842528717}If(0 ≤ animationSlider < animation1bEnd, 0, animationSlider < animation1bEnd + animation2Range, animationSlider - animation1bEnd, animation2Range) → animation2SliderPolygon({Start1, Start1 + (((randN1 * 5)) / randD1, 0), Start1 + (((randN1 * 5)) / randD1, 5), Start1 + (0, 5)}) → frac1Sequence(Segment[Start2 + (0, (i * 5 / randD2)), Start2 + (5, (i * 5 / randD2))], i, 0, randD2 - 1) → modelParts2Sequence(Segment[Start1 + ((i * 5 / randD1), 0), Start1 + ((i * 5 / randD1), 5)], i, 0, randD1 - 1) → modelParts1Polygon({Start1, Start1 + (5, 0), Start1 + (5, 5), Start1 + (0, 5)}) → model1Polygon({Start2, Start2 + (5, 0), Start2 + (5, 5), Start2 + (0, 5)}) → model2Polygon({Start2, Start2 + (0, (randN2 * 5 / randD2)), Start2 + (5, (randN2 * 5 / randD2)), Start2 + (5, 0)}) → frac2Mod(solutionFinal(1), solutionFinal(2)) → numPartAnswerTranslate(modelParts1, Vector[Start1, Start2]) → modelCommonParts1Translate(modelParts2, Vector[Start2, Start1]) → modelCommonParts2Flatten(Sequence[Sequence[Polygon[{Start1 + ((i * 5 / randD1), (j * 5 / randD2)), Start1 + (((i + 1) * 5 / randD1), (j * 5 / randD2)), Start1 + (((i + 1) * 5 / randD1), ((j + 1) * 5 / randD2)), Start1 + ((i * 5 / randD1), ((j + 1) * 5 / randD2))}], i, 0, randN1 - 1], j, 0, randD2 - 1]) → modelAnimation1Length(modelAnimationPoints2) → numMaxSequence(If[a > 1, If[0 ≤ animationSlider ≤ modelNumRangeSequence(a - 1), 0, animationSlider < modelNumRangeSequence(a), animationSlider - modelNumRangeSequence(a - 1), modelAnimationDistance(a)], If[0 ≤ animationSlider ≤ animation2End + animation1bRange, 0, animationSlider < modelNumRangeSequence(a), animationSlider - (animation2End + animation1bRange), modelAnimationDistance(a)]], a, 1, Length[modelNumRangeSequence]) → modelNumAnimationSequenceZip(PartitionPoint[b, a, c, d], a, modelAnimationPoints1, b, modelAnimationPoints2, c, modelNumAnimationSequence, d, modelAnimationDistance) → modelAnimationPoints3Zip(Vector[a, b], a, modelAnimationPoints2, b, modelAnimationPoints3) → modelAnimationVectorsFirst(modelAnimation1, numMax) → modelAnimationStartZip(Translate[a, Vector[b]], a, modelAnimation1, Vector[b], modelAnimationVectors) → modelAnimationMoveCountIf(n > 0, n, modelNumAnimationSequence) → totalPartitionPoint(Start2, Start3, animation2Slider, animation2Range) → PointAnimation2MoveSequence(Segment[Start2 + ((i * 5 / randD1), 0), Start2 + ((i * 5 / randD1), (5 * randN2 / randD2))], i, 0, randD1) → modelParts1bIf(animationSlider < animation1bRange, animationSlider, animation1bRange) → animation1aSliderPartitionPoint(Start1, Start2, animation1aSlider, animation1bRange) → PointAnimation1aMoveTranslate(modelParts1, Vector[Start1, PointAnimation1aMove]) → modelAnimationParts1Zip(Vector[b, a], a, modelAnimationPoints1, b, modelAnimationPoints2) → translationVectorRangesFlatten({animation1bRange, animation2Range, modelNumRangeSequence}) → modelAllRangesIf(abs(animationSlider - animationRange) > 0.01, total - 1, total) → totalReducedIf(showCD, animation1bRange, 0) → animationSliderStartIf(0 ≤ animationSlider < animation1bRange, 0, animationSlider < (animation1bRange * 2), animationSlider - animation1bRange, animation1bRange) → animation1bSliderPartitionPoint(Start2, Start1, animation1bSlider, animation1bRange) → PointAnimation1bMoveTranslate(modelParts2, Vector[Start2, PointAnimation1bMove]) → modelAnimationParts2Sequence(Segment[Start2 + (0, (i * 5 / randD2)), Start2 + (5, (i * 5 / randD2))], i, 0, randN2) → modelParts2bTranslate({modelParts2b, modelParts1b}, Vector[Start2, PointAnimation2Move]) → modelParts2'If(showhint, If[showhinttypicalerror, 42 + 8 + 24 + 16 + 32, 42 + 8 + 24], 0) → yAddHint
AI Drawing Prompt Reference
Create a practice-style fraction-division scene with two adjacent 5×5 grid square containers. Use the grids to represent two fractions: highlight the cells corresponding to the first fraction’s numerator within its left container and highlight the cells corresponding to the second fraction’s numerator within its right container. Show a step-by-step sliding/transformation process where the grid is partitioned into small rectangular segments, and these segments move and overlap between the two containers to form a new combined subdivision that reflects the division setup. Keep a text input area and a visible result/result-placeholder region in the composition so students can enter values and read the outcome.
The prompt above was compiled from the original drawing commands and is for reference only.