Creating Division Equations Using Visual Models

Creating Division Equations Using Visual Models
Loading the math board and drawing, please wait…
2023-05-31 10:16
This example demonstrates how to use visual models to represent division equations in GeoGebra. It covers concepts like division, multiplication relationships, rectangular arrays, and repeated subtraction. Construction involves GeoGebra commands such as RandomUniform, Take, Div, and others. Suitable for elementary students in grades 4-5 for classroom practice and mathematical modeling.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.00010358792919176629, 0.5763129804815318, 0.8579680495863534, 0.8669610996591123, 0.6497778491677686, 0.4542326842314304, 0.9522006290551609, 0.6450257673839399, 0.16414292714532872, 0.8148194471015536, 0.7398456708527104, 0.2796449400328511, 0.6247898425194753, 0.6238602819302576, 0.4869770206704812, 0.693386218287779, 0.5363679320873327, 0.8770906153212628, 0.2295386269824167, 0.9439621202962344, 0.12626410299574303, 0.8840171358117849, 0.5546784919266152, 0.4273108314904029, 0.3078928299267363, 0.4435870664581935, 0.782075927101162, 0.08296239272064154, 0.8847153586699644, 0.14339981489834436, 0.8363605472508391, 0.7487334910532429, 0.9549877391124951, 0.8516480515703931, 0.04319587813392271, 0.2816279655523674, 0.034806074021111126, 0.8306525998527355, 0.4027626125379253, 0.3788417916391469, 0.06927263065184737, 0.5227206836708859, 0.23522612541696217, 0.6869798065724453, 0.408550241240409, 0.45311008334676367, 0.503310253759479, 0.5789887620136758, 0.5772029307952519, 0.021121802527910356, 0.017323290378474823, 0.3968942658102572, 0.06153947580387514, 0.9487715527667578, 0.3678951559647002, 0.9242015068482912, 0.47068216976162797, 0.7071057914839506, 0.5912834074621797, 0.7847783346463393, 0.032776498243662425, 0.6130306135589041, 0.5813936536307122, 0.2251853514435457, 0.6881381617350747, 0.004511939209762918, 0.6416338793352746, 0.6847523933052072, 0.2862026809713579, 0.9491835742138655, 0.12838487254732664, 0.11222187114833826, 0.7228980986410677, 0.41076454468959717, 0.48621805666608814, 0.3894881812637013, 0.5595050150009488, 0.6492398667916558, 0.18302947334840167, 0.1318594122215752, 0.29319903555723803, 0.12449958701213262, 0.4209832721539594, 0.9603512335076417, 0.32328882874908554, 0.6390580756187615, 0.24656973970344712, 0.18479431626257684, 0.9056692609078512, 0.7335910918786538, 0.2701833097034122, 0.44699570156416035, 0.22120191617942264, 0.8093310177081983, 0.20241215617920613, 0.6408412853068504, 0.401616712125876, 0.3338505664624254, 0.47070632282702407, 0.7410599244896029, 0.6790962368189469, 0.9814431156111317, 0.3262532556652385, 0.6143916676713274, 0.552960468385221, 0.09617327624929656, 0.31673885124569057, 0.42611172351906074, 0.5488130735713935, 0.09472374966121755, 0.4462098002364153, 0.081257548440079, 0.5021409278814174, 0.07740463960452261, 0.12847728169405068, 0.7134912913604151, 0.8796773609150941, 0.7191199409614113, 0.6854140974745718, 0.8753006385807741, 0.5678449151694989, 0.9076999014816272, 0.49609739452369916, 0.32120048018923414, 0.34828744559017444, 0.5048117496553366, 0.5270355382504537, 0.8607440604890635, 0.5958815399435206, 0.5146510774975465, 0.9076930839493342, 0.9404866322421719, 0.8046861030035674, 0.9377937914654876, 0.11918919486857851, 0.5735654559933963, 0.05204472084310672, 0.04195408637941067, 0.31739503367588734, 0.6322697496891351, 0.06049851825114723, 0.6579464561943696, 0.06469235166997661, 0.29287009732735986, 0.371298394825488, 0.697889848101036, 0.4773804578800081, 0.2630610665450439, 0.7721236524475128, 0.2436202385469339, 0.14813025693599705, 0.40064221319588234, 0.42512020029514275, 0.24639259763784854, 0.23498477042077198, 0.8175217381646304, 0.16956434183505711, 0.07425643304704072, 0.6701913264696349, 0.3157731440577116, 0.9663397356663311, 0.08097891874354295, 0.9236261373554165, 0.3623099987480169, 0.8689826757561241, 0.850067846816776, 0.4067337441682235, 0.4457644723658412, 0.498307365952503, 0.40931103534411845, 0.6537536944981484, 0.673365067212106, 0.09456600833596555, 0.7553029073846289, 0.3075433137841319, 0.9570049410423151, 0.902729066843661, 0.9236675035249275, 0.10753076127764101, 0.12627652803533904, 0.02278999506272733, 0.32911651687228577, 0.517244322785442, 0.3220194018180519, 0.818004038601364, 0.8200950703646984, 0.11846341219500592, 0.18688747480692783, 0.03966444430059008, 0.6155711846236216, 0.32832403224894935, 0.809588156773561, 0.5474002325569375, 0.19651504174618722, 0.2746860248047686, 0.6167797226518557, 0.25904768894733876, 0.21179185601031603, 0.03373160218381409, 0.6111352666345558}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. Element(Remove[{3, 4, 5, 6, 7, 8, 9}, {currentQuotient}], 1 + floor((currentRandomSeeds(2) * 6))) → currentDivisor
  4. Take(studentInput, 1, IndexOf[cEQUAL, studentInput] - 1) → Part1
  5. Take(studentInput, IndexOf[cEQUAL, studentInput] + 1) → Part2
  6. If(Defined[IndexOf[cDIVIDE, Part1]], Part1, Part2) → divPart
  7. Take(divPart, IndexOf[cDIVIDE, divPart] + 1) → divisorPart
  8. If(Defined[IndexOf[cDIVIDE, Part1]], Part2, Part1) → quotientPart
  9. Zip(If[A ≟ cDIVIDE, "\div", If[A ≟ cEQUAL, "=", ("" * A)]], A, studentInput) → studentChars
  10. listToValue(quotientPart) → studentQuotient
  11. listToValue(divisorPart) → studentDivisor
  12. Take(divPart, 1, IndexOf[cDIVIDE, divPart] - 1) → dividendPart
  13. listToValue(dividendPart) → studentDividend
  14. Div(currentDivisor, 5) → numWholeTally
  15. Corner(5) → layoutAppSize
  16. Sequence(A, A, 0, lineLength, jumpSize) → numberPos
  17. Rotate(PolyLine[AnchorNumberLine + (-0.3, 0.5), AnchorNumberLine + (0, 0.2), AnchorNumberLine + (0.3, 0.5)], ((-2 * pi)) / 8, AnchorNumberLine + (0, 0.2)) → endArrowTemplate
  18. Sequence(Translate[endArrowTemplate, (numberPos(A), 0)], A, 1, Length[numberPos] - 1) → allArrows
  19. Sequence(AnchorNumberLine + ((jumpSize * (A + 0.5)), ((-cos((3 * pi / 8))) * jumpSize / 2)), A, 0, currentQuotient - 1) → arcCenter
  20. Zip(Segment[AnchorNumberLine + (A, 0.2), AnchorNumberLine + (A, -0.2)], A, numberPos) → numberTicks
  21. Sequence(Text[("" * (A * currentDivisor)), AnchorNumberLine + (numberPos(A + 1), 0), true, true, 0, -1], A, 0, currentQuotient) → xLbls
  22. Segment(AnchorNumberLine + (-1, 0), AnchorNumberLine + (lineLength + 1, 0)) → numberLine
  23. Zip(CircleArc[A, AnchorNumberLine + (B, 0), AnchorNumberLine + (C, 0)], A, arcCenter, B, Take[numberPos, 2], C, numberPos) → allArcs
  24. Zip(Text[("-" * currentDivisor), A + (0, arcRadius + 0.3), true, true, 0, 0], A, arcCenter) → textSubtract
  25. Sequence(Sequence[Anchor1 + (i, (-j)), i, 0, currentQuotient - 1], j, currentDivisor - 1, 0, -1) → arrayDisplay, {{(-4.43022, -0.2742500000000003), (-3.4302200000000003, -0.2742500000000003), (-2.4302200000000003, -0.2742500000000003), (-1.4302200000000003, -0.2742500000000003), (-0.43022000000000027, -0.2742500000000003)}, {(-4.43022, 0.7257499999999997), (-3.4302200000000003, 0.7257499999999997), (-2.4302200000000003, 0.7257499999999997), (-1.4302200000000003, 0.7257499999999997), (-0.43022000000000027, 0.7257499999999997)}, {(-4.43022, 1.7257499999999997), (-3.4302200000000003, 1.7257499999999997), (-2.4302200000000003, 1.7257499999999997), (-1.4302200000000003, 1.7257499999999997), (-0.43022000000000027, 1.7257499999999997)}, {(-4.43022, 2.7257499999999997), (-3.4302200000000003, 2.7257499999999997), (-2.4302200000000003, 2.7257499999999997), (-1.4302200000000003, 2.7257499999999997), (-0.43022000000000027, 2.7257499999999997)}, {(-4.43022, 3.7257499999999997), (-3.4302200000000003, 3.7257499999999997), (-2.4302200000000003, 3.7257499999999997), (-1.4302200000000003, 3.7257499999999997), (-0.43022000000000027, 3.7257499999999997)}, {(-4.43022, 4.72575), (-3.4302200000000003, 4.72575), (-2.4302200000000003, 4.72575), (-1.4302200000000003, 4.72575), (-0.43022000000000027, 4.72575)}, {(-4.43022, 5.72575), (-3.4302200000000003, 5.72575), (-2.4302200000000003, 5.72575), (-1.4302200000000003, 5.72575), (-0.43022000000000027, 5.72575)}}
  26. Sequence(Sequence[If[(groupColSize * j) + i ≤ currentDivisor, (i, (-j))], i, 1, groupColSize], j, 0, groupRows - 1) → groupTemplate, {{(1, 0), (2, 0), (3, 0)}, {(1, -1), (2, -1), (3, -1)}, {(1, -2), (NaN, NaN), (NaN, NaN)}}
  27. Flatten(Sequence[Sequence[If[(7 * j) + i ≤ currentQuotient, AnchorGroups + ((i * 4), ((-j) * (groupRows + 1)))], i, 1, 7], j, 0, 1]) → groupingAnchors
  28. Zip(Translate[groupTemplate, A], A, groupingAnchors) → groupedModel
  29. PointToPixels(Corner[1], Corner[3], Corner[5], Corner[displayResult, 1]) → BottomLeftDisplay
  30. PixelsToPoint(Corner[1], Corner[3], Corner[5], (startButtonX + 160, startButtonY - 10)) → PxRightDisplay
  31. PixelsToPoint(Corner[1], Corner[3], Corner[5], (startButtonX + 10, startButtonY - 48)) → PxLeftDisplay

AI Drawing Prompt Reference

Draw a mathematical model showing how visual models represent division equations. Include a number line with multiple arcs and arrows indicating subtraction, and a rectangular array showing multiplication relationships. Label the number line with numbers and annotate the divisor and dividend with text. The layout should be clear to help understand the concept of division.
The prompt above was compiled from the original drawing commands and is for reference only.