位值扩展形式与标准形式的转换:观察数的分解
几何画板及绘图内容加载中,请稍等……
该范例通过可视化方式让学习者构建数字的“扩展形式”,并观察其如何对应到“标准形式”。核心数学概念包括:自然数的位值含义、扩展表示(如把各位数字拆成乘法与加法的形式)、以及标准记数法与扩展记数法之间的等价关系。作图/交互要点可从构造摘要提炼:利用 Sequence 生成数字与位数相关的序列,并用 Take、If、Append 对随机题/数据进行条件选择与列表拼接;通过 Translate、Sum、Segment、Polygon、Corner 组织与组合图形元素;再用 expandSegment 与 Dilate 进行线段/图形的扩展与缩放以体现不同位值的“条形/段”的数量关系;同时结合动画对象与输入对象(如 anim、inputCurrent)驱动题目中的数字拆分与结果呈现(并以 Sum 与相关对象名承载计算汇总)。适合四到五年级学生用于数感训练,也可作为课堂练习或作业活动:让学生回答扩展形式与位值“条形数量”的关系、以及为什么扩展形式采用乘法与加法分解的原因。
GeoGebra 命令及参数
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}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsIf(countQuestion ≟ 0, 4, If[currentRandomSeeds(7) ≥ 0.5, 4, 4]) → numOfDigitsSequence((x(Cor11) + wid / 2 + (ii * (wid + Hspace)), -0.8), ii, 0, numOfDigits - 1) → PosProductsTranslate(PosProducts, (0, -1)) → PosResultsTranslate(PosResults, Vector[(0, 1.6 - 2.5)]) → PosResults'Append(Max[floor((currentRandomSeeds(1) * 10)), 1], Take[Zip[floor((nn * 10)), nn, currentRandomSeeds], 2, numOfDigits]) → digitsCorner(5) → layoutAppSizePolygon(inputPoint, TriA, TriB) → tri, b, inputpoint, aPolygon({(-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]) → OnboardingTextOffsetPolygon({(A1, 0), (A1 + 1, 0), (A1 + 1, 1), (A1, 1)}) → B1Polygon({(A2, 0), (A2 + 1, 0), (A2 + 1, 1), (A2, 1)}) → B2Polygon({(A3, 0), (A3 + 1, 0), (A3 + 1, 1), (A3, 1)}) → B3Polygon({(A4, 0), (A4 + 1, 0), (A4 + 1, 1), (A4, 1)}) → B4Polygon({(A5, 0), (A5 + 1, 0), (A5 + 1, 1), (A5, 1)}) → B5Polygon({(A6, 0), (A6 + 1, 0), (A6 + 1, 1), (A6, 1)}) → B6Polygon({(A7, 0), (A7 + 1, 0), (A7 + 1, 1), (A7, 1)}) → B7Translate(B1, Vector[(0, 1)]) → C1Translate(C1, Vector[(0, 1)]) → D1Translate(D1, Vector[(0, 1)]) → E1Translate(E1, Vector[(0, 1)]) → F1Translate(F1, Vector[(0, 1)]) → G1Translate(G1, Vector[(0, 1)]) → H1Translate(H1, Vector[(0, 1)]) → I1Translate(I1, Vector[(0, 1)]) → J1Translate(B2, Vector[(0, 1)]) → C2Translate(C2, Vector[(0, 1)]) → D2Translate(D2, Vector[(0, 1)]) → E2Translate(E2, Vector[(0, 1)]) → F2Translate(F2, Vector[(0, 1)]) → G2Translate(G2, Vector[(0, 1)]) → H2Translate(H2, Vector[(0, 1)]) → I2Translate(I2, Vector[(0, 1)]) → J2Translate(B3, Vector[(0, 1)]) → C3Translate(C3, Vector[(0, 1)]) → D3Translate(D3, Vector[(0, 1)]) → E3Translate(E3, Vector[(0, 1)]) → F3Translate(F3, Vector[(0, 1)]) → G3Translate(G3, Vector[(0, 1)]) → H3Translate(H3, Vector[(0, 1)]) → I3Translate(I3, Vector[(0, 1)]) → J3Translate(B4, Vector[(0, 1)]) → C4Translate(C4, Vector[(0, 1)]) → D4Translate(D4, Vector[(0, 1)]) → E4Translate(E4, Vector[(0, 1)]) → F4Translate(F4, Vector[(0, 1)]) → G4Translate(G4, Vector[(0, 1)]) → H4Translate(H4, Vector[(0, 1)]) → I4Translate(I4, Vector[(0, 1)]) → J4Translate(B5, Vector[(0, 1)]) → C5Translate(C5, Vector[(0, 1)]) → D5Translate(D5, Vector[(0, 1)]) → E5Translate(E5, Vector[(0, 1)]) → F5Translate(F5, Vector[(0, 1)]) → G5Translate(G5, Vector[(0, 1)]) → H5Translate(H5, Vector[(0, 1)]) → I5Translate(I5, Vector[(0, 1)]) → J5Translate(B6, Vector[(0, 1)]) → C6Translate(C6, Vector[(0, 1)]) → D6Translate(D6, Vector[(0, 1)]) → E6Translate(E6, Vector[(0, 1)]) → F6Translate(F6, Vector[(0, 1)]) → G6Translate(G6, Vector[(0, 1)]) → H6Translate(H6, Vector[(0, 1)]) → I6Translate(I6, Vector[(0, 1)]) → J6Translate(B7, Vector[(0, 1)]) → C7Translate(C7, Vector[(0, 1)]) → D7Translate(D7, Vector[(0, 1)]) → E7Translate(E7, Vector[(0, 1)]) → F7Translate(F7, Vector[(0, 1)]) → G7Translate(G7, Vector[(0, 1)]) → H7Translate(H7, Vector[(0, 1)]) → I7Translate(I7, Vector[(0, 1)]) → J7Sequence(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)}}Sum(Sequence[(digits(nn) * 10^(numOfDigits - nn)), nn, 1, numOfDigits]) → targetNumberSegment(EPL1, EPR1) → Segment1Segment(EPL2, EPR2) → Segment2Segment(EPL3, EPR3) → Segment3Segment(EPL4, EPR4) → Segment4Segment(EPL5, EPR5) → Segment5Segment(EPL6, EPR6) → Segment6Segment(EPL7, EPR7) → Segment7Polygon(Cor11, Cor12, EPR1, EPL1) → q1, f, g, h, iPolygon(Cor21, Cor22, EPR2, EPL2) → q2, j, k, l, mPolygon(Cor31, Cor32, EPR3, EPL3) → q3, n, p, q, rPolygon(Cor41, Cor42, EPR4, EPL4) → q4, s, t, c, dPolygon(Cor51, Cor52, EPR5, EPL5) → q5, e, f_1, g_1, h_1Polygon(Cor61, Cor62, EPR6, EPL6) → q6, i_1, j_1, k_1, l_1Polygon(Cor71, Cor72, EPR7, EPL7) → q7, m_1, n_1, p_1, q_1Zip(Text[((nn * "\times") * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → ProductsZip(Text[(nn * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → ProductsResultsSequence((5 + ((2.5 * Min[Max[3 - anim, 0.15], 1]) * ii), -2.5), ii, -1, 1) → posInputDigitsTranslate(hGL, Vector[(Vector[Corner[1], Corner[4]] / 500 * 16)]) → hGL'expandSegment(EPL1, EPR1, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject1expandSegment(EPL2, EPR2, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject2expandSegment(EPL3, EPR3, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject3expandSegment(EPL4, EPR4, (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingObject4Take(Zip[Midpoint[PP, QQ], PP, PosResults, QQ, Take[PosResults, 2]], 1, numOfDigits - 1) → posPlusSignsZip(Text["+", PP, true, true, 0, 0], PP, posPlusSigns) → plusSignsZip(Polygon[{PP, PP + (wid, 0), PP + (wid, dd), PP + (0, dd)}], PP, Corners, dd, digits) → polySolZip(((dd * "\times") * 10^(nn)), dd, digits, nn, Reverse[Sequence[0, numOfDigits - 1]]) → tableSolSequence(Zip[Text[10^(abs(numOfDigits - ii)), PP, true, true, 0, 0], PP, Element[PosPlacesValues, ii]], ii, 1, numOfDigits) → PlacesValuesSequence(Polygon[{Cor11 + (0, ii), Cor12 + (0, ii), Cor12 + (0, ii + 1), Cor11 + (0, ii + 1)}], ii, 0, 8) → l1Sequence(Polygon[{Cor21 + (0, ii), Cor22 + (0, ii), Cor22 + (0, ii + 1), Cor21 + (0, ii + 1)}], ii, 0, 8) → l2Sequence(Polygon[{Cor31 + (0, ii), Cor32 + (0, ii), Cor32 + (0, ii + 1), Cor31 + (0, ii + 1)}], ii, 0, 8) → l3Sequence(Polygon[{Cor41 + (0, ii), Cor42 + (0, ii), Cor42 + (0, ii + 1), Cor41 + (0, ii + 1)}], ii, 0, 8) → l4Translate(PosProducts, (0, -3.5)) → PosProducts'Zip(Text[tt, PP, true, true, 0, 0], tt, tableSol, PP, PosProducts') → l5Zip(Text["+", PP, true, true, 0, 0], PP, Zip[Midpoint[QQ, RR], QQ, PosProducts', RR, Take[PosProducts', 2]]) → l6Take(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, ProductsResults, PP, PosResults, col, colors], 1, Min[((anim - 1) * 22), numOfDigits]) → ResultsPositionedZip(Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), pp, true, true, 0, 0], tt, Products, pp, PosProducts, col, colors) → ProductsPosDilate(PosResults', Min[Max[3 - anim, 0.1], 1], (5, -3)) → PosResults''Sum(Zip[(nn * 10^(ii)), nn, inputCurrent, ii, Reverse[Sequence[0, 3]]]) → numberCreatedIf(numberCreated ≤ 9, 4, If[numberCreated ≤ 99, 3, If[numberCreated ≤ 999, 2, 1]]) → startTake(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, inputCurrent, PP, PosResults'', col, colors], start) → inputDigits
AI 绘图提示语参考
生成一个教学用画面:在画布中布置两段核心区域,一个中间的三角形及其放大/平移位置指引线,另在下方用一排竖向小方块构成可堆叠的视觉基座。三角形由三个顶点围成,随后再把同一组水平/位置的元素整体平移到更高的位置形成对应行;方块使用一组相同大小的矩形单元,并通过连续向上平移依次得到多层。整体带有一个居中视窗边界框与布局基准角点,同时附带一段引导文字放置在角落附近,便于展示位值分解与标准形式对应关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。