Area Model Division: Multi-digit by Single-digit with Remainders
Loading the math board and drawing, please wait…
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
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}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsElement({200, 300, 400, 500, 600, 700}, 1 + floor((currentRandomSeeds(10) * 6))) → partial1Element({100, 50}, 1 + floor((currentRandomSeeds(9) * 2))) → partial2Element({{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))) → positionsPolygon(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]) → OnboardingTextOffsetTextfield(studentA) → inputATextfield(studentB) → inputBTextfield(studentC) → inputCTextfield(studentD) → inputDTextfield(studentE) → inputEPixelsToPoint((xMin, yMin), (xMax, yMax), (800, 500), AnchorPX) → AnchorModelSequence(AnchorModel + ((boxWidth * A), 0), A, 0, numBoxes - 1) → boxAnchorsZip(cornerBox[boxWidth, boxHeight, A], A, Take[boxAnchors, 1, numBoxes]) → allBoxesVector((0, 0), ((0.5 * boxWidth), (0.6 * boxHeight))) → vArrowVector((0, 0), ((0.9 * boxWidth), (0.15 * boxHeight))) → vOffsetTextfield(studentF) → inputFText((((("\textcolor{" * HIGHLIGHTb) * "}{") * divisorDigit) * "}"), AnchorModel + (0, boxHeight / 2), true, true, -1, 0) → textDivisorTranslate(vArrow, boxAnchors(1) + vOffset) → arrow1Translate(vArrow, boxAnchors(2) + vOffset) → arrow2Translate(vArrow, boxAnchors(3) + vOffset) → arrow3TableText({(((("\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) → cell1TableText({(((("\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) → cell2TableText({(((("\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) → cell3TableText({(((("\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) → cell4TableText(cell1, cell2, cell3, cell4, "c", widthPX, heightPX) → fullTableText(("" * partial1), AnchorModel + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial1Text(("" * partial2), boxAnchors(2) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial2Text(("" * partial3), boxAnchors(3) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial3Text(("" * partial4), boxAnchors(4) + (boxWidth / 2, (1.1 * boxHeight)), true, true, 0, 1) → displayPartial4Zip(Text["\plus", A + (0, (1.1 * boxHeight)), true, true, 0, 1], A, {boxAnchors(2), boxAnchors(3), boxAnchors(4)}) → additionSignsTextfield(studentA) → inputA1Textfield(studentB) → inputB1Textfield(studentC) → inputC1Textfield(studentD) → inputD1Zip(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.