Multiplying 2-Digit Numbers Using Partial Products
Loading the math board and drawing, please wait…
This example demonstrates how to multiply two-digit numbers using partial products and area models. It involves core math concepts like the distributive property of multiplication and place value principles. GeoGebra commands such as Polygon, Sequence, and TextToUnicode are utilized in its construction, making it suitable for 4th-5th grade students to practice multi-digit multiplication skills.
GeoGebra Commands & Parameters
RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.7503656878819394, 0.0004729623462422494, 0.539298058181527, 0.2782562040714059, 0.8321401347652925, 0.26990949605957193, 0.28738387057841436, 0.005949363443781315, 0.3928397598718841, 0.9702990071364433, 0.5311205954959733, 0.7321101209769545, 0.3844208394565378, 0.08559794854659092, 0.5122452712006831, 0.35991192553475104, 0.5770048504170432, 0.8208443716975371, 0.355505362122732, 0.7666249863549118, 0.942067266964189, 0.3363461554926379, 0.11081755629665803, 0.6323672712289321, 0.9242867876314318, 0.7009771752031658, 0.818245977243218, 0.41274668690887534, 0.07336873181482233, 0.9774364292164603, 0.39416026883307104, 0.41556844437589785, 0.36023359411826583, 0.3703230212092609, 0.6117284334298269, 0.9102491734742542, 0.4559748181116564, 0.8043156090108166, 0.1096325369252614, 0.36048277810001733, 0.8469413598203696, 0.564617682748139, 0.609564459218853, 0.5560451618004912, 0.9551888441046799, 0.9051410039778418, 0.3656667009349776, 0.28840450609916424, 0.07036990332342886, 0.8616473081989791, 0.1876283962513365, 0.17702018953037196, 0.016897252211627158, 0.1972537715295773, 0.2236285965540857, 0.8188678449152557, 0.5589149986450558, 0.13633132899780864, 0.2397391882229774, 0.13281992000660528, 0.3652515632213622, 0.15988478906754017, 0.7187570297208371, 0.44304053553979383, 0.5871045235644962, 0.011002413065640905, 0.08373007096631842, 0.7015197611035214, 0.28272054024544135, 0.4828974604529671, 0.6696742010394653, 0.019277364336838198, 0.7757857417143565, 0.07443818032517957, 0.4511480403511964, 0.12860719866323278, 0.5576293560469848, 0.26887206484104437, 0.5534596966865901, 0.1850134524925631, 0.15767081632656849, 0.6206995626381937, 0.25132517837750035, 0.7072059791187759, 0.0018032249107586683, 0.8633366869528144, 0.28077978134697174, 0.19667691511065186, 0.27460783423863666, 0.19633028112350906, 0.7880642165653062, 0.8349721351994661, 0.2084326098548115, 0.6954490191868588, 0.7130646617946184, 0.026800612778008756, 0.4804443716677156, 0.24197227155519752, 0.6646803506317519, 0.7405914539936957, 0.8677771049199058, 0.4789339787554743, 0.20122549354216415, 0.8650127221133107, 0.5408510942647319, 0.6519516561941803, 0.5006415601664502, 0.32030800508459356, 0.865825287738955, 0.7405817621708056, 0.4429036147726486, 0.40708576698605886, 0.1389721795456278, 0.022889923103106415, 0.2005497054574224, 0.4424136304528408, 0.8385276790030811, 0.6211109335901384, 0.562743920122039, 0.3537237852861255, 0.9832700320837195, 0.7498953022296887, 0.47370444127317973, 0.5151277261951462, 0.13172005239398238, 0.21070141275628365, 0.14768488065484933, 0.2282673983247318, 0.6314315295008068, 0.5663884018462971, 0.7499922271290119, 0.2107974021545462, 0.17435419471884706, 0.019001951666182446, 0.5367571594815697, 0.37999625859283026, 0.06170258366607184, 0.8811175740758556, 0.7353425402277823, 0.6168474011435525, 0.7801533229371347, 0.33691658952384673, 0.8423830121890472, 0.6572090338897896, 0.7405187493374177, 0.14341802145931695, 0.2274936959965591, 0.33140972371089655, 0.8903094717216268, 0.5249752725728251, 0.27766884196879393, 0.2917599241034988, 0.842798583517458, 0.1152696633542018, 0.9703101242467668, 0.08906225899606743, 0.6673398148325986, 0.490592752184493, 0.7916830027253882, 0.8242320235523556, 0.528767347613389, 0.7062085486073274, 0.7123935132552605, 0.04960662578501083, 0.11771935934078916, 0.9240209551734322, 0.3022107848615356, 0.28642688659792054, 0.6886778958183767, 0.8546461620684066, 0.5732300902302702, 0.8603145021829632, 0.5584069243454953, 0.10029905035732137, 0.7229793482447618, 0.7653501299938429, 0.6042961278975207, 0.4166515810373641, 0.5376159267583095, 0.049572271837972026, 0.6398818948559907, 0.15200629469147814, 0.7798441608724861, 0.2403725403209593, 0.22351824072799165, 0.2507510726225172, 0.7166027368500125, 0.3073536708151907, 0.6658086698586704, 0.3251221116537969, 0.2879296266036269, 0.22274670437604266, 0.12198675109228983, 0.9047998741962991, 0.5207062258307156, 0.9154502114229756, 0.48694615509270234, 0.5177982270476015, 0.23921565962750893, 0.5841586087358764}TextToUnicode(" 0123456789") → validCharsZip(TextToUnicode[Text[n, false]], n, inputCurrent) → studentCharsFlatten({Zip[If[n, k, NaN], n, validByRow, k, inputFilled], Sum[Zip[If[n, k, NaN], n, validByRow, k, inputFilled]]}) → inputFilledValidTake(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsZip(n ≟ p ∧ k, n, inputCurrent, p, correctInputs, k, validByRow) → correctByRowPixelsToPoint(Corner[1], Corner[3], Corner[5], PointQuestionPix) → PointQuestionZip(If[Defined[n], Digitize[n], {}], n, inputFilledValid) → digitizedNumbersMax(Zip[Length[k], k, First[digitizedNumbers, If[validate ∧ correct, 5, 4]]]) → maxLengthDigitsIf(maxLengthDigits > 2, ((maxLengthDigits - 2) * ptDiff), 0) → xAddZip(Text[n, false] ≟ Text[k, false], n, inputCurrent, k, inputSaved) → matchedSequence(Sequence[If[Length[digitizedNumbers(n)] - maxLengthDigits + k ≤ 0, "", "" + (digitizedNumbers(n, Length[digitizedNumbers(n)] - maxLengthDigits + k))], k, 1, maxLengthDigits], n, 1, 5) → digitizedText, {{}, {}, {}, {}, {}}Zip(n ≟ p, n, inputCurrent, p, correctInputs) → boolCorrectsFlatten({Zip[If[¬k, "#252525", n, "#006758", "#b00020"], n, correctByRowValidate, k, matched], "#006758"}) → boolColorsTextSequence(CountIf[n ≟ inputCurrent(k), n, First[inputCurrent, k]], k, 1, 4) → countOrderedOccurencesSort(inputCurrent) → userInputsZip(IndexOf[n, userInputs], n, inputCurrent) → indicesInputZip(CountIf[n ≟ k, n, correctInputs], k, correctInputs) → countCorrectOccurencesCorner(5) → layoutAppSizePolygon({(-5, -6.5), (-5, 6.5), (6, 6.5), (6, -6.5)}) → viewboxonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetTextfield(input1) → InputBox1Textfield(input2) → InputBox2Textfield(input3) → InputBox3Textfield(input4) → InputBox4Max(randNum1, randNum2) → maxLengthPolygon({(x1, y1), (x2, y1), (x2, y2), (x1, y2)}) → quad1Polygon({(x2, y1), (x3, y1), (x3, y2), (x2, y2)}) → quad2Polygon({(x1, y2), (x2, y2), (x2, y3), (x1, y3)}) → quad3Polygon({(x2, y2), (x3, y2), (x3, y3), (x2, y3)}) → quad4PartitionPoint(PointTopStartTens, PointAnimate1, If[animationSlider < 2.4, 0, animationSlider < 2.9, animationSlider - 2.4, 0.5], 0.5) → AnimationPoint1aPartitionPoint(PointAnimate1, textBPoints(1), If[animationSlider < 3.2, 0, animationSlider < 4.2, animationSlider - 3.2, 1], 1) → AnimationPoint1bPartitionPoint(PointTopStartOnes, textBPoints(2), If[animationSlider < 1, animationSlider, 1], 1) → PointAnimateTopOnesPartitionPoint(PointBottomStartOnes, textBPoints(4), If[animationSlider < 1.2, 0, animationSlider < 2.2, animationSlider - 1.2, 1], 1) → PointAnimateBottomOnesIf(animationSlider < 2.9, AnimationPoint1a, AnimationPoint1b) → PointAnimateText1PartitionPoint(PointBottomStartTens, PointAnimate1, If[animationSlider < 4.4, 0, animationSlider < 4.9, animationSlider - 4.4, 0.5], 0.5) → AnimationPoint2aPartitionPoint(PointAnimate1, textBPoints(3), If[animationSlider < 5.2, 0, animationSlider < 6.2, animationSlider - 5.2, 1], 1) → AnimationPoint2bIf(animationSlider < 5.2, AnimationPoint2a, AnimationPoint2b) → PointAnimateBottomTensIf(showStep1, quad4, showStep2, quad3, showStep3, quad2, showStep4, quad1) → highlightQuadIf(animationSlider < 6.5, 1, 0.25) → animationSpeedZip(CountIf[n ≟ k, n, userInputs], k, userInputs) → countInputOccurencesIf(showStep1, 1, showStep2, 2, showStep3, 3, 4) → boxNumPolygon({(x1, y3), (x3, y3), (x3, y1), (x1, y1)}) → quadOutlineZip(A + (0, 0.5), A, textPointsSteps) → textPointsIf(maxLengthDigits > 2, Sum[Sequence["&", n, 1, maxLengthDigits - 2]] + "", "") → symbolAndSequence(Sum[Sequence["\color{" + (boolColorsText(n)) + "}{" + (digitizedText(n, k)) + "}" + (If[k < maxLengthDigits, "&", ""]), k, 1, maxLengthDigits]], n, 1, 5) → digitizedTextAndDigitize(input1 + input2 + input3 + input4) → answerInputIndexOf(false, correctByRow) → boolFirstIncorrectZip(Length[n] > 0, n, digitizedNumbers) → boolLensZip(If[showsolution ∨ validate ∧ correct, If[¬showSteps, If[p, {0, 103, 88}, {176, 0, 32}], k < animationSlider ∨ animationSlider ≟ 11.1 ∨ validate ∧ correct, {0, 103, 88}, {117, 117, 117}], showhint1, If[p, {0, 103, 88}, {101, 87, 210}], {101, 87, 210}] / 255, p, correctByRowValidate, k, anMins, r, anMax) → colorListZip(If[¬k, "#ffffff", n, "#d2e4e2", tries < 3, "#ffffff", "#f1d2d8"], n, correctByRow, k, matched) → boolColorsZip(k < animationSlider ∨ animationSlider ≟ 11.1 ∨ validate ∧ correct, k, anMins, r, anMax) → boolShadingZip(tries < 3 ∧ (¬(validate ∧ n)), n, correctByRowValidate) → enableInputByRowZip(Text["?", n - (1 / 2 * dimQ(1)) - dimQ(2), true, true], n, Centroids) → textQs
AI Drawing Prompt Reference
A graphical representation of multiplying two-digit numbers using partial products and area models. It includes four input boxes for entering the digits of the multiplicand and multiplier, four rectangles representing partial products, and a larger rectangle for the total product. The diagram illustrates the distributive property and place value concepts. Construction order: first draw the input boxes, then the partial product rectangles, and finally the total product rectangle.
The prompt above was compiled from the original drawing commands and is for reference only.