数字的展开式建模:标准形式与展开形式转换

数字的展开式建模:标准形式与展开形式转换
几何画板及绘图内容加载中,请稍等……
2023-06-16 06:10
该范例通过GeoGebra动态演示了将标准形式的三位或四位自然数转换为展开形式(如千位、百位、十位、个位分别乘以对应位值再相加)的过程。核心数学概念是位值制(place value)与数的展开表示,帮助学生理解数字中每个数位所代表的实际数量。作图要点包括使用RandomUniform随机生成数字、Take提取各位数字、Sequence与Sum构建展开式、Segment和Polygon绘制位值块或数位卡片,并通过滑块(slider)和动画(anim)控制交互,实现标准形式与展开形式的可视化对应。适合小学4-5年级学生练习数感,也可用于教师课堂演示或学生自主探索,支持西班牙语版本,是经过验证的教学资源。

GeoGebra 命令及参数

  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 绘图提示语参考

画一个动态模型,展示三位或四位自然数如何转换为展开形式。随机生成数字,提取每个数字,用矩形表示每个位上的值(千、百、十、个),并将它们垂直堆叠。每个矩形的高度代表数值大小,用线段连接,展示标准形式和展开形式的联系。背景是浅灰色,包含一个边框为深灰色的矩形作为画布。
以上提示语为根据原始绘图命令整理而来,仅供参考。