位值扩展形式与标准形式的转换:观察数的分解

位值扩展形式与标准形式的转换:观察数的分解
几何画板及绘图内容加载中,请稍等……
2023-10-26 19:54
该范例通过可视化方式让学习者构建数字的“扩展形式”,并观察其如何对应到“标准形式”。核心数学概念包括:自然数的位值含义、扩展表示(如把各位数字拆成乘法与加法的形式)、以及标准记数法与扩展记数法之间的等价关系。作图/交互要点可从构造摘要提炼:利用 Sequence 生成数字与位数相关的序列,并用 Take、If、Append 对随机题/数据进行条件选择与列表拼接;通过 Translate、Sum、Segment、Polygon、Corner 组织与组合图形元素;再用 expandSegment 与 Dilate 进行线段/图形的扩展与缩放以体现不同位值的“条形/段”的数量关系;同时结合动画对象与输入对象(如 anim、inputCurrent)驱动题目中的数字拆分与结果呈现(并以 Sum 与相关对象名承载计算汇总)。适合四到五年级学生用于数感训练,也可作为课堂练习或作业活动:让学生回答扩展形式与位值“条形数量”的关系、以及为什么扩展形式采用乘法与加法分解的原因。

GeoGebra 命令及参数

  1. Sequence(Random[0, 99] / 100, A, 1, 200) → allRandomSeeds, {0.93, 0.26, 0.28, 0.23, 0.08, 0.3, 0.76, 0.53, 0.41, 0.37, 0.31, 0.71, 0.85, 0.35, 0.66, 0.41, 0.65, 0.17, 0.37, 0.57, 0.74, 0.39, 0.91, 0.07, 0.41, 0.62, 0.82, 0.7, 0.82, 0.53, 0.27, 0.97, 0.59, 0.8, 0.9, 0.48, 0.27, 0.5, 0.51, 0.69, 0.6, 0.83, 0.21, 0.6, 0.1, 0.36, 0.36, 0.87, 0.18, 0.66, 0.54, 0.28, 0.03, 0.93, 0.78, 0.17, 0.33, 0.66, 0.95, 0.33, 0, 0.07, 0.68, 0.93, 0.59, 0.37, 0.4, 0.78, 0.35, 0.33, 0.6, 0.14, 0.34, 0.72, 0.13, 0.66, 0.82, 0.36, 0.98, 0.82, 0.11, 0.95, 0.39, 0.85, 0.43, 0.98, 0.99, 0.77, 0.18, 0.13, 0.31, 0.51, 0.06, 0.91, 0.71, 0.8, 0.46, 0.76, 0.96, 0.63, 0.44, 0.34, 0.01, 0.58, 0.71, 0.93, 0.67, 0.72, 0.87, 0.4, 0.68, 0.14, 0, 0.01, 0.22, 0.39, 0.94, 0.81, 0.97, 0.15, 0.21, 0.16, 0.51, 0.95, 0.92, 0.36, 0.25, 0.46, 0.99, 0.06, 0.36, 0.87, 0.9, 0.31, 0.98, 0.38, 0.6, 0.8, 0.1, 0.15, 0.66, 0.88, 0.34, 0.07, 0.74, 0.67, 0.16, 0.95, 0.36, 0.92, 0.33, 0.98, 0.41, 0.77, 0.86, 0.98, 0.33, 0.31, 0.29, 0.27, 0.19, 0.66, 0.76, 0.19, 0.73, 0.02, 0.09, 0.79, 0.73, 0.23, 0.15, 0.71, 0.71, 0.72, 0.76, 0.21, 0.68, 0.06, 0.68, 0.8, 0.61, 0.85, 0.53, 0.56, 0.38, 0.31, 0.89, 0.83, 0.47, 0.92, 0.98, 0.75, 0.17, 0.96, 0.02, 0.34, 0.08, 0.56, 0.83, 0.63}
  2. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(countQuestion ≟ 0, 4, If[currentRandomSeeds(7) ≥ 0.5, 4, 4]) → numOfDigits
  4. Sequence((x(Cor11) + wid / 2 + (ii * (wid + Hspace)), -0.8), ii, 0, numOfDigits - 1) → PosProducts
  5. Translate(PosProducts, (0, -1)) → PosResults
  6. Translate(PosResults, Vector[(0, 1.6 - 2.5)]) → PosResults'
  7. Append(Max[floor((currentRandomSeeds(1) * 10)), 1], Take[Zip[floor((nn * 10)), nn, currentRandomSeeds], 2, numOfDigits]) → digits
  8. Corner(5) → layoutAppSize
  9. Polygon(inputPoint, TriA, TriB) → tri, b, inputpoint, a
  10. Polygon({(-5, -6.5), (-5, 6.5), (6, 6.5), (6, -6.5)}) → viewbox
  11. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  12. Polygon({(A1, 0), (A1 + 1, 0), (A1 + 1, 1), (A1, 1)}) → B1
  13. Polygon({(A2, 0), (A2 + 1, 0), (A2 + 1, 1), (A2, 1)}) → B2
  14. Polygon({(A3, 0), (A3 + 1, 0), (A3 + 1, 1), (A3, 1)}) → B3
  15. Polygon({(A4, 0), (A4 + 1, 0), (A4 + 1, 1), (A4, 1)}) → B4
  16. Polygon({(A5, 0), (A5 + 1, 0), (A5 + 1, 1), (A5, 1)}) → B5
  17. Polygon({(A6, 0), (A6 + 1, 0), (A6 + 1, 1), (A6, 1)}) → B6
  18. Polygon({(A7, 0), (A7 + 1, 0), (A7 + 1, 1), (A7, 1)}) → B7
  19. Translate(B1, Vector[(0, 1)]) → C1
  20. Translate(C1, Vector[(0, 1)]) → D1
  21. Translate(D1, Vector[(0, 1)]) → E1
  22. Translate(E1, Vector[(0, 1)]) → F1
  23. Translate(F1, Vector[(0, 1)]) → G1
  24. Translate(G1, Vector[(0, 1)]) → H1
  25. Translate(H1, Vector[(0, 1)]) → I1
  26. Translate(I1, Vector[(0, 1)]) → J1
  27. Translate(B2, Vector[(0, 1)]) → C2
  28. Translate(C2, Vector[(0, 1)]) → D2
  29. Translate(D2, Vector[(0, 1)]) → E2
  30. Translate(E2, Vector[(0, 1)]) → F2
  31. Translate(F2, Vector[(0, 1)]) → G2
  32. Translate(G2, Vector[(0, 1)]) → H2
  33. Translate(H2, Vector[(0, 1)]) → I2
  34. Translate(I2, Vector[(0, 1)]) → J2
  35. Translate(B3, Vector[(0, 1)]) → C3
  36. Translate(C3, Vector[(0, 1)]) → D3
  37. Translate(D3, Vector[(0, 1)]) → E3
  38. Translate(E3, Vector[(0, 1)]) → F3
  39. Translate(F3, Vector[(0, 1)]) → G3
  40. Translate(G3, Vector[(0, 1)]) → H3
  41. Translate(H3, Vector[(0, 1)]) → I3
  42. Translate(I3, Vector[(0, 1)]) → J3
  43. Translate(B4, Vector[(0, 1)]) → C4
  44. Translate(C4, Vector[(0, 1)]) → D4
  45. Translate(D4, Vector[(0, 1)]) → E4
  46. Translate(E4, Vector[(0, 1)]) → F4
  47. Translate(F4, Vector[(0, 1)]) → G4
  48. Translate(G4, Vector[(0, 1)]) → H4
  49. Translate(H4, Vector[(0, 1)]) → I4
  50. Translate(I4, Vector[(0, 1)]) → J4
  51. Translate(B5, Vector[(0, 1)]) → C5
  52. Translate(C5, Vector[(0, 1)]) → D5
  53. Translate(D5, Vector[(0, 1)]) → E5
  54. Translate(E5, Vector[(0, 1)]) → F5
  55. Translate(F5, Vector[(0, 1)]) → G5
  56. Translate(G5, Vector[(0, 1)]) → H5
  57. Translate(H5, Vector[(0, 1)]) → I5
  58. Translate(I5, Vector[(0, 1)]) → J5
  59. Translate(B6, Vector[(0, 1)]) → C6
  60. Translate(C6, Vector[(0, 1)]) → D6
  61. Translate(D6, Vector[(0, 1)]) → E6
  62. Translate(E6, Vector[(0, 1)]) → F6
  63. Translate(F6, Vector[(0, 1)]) → G6
  64. Translate(G6, Vector[(0, 1)]) → H6
  65. Translate(H6, Vector[(0, 1)]) → I6
  66. Translate(I6, Vector[(0, 1)]) → J6
  67. Translate(B7, Vector[(0, 1)]) → C7
  68. Translate(C7, Vector[(0, 1)]) → D7
  69. Translate(D7, Vector[(0, 1)]) → E7
  70. Translate(E7, Vector[(0, 1)]) → F7
  71. Translate(F7, Vector[(0, 1)]) → G7
  72. Translate(G7, Vector[(0, 1)]) → H7
  73. Translate(H7, Vector[(0, 1)]) → I7
  74. Translate(I7, Vector[(0, 1)]) → J7
  75. Sequence(Sequence[(x(Cor11) + wid / 2 + (ii * (Hspace + wid)), jj), jj, 0.5, 8.5, 1], ii, 0, numOfDigits - 1) → PosPlacesValues, {{(1.25, 0.5), (1.25, 1.5), (1.25, 2.5), (1.25, 3.5), (1.25, 4.5), (1.25, 5.5), (1.25, 6.5), (1.25, 7.5), (1.25, 8.5)}, {(3.75, 0.5), (3.75, 1.5), (3.75, 2.5), (3.75, 3.5), (3.75, 4.5), (3.75, 5.5), (3.75, 6.5), (3.75, 7.5), (3.75, 8.5)}, {(6.25, 0.5), (6.25, 1.5), (6.25, 2.5), (6.25, 3.5), (6.25, 4.5), (6.25, 5.5), (6.25, 6.5), (6.25, 7.5), (6.25, 8.5)}, {(8.75, 0.5), (8.75, 1.5), (8.75, 2.5), (8.75, 3.5), (8.75, 4.5), (8.75, 5.5), (8.75, 6.5), (8.75, 7.5), (8.75, 8.5)}}
  76. Sum(Sequence[(digits(nn) * 10^(numOfDigits - nn)), nn, 1, numOfDigits]) → targetNumber
  77. Segment(EPL1, EPR1) → Segment1
  78. Segment(EPL2, EPR2) → Segment2
  79. Segment(EPL3, EPR3) → Segment3
  80. Segment(EPL4, EPR4) → Segment4
  81. Segment(EPL5, EPR5) → Segment5
  82. Segment(EPL6, EPR6) → Segment6
  83. Segment(EPL7, EPR7) → Segment7
  84. Polygon(Cor11, Cor12, EPR1, EPL1) → q1, f, g, h, i
  85. Polygon(Cor21, Cor22, EPR2, EPL2) → q2, j, k, l, m
  86. Polygon(Cor31, Cor32, EPR3, EPL3) → q3, n, p, q, r
  87. Polygon(Cor41, Cor42, EPR4, EPL4) → q4, s, t, c, d
  88. Polygon(Cor51, Cor52, EPR5, EPL5) → q5, e, f_1, g_1, h_1
  89. Polygon(Cor61, Cor62, EPR6, EPL6) → q6, i_1, j_1, k_1, l_1
  90. Polygon(Cor71, Cor72, EPR7, EPL7) → q7, m_1, n_1, p_1, q_1
  91. Zip(Text[((nn * "\times") * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → Products
  92. Zip(Text[(nn * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → ProductsResults
  93. Sequence((5 + ((2.5 * Min[Max[3 - anim, 0.15], 1]) * ii), -2.5), ii, -1, 1) → posInputDigits
  94. Translate(hGL, Vector[(Vector[Corner[1], Corner[4]] / 500 * 16)]) → hGL'
  95. expandSegment(EPL1, EPR1, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject1
  96. expandSegment(EPL2, EPR2, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject2
  97. expandSegment(EPL3, EPR3, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject3
  98. expandSegment(EPL4, EPR4, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject4
  99. Take(Zip[Midpoint[PP, QQ], PP, PosResults, QQ, Take[PosResults, 2]], 1, numOfDigits - 1) → posPlusSigns
  100. Zip(Text["+", PP, true, true, 0, 0], PP, posPlusSigns) → plusSigns
  101. Zip(Polygon[{PP, PP + (wid, 0), PP + (wid, dd), PP + (0, dd)}], PP, Corners, dd, digits) → polySol
  102. Zip(((dd * "\times") * 10^(nn)), dd, digits, nn, Reverse[Sequence[0, numOfDigits - 1]]) → tableSol
  103. Sequence(Zip[Text[10^(abs(numOfDigits - ii)), PP, true, true, 0, 0], PP, Element[PosPlacesValues, ii]], ii, 1, numOfDigits) → PlacesValues
  104. Sequence(Polygon[{Cor11 + (0, ii), Cor12 + (0, ii), Cor12 + (0, ii + 1), Cor11 + (0, ii + 1)}], ii, 0, 8) → l1
  105. Sequence(Polygon[{Cor21 + (0, ii), Cor22 + (0, ii), Cor22 + (0, ii + 1), Cor21 + (0, ii + 1)}], ii, 0, 8) → l2
  106. Sequence(Polygon[{Cor31 + (0, ii), Cor32 + (0, ii), Cor32 + (0, ii + 1), Cor31 + (0, ii + 1)}], ii, 0, 8) → l3
  107. Sequence(Polygon[{Cor41 + (0, ii), Cor42 + (0, ii), Cor42 + (0, ii + 1), Cor41 + (0, ii + 1)}], ii, 0, 8) → l4
  108. Translate(PosProducts, (0, -3.5)) → PosProducts'
  109. Zip(Text[tt, PP, true, true, 0, 0], tt, tableSol, PP, PosProducts') → l5
  110. Zip(Text["+", PP, true, true, 0, 0], PP, Zip[Midpoint[QQ, RR], QQ, PosProducts', RR, Take[PosProducts', 2]]) → l6
  111. Take(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, ProductsResults, PP, PosResults, col, colors], 1, Min[((anim - 1) * 22), numOfDigits]) → ResultsPositioned
  112. Zip(Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), pp, true, true, 0, 0], tt, Products, pp, PosProducts, col, colors) → ProductsPos
  113. Dilate(PosResults', Min[Max[3 - anim, 0.1], 1], (5, -3)) → PosResults''
  114. Sum(Zip[(nn * 10^(ii)), nn, inputCurrent, ii, Reverse[Sequence[0, 3]]]) → numberCreated
  115. If(numberCreated ≤ 9, 4, If[numberCreated ≤ 99, 3, If[numberCreated ≤ 999, 2, 1]]) → start
  116. Take(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, inputCurrent, PP, PosResults'', col, colors], start) → inputDigits

AI 绘图提示语参考

生成一个教学用画面:在画布中布置两段核心区域,一个中间的三角形及其放大/平移位置指引线,另在下方用一排竖向小方块构成可堆叠的视觉基座。三角形由三个顶点围成,随后再把同一组水平/位置的元素整体平移到更高的位置形成对应行;方块使用一组相同大小的矩形单元,并通过连续向上平移依次得到多层。整体带有一个居中视窗边界框与布局基准角点,同时附带一段引导文字放置在角落附近,便于展示位值分解与标准形式对应关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。