Multiplying 2-Digit Numbers Using Partial Products

Multiplying 2-Digit Numbers Using Partial Products
Loading the math board and drawing, please wait…
2023-07-13 12:00
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

  1. 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}
  2. TextToUnicode(" 0123456789") → validChars
  3. Zip(TextToUnicode[Text[n, false]], n, inputCurrent) → studentChars
  4. Flatten({Zip[If[n, k, NaN], n, validByRow, k, inputFilled], Sum[Zip[If[n, k, NaN], n, validByRow, k, inputFilled]]}) → inputFilledValid
  5. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  6. Zip(n ≟ p ∧ k, n, inputCurrent, p, correctInputs, k, validByRow) → correctByRow
  7. PixelsToPoint(Corner[1], Corner[3], Corner[5], PointQuestionPix) → PointQuestion
  8. Zip(If[Defined[n], Digitize[n], {}], n, inputFilledValid) → digitizedNumbers
  9. Max(Zip[Length[k], k, First[digitizedNumbers, If[validate ∧ correct, 5, 4]]]) → maxLengthDigits
  10. If(maxLengthDigits > 2, ((maxLengthDigits - 2) * ptDiff), 0) → xAdd
  11. Zip(Text[n, false] ≟ Text[k, false], n, inputCurrent, k, inputSaved) → matched
  12. Sequence(Sequence[If[Length[digitizedNumbers(n)] - maxLengthDigits + k ≤ 0, "", "" + (digitizedNumbers(n, Length[digitizedNumbers(n)] - maxLengthDigits + k))], k, 1, maxLengthDigits], n, 1, 5) → digitizedText, {{}, {}, {}, {}, {}}
  13. Zip(n ≟ p, n, inputCurrent, p, correctInputs) → boolCorrects
  14. Flatten({Zip[If[¬k, "#252525", n, "#006758", "#b00020"], n, correctByRowValidate, k, matched], "#006758"}) → boolColorsText
  15. Sequence(CountIf[n ≟ inputCurrent(k), n, First[inputCurrent, k]], k, 1, 4) → countOrderedOccurences
  16. Sort(inputCurrent) → userInputs
  17. Zip(IndexOf[n, userInputs], n, inputCurrent) → indicesInput
  18. Zip(CountIf[n ≟ k, n, correctInputs], k, correctInputs) → countCorrectOccurences
  19. Corner(5) → layoutAppSize
  20. Polygon({(-5, -6.5), (-5, 6.5), (6, 6.5), (6, -6.5)}) → viewbox
  21. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  22. Textfield(input1) → InputBox1
  23. Textfield(input2) → InputBox2
  24. Textfield(input3) → InputBox3
  25. Textfield(input4) → InputBox4
  26. Max(randNum1, randNum2) → maxLength
  27. Polygon({(x1, y1), (x2, y1), (x2, y2), (x1, y2)}) → quad1
  28. Polygon({(x2, y1), (x3, y1), (x3, y2), (x2, y2)}) → quad2
  29. Polygon({(x1, y2), (x2, y2), (x2, y3), (x1, y3)}) → quad3
  30. Polygon({(x2, y2), (x3, y2), (x3, y3), (x2, y3)}) → quad4
  31. PartitionPoint(PointTopStartTens, PointAnimate1, If[animationSlider < 2.4, 0, animationSlider < 2.9, animationSlider - 2.4, 0.5], 0.5) → AnimationPoint1a
  32. PartitionPoint(PointAnimate1, textBPoints(1), If[animationSlider < 3.2, 0, animationSlider < 4.2, animationSlider - 3.2, 1], 1) → AnimationPoint1b
  33. PartitionPoint(PointTopStartOnes, textBPoints(2), If[animationSlider < 1, animationSlider, 1], 1) → PointAnimateTopOnes
  34. PartitionPoint(PointBottomStartOnes, textBPoints(4), If[animationSlider < 1.2, 0, animationSlider < 2.2, animationSlider - 1.2, 1], 1) → PointAnimateBottomOnes
  35. If(animationSlider < 2.9, AnimationPoint1a, AnimationPoint1b) → PointAnimateText1
  36. PartitionPoint(PointBottomStartTens, PointAnimate1, If[animationSlider < 4.4, 0, animationSlider < 4.9, animationSlider - 4.4, 0.5], 0.5) → AnimationPoint2a
  37. PartitionPoint(PointAnimate1, textBPoints(3), If[animationSlider < 5.2, 0, animationSlider < 6.2, animationSlider - 5.2, 1], 1) → AnimationPoint2b
  38. If(animationSlider < 5.2, AnimationPoint2a, AnimationPoint2b) → PointAnimateBottomTens
  39. If(showStep1, quad4, showStep2, quad3, showStep3, quad2, showStep4, quad1) → highlightQuad
  40. If(animationSlider < 6.5, 1, 0.25) → animationSpeed
  41. Zip(CountIf[n ≟ k, n, userInputs], k, userInputs) → countInputOccurences
  42. If(showStep1, 1, showStep2, 2, showStep3, 3, 4) → boxNum
  43. Polygon({(x1, y3), (x3, y3), (x3, y1), (x1, y1)}) → quadOutline
  44. Zip(A + (0, 0.5), A, textPointsSteps) → textPoints
  45. If(maxLengthDigits > 2, Sum[Sequence["&", n, 1, maxLengthDigits - 2]] + "", "") → symbolAnd
  46. Sequence(Sum[Sequence["\color{" + (boolColorsText(n)) + "}{" + (digitizedText(n, k)) + "}" + (If[k < maxLengthDigits, "&", ""]), k, 1, maxLengthDigits]], n, 1, 5) → digitizedTextAnd
  47. Digitize(input1 + input2 + input3 + input4) → answerInput
  48. IndexOf(false, correctByRow) → boolFirstIncorrect
  49. Zip(Length[n] > 0, n, digitizedNumbers) → boolLens
  50. Zip(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) → colorList
  51. Zip(If[¬k, "#ffffff", n, "#d2e4e2", tries < 3, "#ffffff", "#f1d2d8"], n, correctByRow, k, matched) → boolColors
  52. Zip(k < animationSlider ∨ animationSlider ≟ 11.1 ∨ validate ∧ correct, k, anMins, r, anMax) → boolShading
  53. Zip(tries < 3 ∧ (¬(validate ∧ n)), n, correctByRowValidate) → enableInputByRow
  54. Zip(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.