数字的展开式建模:标准形式与展开形式转换
几何画板及绘图内容加载中,请稍等……
该范例通过GeoGebra动态演示了将标准形式的三位或四位自然数转换为展开形式(如千位、百位、十位、个位分别乘以对应位值再相加)的过程。核心数学概念是位值制(place value)与数的展开表示,帮助学生理解数字中每个数位所代表的实际数量。作图要点包括使用RandomUniform随机生成数字、Take提取各位数字、Sequence与Sum构建展开式、Segment和Polygon绘制位值块或数位卡片,并通过滑块(slider)和动画(anim)控制交互,实现标准形式与展开形式的可视化对应。适合小学4-5年级学生练习数感,也可用于教师课堂演示或学生自主探索,支持西班牙语版本,是经过验证的教学资源。
GeoGebra 命令及参数
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}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsIf(countQuestion ≟ 0, 3, If[currentRandomSeeds(7) ≥ 0.5, 3, 4]) → numOfDigitsAppend(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, {{(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)}}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]) → ProductsSequence((x(Cor11) + wid / 2 + (ii * (wid + Hspace)), -0.8), ii, 0, numOfDigits - 1) → PosProductsZip(Text[(nn * 10^(numOfDigits - ii))], nn, inputCurrent, ii, Sequence[1, numOfDigits]) → ProductsResultsTranslate(PosProducts, (0, -0.8)) → PosResultsSequence((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(PosResults, Vector[(0, 1.6 - 2.5)]) → PosResults'Dilate(PosResults', Min[Max[3 - anim, 0.1], 1], (5, -2.5)) → PosResults''Zip(Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, inputCurrent, PP, PosResults'', col, colors) → inputDigitsTranslate(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, Products, pp, PosProducts, col, colors], 1, Min[(anim * 22), numOfDigits]) → ProductsPosTake(Zip[Text[(((("\textcolor{" * col) * "}{") * tt) * "}"), PP, true, true, 0, 0], tt, ProductsResults, PP, PosResults, col, colors], 1, Min[((anim - 1) * 22), numOfDigits]) → ResultsPositioned
AI 绘图提示语参考
画一个动态模型,展示三位或四位自然数如何转换为展开形式。随机生成数字,提取每个数字,用矩形表示每个位上的值(千、百、十、个),并将它们垂直堆叠。每个矩形的高度代表数值大小,用线段连接,展示标准形式和展开形式的联系。背景是浅灰色,包含一个边框为深灰色的矩形作为画布。
以上提示语为根据原始绘图命令整理而来,仅供参考。