Area Model Division: Multi-digit by Single-digit with Remainders

Area Model Division: Multi-digit by Single-digit with Remainders
Loading the math board and drawing, please wait…
2023-12-07 05:54
This GeoGebra example demonstrates division using an area model: it breaks a multi-digit number divided by a single-digit number into visible area blocks to determine the quotient and remainder. The main math ideas are place-value decomposition, the meaning of division as repeated grouping/partitioning, and the definition of remainder (the remainder is smaller than the divisor). Construction-wise, the model generates a random dividend and single-digit divisor (dividendNum, divisorDigit) and computes/holds values such as quotientInteger and remainder, then represents partitioned parts as polygonal area regions (e.g., partial1–partial4 mapped to labeled points like A2–A5 and B2–B5). It also uses vectors and translation to place and align those area blocks consistently, while text and table elements (Text, Textfield, TableText) provide feedback by showing the quotient and remainder (ansQuotient, remainder) alongside correctness indicators (e.g., correctA–correctF). The included GeoGebra commands reflected in the construction include RandomUniform, Sequence, Take/Element, Polygon, Vector/Translate, plus Text/Textfield/TableText for the interactive presentation. Best suited for grades 4–5 and for classroom instruction/practice of division with and without remainders.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.5793528192684818, 0.10650413291991515, 0.8581270496547331, 0.01340248834199562, 0.180473274950375, 0.2163374086248917, 0.011587676324896986, 0.500058846374919, 0.8751894862127395, 0.05222898133163495, 0.010821789189874847, 0.6581508810380622, 0.55070051072857, 0.5268537138836512, 0.8597906106805178, 0.34785710589294155, 0.7986169781235344, 0.9113338332543482, 0.010578847892572468, 0.6803864297422059, 0.35543128205516794, 0.2838718204329495, 0.5710456324279973, 0.5732410474212533, 0.7787019136967149, 0.51676976978688, 0.9118558120717436, 0.8643664014519479, 0.15763963313225604, 0.9238597987870502, 0.6090938337717103, 0.5737515380042838, 0.2582961341730574, 0.6943058358902674, 0.726894750255301, 0.8704466109853368, 0.16600796059005005, 0.04111054798771206, 0.22869646756863024, 0.6858067992333712, 0.14113640274676886, 0.7234709467043959, 0.755825540805241, 0.4300510153773872, 0.9884704362242419, 0.7713750641194602, 0.4181729796654501, 0.19894026804049972, 0.3059236468859951, 0.40851713650189203, 0.4236994029070828, 0.050535453874081745, 0.10435710687732296, 0.20573183819159627, 0.01142848967322035, 0.21858535681681893, 0.9774986625877343, 0.17170886849370634, 0.3764455060797552, 0.0891257136650579, 0.8890056587149792, 0.8007471108214785, 0.8652122621000811, 0.46033649084893463, 0.16273151307273842, 0.6787429946195181, 0.16524223885090122, 0.27260908728581446, 0.7822077778280919, 0.8884809508760336, 0.6348499673834215, 0.0961164538485748, 0.39624199088336926, 0.7936043121957138, 0.8562956945724843, 0.006959668215232024, 0.6793578836514407, 0.8273932142832208, 0.4391915034003624, 0.15017936793609327, 0.6685681324795193, 0.8276610336392993, 0.38051749347512537, 0.06857676450541263, 0.651670835206276, 0.2027048591195743, 0.5030166680487334, 0.24037928722089597, 0.14689999939799397, 0.4753051825251781, 0.3750939604825941, 0.5763159467382271, 0.8093360104780463, 0.3422685625444212, 0.6726409919309012, 0.527633989501868, 0.9459960174895343, 0.8759424313491689, 0.9464390212953533, 0.29099291413772876, 0.628975251441494, 0.9215039755414787, 0.17796386683504936, 0.1840135690510708, 0.42439902191420087, 0.6896362098523268, 0.6215230501707465, 0.5565393779616057, 0.21427122679580707, 0.46845170118385215, 0.17170096187505016, 0.7673836731664069, 0.3585690264945313, 0.08121044438137291, 0.19206961147246707, 0.614491005855408, 0.27613409585400245, 0.9275011922377127, 0.9440433949068943, 0.3680329043196984, 0.20505028554345803, 0.025116133320607924, 0.4936124980666168, 0.9709867664381447, 0.8362729740167038, 0.8478469857440444, 0.8084857617239417, 0.2802143117227001, 0.31828934959517796, 0.430865919916097, 0.248905207791013, 0.0629598136919596, 0.885540105402717, 0.620227961444579, 0.932065040708396, 0.6590302949834729, 0.6492217200363375, 0.8363418011428274, 0.35267497340813575, 0.4076990955269075, 0.48591427994693764, 0.8630044621275698, 0.8307528221167815, 0.4805910575818067, 0.49724410648479206, 0.7337802150724506, 0.4322136569180921, 0.07746181871746725, 0.12249106861462976, 0.05612774885335334, 0.18824284279645132, 0.5408758221949993, 0.1856894124684392, 0.800739652768382, 0.49579751300086994, 0.038316124231533896, 0.2793470410089653, 0.7390567545286253, 0.13387615011763396, 0.5562269972352019, 0.828421814679051, 0.6158551035505464, 0.9284282431053783, 0.719893802729458, 0.5006448235416101, 0.17617652765255387, 0.3329459718070196, 0.48590649925356255, 0.582668876951735, 0.5666842362460727, 0.2818872933220244, 0.04023292795518566, 0.41584681891390385, 0.050773233814683655, 0.3701246080913177, 0.6046442361705109, 0.8807082781511177, 0.06445001620018902, 0.45359582493239675, 0.4073895518221113, 0.505403965633555, 0.6961204681954214, 0.2942543712042644, 0.05060837642367526, 0.740525836952263, 0.26798410745801465, 0.3862722296359855, 0.7869988921213069, 0.6307874542033728, 0.06973132621279067, 0.39024489604158674, 0.7517269738043657, 0.0730624348256431, 0.956676386857855, 0.25787974374077854, 0.6624649132442717, 0.5402301991432201, 0.10433103719877292, 0.49131898716282163, 0.12079080173243076}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. Element({200, 300, 400, 500, 600, 700}, 1 + floor((currentRandomSeeds(10) * 6))) → partial1
  4. Element({100, 50}, 1 + floor((currentRandomSeeds(9) * 2))) → partial2
  5. Element({{1, 1, 2, 2}, {1, 2, 1, 2}, {1, 2, 2, 1}, {2, 1, 1, 2}, {2, 1, 2, 1}, {2, 2, 1, 1}}, 1 + floor((currentRandomSeeds(2) * 6))) → positions
  6. 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
  7. Corner(5) → layoutAppSize
  8. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  9. Textfield(studentA) → inputA
  10. Textfield(studentB) → inputB
  11. Textfield(studentC) → inputC
  12. Textfield(studentD) → inputD
  13. Textfield(studentE) → inputE
  14. PixelsToPoint((xMin, yMin), (xMax, yMax), (800, 500), AnchorPX) → AnchorModel
  15. Sequence(AnchorModel + ((boxWidth * A), 0), A, 0, numBoxes - 1) → boxAnchors
  16. Zip(cornerBox[boxWidth, boxHeight, A], A, Take[boxAnchors, 1, numBoxes]) → allBoxes
  17. Vector((0, 0), ((0.5 * boxWidth), (0.6 * boxHeight))) → vArrow
  18. Vector((0, 0), ((0.9 * boxWidth), (0.15 * boxHeight))) → vOffset
  19. Textfield(studentF) → inputF
  20. Text((((("\textcolor{" * HIGHLIGHTb) * "}{") * divisorDigit) * "}"), AnchorModel + (0, boxHeight / 2), true, true, -1, 0) → textDivisor
  21. Translate(vArrow, boxAnchors(1) + vOffset) → arrow1
  22. Translate(vArrow, boxAnchors(2) + vOffset) → arrow2
  23. Translate(vArrow, boxAnchors(3) + vOffset) → arrow3
  24. TableText({(((("\textcolor{" * HIGHLIGHTa) * "}{") * C1) * "}"), (("" * If[C2 ≥ 0, ("-~" * If[B2 < 1000, "~", ""])]) * If[(¬showsolution) ∧ positions(1) ≟ 2, (("\phantom{" * B2) * "}"), ("" * B2)]), (((("\textcolor{" * HIGHLIGHTa) * "}{") * C2) * "}")}, "vr", 2, (heightPX - 10) / 3) → cell1
  25. TableText({(((("\textcolor{" * HIGHLIGHTa) * "}{") * C2) * "}"), (("" * If[C3 ≥ 0, ("-~" * If[B3 < 1000, "~", ""])]) * If[(¬showsolution) ∧ positions(2) ≟ 2, (("\phantom{" * B3) * "}"), ("" * B3)]), (((("\textcolor{" * HIGHLIGHTa) * "}{") * C3) * "}")}, "vr", 2, (heightPX - 10) / 3) → cell2
  26. TableText({(((("\textcolor{" * HIGHLIGHTa) * "}{") * C3) * "}"), (If[C4 ≥ 0, ("-~~" * If[B4 < 100, "~", ""])] * If[(¬showsolution) ∧ positions(3) ≟ 2, (("\phantom{" * B4) * "}"), ("" * B4)]), (((("\textcolor{" * HIGHLIGHTa) * "}{") * C4) * "}")}, "vr", 2, (heightPX - 10) / 3) → cell3
  27. TableText({(((("\textcolor{" * HIGHLIGHTa) * "}{") * C4) * "}"), (If[C5 ≥ 0, ("-~~" * If[B5 < 100, "~", ""])] * If[(¬showsolution) ∧ positions(4) ≟ 2, (("\phantom{" * B5) * "}"), ("" * B5)]), (((("\textcolor{" * HIGHLIGHTa) * "}{") * C5) * "}")}, "vr", 2, (heightPX - 10) / 3) → cell4
  28. TableText(cell1, cell2, cell3, cell4, "c", widthPX, heightPX) → fullTable
  29. Text(("" * partial1), AnchorModel + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial1
  30. Text(("" * partial2), boxAnchors(2) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial2
  31. Text(("" * partial3), boxAnchors(3) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial3
  32. Text(("" * partial4), boxAnchors(4) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial4
  33. Zip(Text["\plus", A + (0, (1.1 * boxHeight)), true, true, 0, 1], A, {boxAnchors(2), boxAnchors(3), boxAnchors(4)}) → additionSigns
  34. Textfield(studentA) → inputA1
  35. Textfield(studentB) → inputB1
  36. Textfield(studentC) → inputC1
  37. Textfield(studentD) → inputD1
  38. Zip(Segment[A + ((0.2 * boxHeight), (0.3 * boxHeight)), A + ((0.8 * boxWidth), (0.3 * boxHeight))], A, boxAnchors) → dividerLines

AI Drawing Prompt Reference

Create an area model division visualization for multi-digit divided by single-digit. On the left side, draw one large rectangle divided by three vertical lines into four side-by-side sub-rectangles, each representing a partial product area. Above each sub-rectangle, display the partial value (like 100, 50), and fill each with diagonal cross-hatching to show the area. Place five text input boxes on the right side for quotient and remainder entries. Show the single-digit divisor prominently at the top in a highlighted color. Below or beside the model, display a table showing the partial products calculation in standard algorithm format, with some numbers obscured as placeholders. The layout should clearly demonstrate place-value decomposition and the geometric meaning of division as repeated grouping.
The prompt above was compiled from the original drawing commands and is for reference only.