Modeling Numbers in Expanded Form: Standard to Expanded Notation

Modeling Numbers in Expanded Form: Standard to Expanded Notation
Loading the math board and drawing, please wait…
2023-06-16 06:10
This GeoGebra activity dynamically models the conversion of standard-form three- and four-digit natural numbers into expanded form, where each digit is multiplied by its place value (thousands, hundreds, tens, ones) and summed. The core mathematical concept is place value and expanded notation, helping learners grasp the actual quantity represented by each digit. Construction details include using RandomUniform to generate random numbers, Take to extract individual digits, Sequence and Sum to build the expanded expression, Segment and Polygon to draw place-value blocks or digit cards, and sliders/animation for interactive control. The tool visually links standard and expanded forms, making it ideal for grades 4-5 students to practice number sense, for classroom demonstrations, or for self-paced exploration. It is a verified resource with Spanish translation available.

GeoGebra Commands & Parameters

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.07954672871484644, 0.1878686659496377, 0.4333445561106654, 0.5853211786086292, 0.937639933438409, 0.5704580888666277, 0.46490130540654107, 0.09321356629716207, 0.16082100850027972, 0.6359808268373074, 0.4622994500399079, 0.8474260115250616, 0.9115012065787352, 0.36222889357641136, 0.04172809820882454, 0.9424002752517879, 0.8263508432207558, 0.4631390386840701, 0.582516069083396, 0.2448279498037438, 0.12663635580091756, 0.22029497950736357, 0.788451644970508, 0.26404640018184666, 0.6817452312389842, 0.9700675234696439, 0.6844703194018052, 0.3878347390230222, 0.07330331170570042, 0.6793319041647495, 0.8315396323462364, 0.8236531350737136, 0.02618542952327112, 0.9118323918516457, 0.17631066731092646, 0.49309388247691066, 0.4388042317126488, 0.35108237351940685, 0.11803352201906213, 0.24472465911225555, 0.028333681940612143, 0.07419420475662282, 0.21334924641885872, 0.9576037192259804, 0.046982733676241645, 0.9242265514065371, 0.6598733247270424, 0.6145342985248754, 0.6930809204094496, 0.9065173978808239, 0.39197635212963505, 0.6705998573319918, 0.6355719181819257, 0.5470398319993803, 0.24684494148018593, 0.3286839377053541, 0.0825322632526421, 0.558072910498426, 0.10577140379228345, 0.5195279357922572, 0.7135418581852024, 0.23842403504362225, 0.34467328686011794, 0.05941772873824648, 0.4721286519582947, 0.5620694195254066, 0.15908418131769342, 0.053813544856268235, 0.6480949433018621, 0.7003979134656738, 0.6322848850516559, 0.530151152132626, 0.6403029269876884, 0.2792495718693013, 0.4808594534226643, 0.257640462642447, 0.7784574107369217, 0.8126329551688971, 0.3997629986010915, 0.7161760426975208, 0.2675689715048724, 0.8503869479363979, 0.9189786789302341, 0.880447809079233, 0.3411156345622512, 0.42712044976774083, 0.5460190764393441, 0.3890027440089585, 0.09844221629108237, 0.12451966988175157, 0.4628919794224882, 0.8213575922595842, 0.28864554221081845, 0.4285557356891851, 0.16270385407955085, 0.27930044058937736, 0.5770901420946256, 0.8572566603883349, 0.3898141310596197, 0.41124273928394206, 0.4617835602478176, 0.2035254139895884, 0.748381398330245, 0.3108961452743611, 0.9251108145167776, 0.27099247293678386, 0.2472576779724683, 0.7236476103820503, 0.6318877312013773, 0.8290837614875551, 0.6544897466049036, 0.5657939293409178, 0.8773384491119943, 0.5963666477195299, 0.5821768486576366, 0.2432709187389558, 0.3284370125811513, 0.7588040484240912, 0.23211145529724292, 0.9776747327268392, 0.6090739016575647, 0.27180352153685367, 0.8344956064407287, 0.35822276714866413, 0.5337177612951521, 0.7318907498401991, 0.7760774786447221, 0.948838024744144, 0.5756389411255878, 0.9654683204353809, 0.8602933310349411, 0.6997662476220904, 0.6743453187041555, 0.2284386287979471, 0.4104279507122511, 0.3330462795824972, 0.26265250273146257, 0.49147573634131886, 0.9374214106280261, 0.2507548208757654, 0.42676948561787226, 0.7114246290026408, 0.2067531370209947, 0.5042328510306566, 0.04292734340336534, 0.3496866025427905, 0.30382445543102765, 0.5914762094948541, 0.2614121786520255, 0.45351848856745813, 0.4144381063260421, 0.5185347491652972, 0.6833858059960617, 0.43592884714533636, 0.4663393014806885, 0.9691139848165743, 0.8375856663185666, 0.6442979165892025, 0.5893344997089566, 0.45461066002479433, 0.24289276791801204, 0.24697859751755982, 0.9552454492442527, 0.8645375149428975, 0.618839949182938, 0.1509545761999046, 0.8248829106086012, 0.5047056298804969, 0.2294044288625968, 0.4121372534233236, 0.1973401869553882, 0.2376313727917984, 0.2358876308280886, 0.11307639859170712, 0.5472092160758812, 0.47642295427708853, 0.46233144850082913, 0.6107407190286841, 0.5678120211017278, 0.7498752035192998, 0.5917547333180302, 0.19959250856013885, 0.49321838025187187, 0.652664597565596, 0.9435145208686262, 0.08243644183025658, 0.09868562711237897, 0.6203847445374666, 0.7613059587982116, 0.2834664262086348, 0.86820907773105, 0.25470077898961685, 0.577711360998716, 0.2545643232999231, 0.09911214181992106, 0.7691251966146154, 0.004792622267180083, 0.7472238179833313, 0.8070327241937706, 0.8908297486292573}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(countQuestion ≟ 0, 3, If[currentRandomSeeds(7) ≥ 0.5, 3, 4]) → numOfDigits
  4. Append(Max[floor((currentRandomSeeds(1) * 10)), 1], Take[Zip[floor((nn * 10)), nn, currentRandomSeeds], 2, numOfDigits]) → digits
  5. Corner(5) → layoutAppSize
  6. Polygon(inputPoint, TriA, TriB) → tri, b, inputpoint, a
  7. Polygon({(-5, -6.5), (-5, 6.5), (6, 6.5), (6, -6.5)}) → viewbox
  8. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  9. Polygon({(A1, 0), (A1 + 1, 0), (A1 + 1, 1), (A1, 1)}) → B1
  10. Polygon({(A2, 0), (A2 + 1, 0), (A2 + 1, 1), (A2, 1)}) → B2
  11. Polygon({(A3, 0), (A3 + 1, 0), (A3 + 1, 1), (A3, 1)}) → B3
  12. Polygon({(A4, 0), (A4 + 1, 0), (A4 + 1, 1), (A4, 1)}) → B4
  13. Polygon({(A5, 0), (A5 + 1, 0), (A5 + 1, 1), (A5, 1)}) → B5
  14. Polygon({(A6, 0), (A6 + 1, 0), (A6 + 1, 1), (A6, 1)}) → B6
  15. Polygon({(A7, 0), (A7 + 1, 0), (A7 + 1, 1), (A7, 1)}) → B7
  16. Translate(B1, Vector[(0, 1)]) → C1
  17. Translate(C1, Vector[(0, 1)]) → D1
  18. Translate(D1, Vector[(0, 1)]) → E1
  19. Translate(E1, Vector[(0, 1)]) → F1
  20. Translate(F1, Vector[(0, 1)]) → G1
  21. Translate(G1, Vector[(0, 1)]) → H1
  22. Translate(H1, Vector[(0, 1)]) → I1
  23. Translate(I1, Vector[(0, 1)]) → J1
  24. Translate(B2, Vector[(0, 1)]) → C2
  25. Translate(C2, Vector[(0, 1)]) → D2
  26. Translate(D2, Vector[(0, 1)]) → E2
  27. Translate(E2, Vector[(0, 1)]) → F2
  28. Translate(F2, Vector[(0, 1)]) → G2
  29. Translate(G2, Vector[(0, 1)]) → H2
  30. Translate(H2, Vector[(0, 1)]) → I2
  31. Translate(I2, Vector[(0, 1)]) → J2
  32. Translate(B3, Vector[(0, 1)]) → C3
  33. Translate(C3, Vector[(0, 1)]) → D3
  34. Translate(D3, Vector[(0, 1)]) → E3
  35. Translate(E3, Vector[(0, 1)]) → F3
  36. Translate(F3, Vector[(0, 1)]) → G3
  37. Translate(G3, Vector[(0, 1)]) → H3
  38. Translate(H3, Vector[(0, 1)]) → I3
  39. Translate(I3, Vector[(0, 1)]) → J3
  40. Translate(B4, Vector[(0, 1)]) → C4
  41. Translate(C4, Vector[(0, 1)]) → D4
  42. Translate(D4, Vector[(0, 1)]) → E4
  43. Translate(E4, Vector[(0, 1)]) → F4
  44. Translate(F4, Vector[(0, 1)]) → G4
  45. Translate(G4, Vector[(0, 1)]) → H4
  46. Translate(H4, Vector[(0, 1)]) → I4
  47. Translate(I4, Vector[(0, 1)]) → J4
  48. Translate(B5, Vector[(0, 1)]) → C5
  49. Translate(C5, Vector[(0, 1)]) → D5
  50. Translate(D5, Vector[(0, 1)]) → E5
  51. Translate(E5, Vector[(0, 1)]) → F5
  52. Translate(F5, Vector[(0, 1)]) → G5
  53. Translate(G5, Vector[(0, 1)]) → H5
  54. Translate(H5, Vector[(0, 1)]) → I5
  55. Translate(I5, Vector[(0, 1)]) → J5
  56. Translate(B6, Vector[(0, 1)]) → C6
  57. Translate(C6, Vector[(0, 1)]) → D6
  58. Translate(D6, Vector[(0, 1)]) → E6
  59. Translate(E6, Vector[(0, 1)]) → F6
  60. Translate(F6, Vector[(0, 1)]) → G6
  61. Translate(G6, Vector[(0, 1)]) → H6
  62. Translate(H6, Vector[(0, 1)]) → I6
  63. Translate(I6, Vector[(0, 1)]) → J6
  64. Translate(B7, Vector[(0, 1)]) → C7
  65. Translate(C7, Vector[(0, 1)]) → D7
  66. Translate(D7, Vector[(0, 1)]) → E7
  67. Translate(E7, Vector[(0, 1)]) → F7
  68. Translate(F7, Vector[(0, 1)]) → G7
  69. Translate(G7, Vector[(0, 1)]) → H7
  70. Translate(H7, Vector[(0, 1)]) → I7
  71. Translate(I7, Vector[(0, 1)]) → J7
  72. Sequence(Sequence[(x(Cor11) + wid / 2 + (ii * (Hspace + wid)), jj), jj, 0.5, 8.5, 1], ii, 0, numOfDigits - 1) → PosPlacesValues, {{(2.5, 0.5), (2.5, 1.5), (2.5, 2.5), (2.5, 3.5), (2.5, 4.5), (2.5, 5.5), (2.5, 6.5), (2.5, 7.5), (2.5, 8.5)}, {(5, 0.5), (5, 1.5), (5, 2.5), (5, 3.5), (5, 4.5), (5, 5.5), (5, 6.5), (5, 7.5), (5, 8.5)}, {(7.5, 0.5), (7.5, 1.5), (7.5, 2.5), (7.5, 3.5), (7.5, 4.5), (7.5, 5.5), (7.5, 6.5), (7.5, 7.5), (7.5, 8.5)}}
  73. Sum(Sequence[(digits(nn) * 10^(numOfDigits - nn)), nn, 1, numOfDigits]) → targetNumber
  74. Segment(EPL1, EPR1) → Segment1
  75. Segment(EPL2, EPR2) → Segment2
  76. Segment(EPL3, EPR3) → Segment3
  77. Segment(EPL4, EPR4) → Segment4
  78. Segment(EPL5, EPR5) → Segment5
  79. Segment(EPL6, EPR6) → Segment6
  80. Segment(EPL7, EPR7) → Segment7
  81. Polygon(Cor11, Cor12, EPR1, EPL1) → q1, f, g, h, i
  82. Polygon(Cor21, Cor22, EPR2, EPL2) → q2, j, k, l, m
  83. Polygon(Cor31, Cor32, EPR3, EPL3) → q3, n, p, q, r
  84. Polygon(Cor41, Cor42, EPR4, EPL4) → q4, s, t, c, d
  85. Polygon(Cor51, Cor52, EPR5, EPL5) → q5, e, f_1, g_1, h_1
  86. Polygon(Cor61, Cor62, EPR6, EPL6) → q6, i_1, j_1, k_1, l_1
  87. Polygon(Cor71, Cor72, EPR7, EPL7) → q7, m_1, n_1, p_1, q_1
  88. Zip(Text[((nn * "\times") * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → Products
  89. Sequence((x(Cor11) + wid / 2 + (ii * (wid + Hspace)), -0.8), ii, 0, numOfDigits - 1) → PosProducts
  90. Zip(Text[(nn * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → ProductsResults
  91. Translate(PosProducts, (0, -0.8)) → PosResults
  92. Sequence((5 + ((2.5 * Min[Max[3 - anim, 0.15], 1]) * ii), -2.5), ii, -1, 1) → posInputDigits
  93. Translate(hGL, Vector[(Vector[Corner[1], Corner[4]] / 500 * 16)]) → hGL'
  94. expandSegment(EPL1, EPR1, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject1
  95. expandSegment(EPL2, EPR2, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject2
  96. expandSegment(EPL3, EPR3, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject3
  97. expandSegment(EPL4, EPR4, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject4
  98. Take(Zip[Midpoint[PP, QQ], PP, PosResults, QQ, Take[PosResults, 2]], 1, numOfDigits - 1) → posPlusSigns
  99. Zip(Text["+", PP, true, true, 0, 0], PP, posPlusSigns) → plusSigns
  100. Zip(Polygon[{PP, PP + (wid, 0), PP + (wid, dd), PP + (0, dd)}], PP, Corners, dd, digits) → polySol
  101. Zip(((dd * "\times") * 10^(nn)), dd, digits, nn, Reverse[Sequence[0, numOfDigits - 1]]) → tableSol
  102. Sequence(Zip[Text[10^(abs(numOfDigits - ii)), PP, true, true, 0, 0], PP, Element[PosPlacesValues, ii]], ii, 1, numOfDigits) → PlacesValues
  103. Sequence(Polygon[{Cor11 + (0, ii), Cor12 + (0, ii), Cor12 + (0, ii + 1), Cor11 + (0, ii + 1)}], ii, 0, 8) → l1
  104. Sequence(Polygon[{Cor21 + (0, ii), Cor22 + (0, ii), Cor22 + (0, ii + 1), Cor21 + (0, ii + 1)}], ii, 0, 8) → l2
  105. Sequence(Polygon[{Cor31 + (0, ii), Cor32 + (0, ii), Cor32 + (0, ii + 1), Cor31 + (0, ii + 1)}], ii, 0, 8) → l3
  106. Sequence(Polygon[{Cor41 + (0, ii), Cor42 + (0, ii), Cor42 + (0, ii + 1), Cor41 + (0, ii + 1)}], ii, 0, 8) → l4
  107. Translate(PosResults, Vector[(0, 1.6 - 2.5)]) → PosResults'
  108. Dilate(PosResults', Min[Max[3 - anim, 0.1], 1], (5, -2.5)) → PosResults''
  109. Zip(Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, inputCurrent, PP, PosResults'', col, colors) → inputDigits
  110. Translate(PosProducts, (0, -3.5)) → PosProducts'
  111. Zip(Text[tt, PP, true, true, 0, 0], tt, tableSol, PP, PosProducts') → l5
  112. Zip(Text["+", PP, true, true, 0, 0], PP, Zip[Midpoint[QQ, RR], QQ, PosProducts', RR, Take[PosProducts', 2]]) → l6
  113. Take(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), pp, true, true, 0, 0], tt, Products, pp, PosProducts, col, colors], 1, Min[(anim * 22), numOfDigits]) → ProductsPos
  114. Take(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, ProductsResults, PP, PosResults, col, colors], 1, Min[((anim - 1) * 22), numOfDigits]) → ResultsPositioned

AI Drawing Prompt Reference

Create a dynamic model showing how three or four-digit natural numbers convert to expanded form. Randomly generate numbers, extract each digit, and represent each place value (thousands, hundreds, tens, ones) with rectangles stacked vertically. The height of each rectangle corresponds to the digit's value, and connecting lines illustrate the relationship between standard and expanded forms. The background is light gray with a deep gray-bordered rectangle as the canvas.
The prompt above was compiled from the original drawing commands and is for reference only.