用 GeoGebra 展示数位价值
几何画板及绘图内容加载中,请稍等……
①本范例通过 GeoGebra 动态演示数字的数位价值,直观展示个位、十位、百位数值变化;②涉及核心数学概念为数位系统、十进制运算、数值表示;③构造要点运用了 Textfield, Max, Sequence, Flatten, First, If 等命令,结合对象 n, nText, InputBox1, showText, started, started2, onesToTens, onesToHundreds, tensToHundreds, button1, button8, button9, button2, button3, button4, button5, button6, button7, hundredsSize, onesSize, tensSize, move, fixedOnes, fixedTens, fixedHundreds, hundreds, ones, tens, oldTens, oldOnes, oldHundreds, text1, was, m1to10, m1to100, m100to1, m100to10, m10to100, m10to1, tensPoly 等实现数值交互与可视化;④适合小学高年级及初中生学习数位概念,也可用于数学教学演示。
GeoGebra 命令及参数
Textfield(nText) → InputBox1Max(10, ceil(sqrt((10 * floor(n / 10))))) → tensSizeSequence(Point[{(2 * i) - ((2 * onesSize) * floor(i / onesSize)), (2 * floor(i / onesSize))}], i, 0, n - 1) → fixedOnesFlatten(Sequence[Sequence[Point[{(-2 * (tensSize + 1)) + (2 * i) - ((2 * tensSize) * floor(i / tensSize)), j + (11 * floor(i / tensSize))}], j, 0, 9], i, 0, floor(n / 10) - 1]) → fixedTensSequence(Point[{(11 * (Div[i, 100] - (hundredsSize * Div[Div[i, 100], hundredsSize]))) + i - (10 * Div[i, 10]) - (2 * (tensSize + 2)) - (11 * hundredsSize), Div[i, 10] - (10 * Div[i, 100]) + (11 * Div[Div[i, 100], hundredsSize])}], i, 0, (100 * Div[n, 100]) - 1) → fixedHundredsFirst(fixedHundreds, (100 * onesToHundreds) + (100 * tensToHundreds)) → hundredsFirst(fixedOnes, n - (10 * onesToTens) - (100 * onesToHundreds)) → onesFirst(fixedTens, (10 * onesToTens) - (100 * tensToHundreds)) → tensIf(Length[Remove[was, ones]] ≟ Length[Last[tens, 10]], (Remove[was, ones] * (1 - move)) + (Last[tens, 10] * move), {}) → m1to10If(Length[Remove[was, ones]] ≟ Length[Last[hundreds, 100]], (Remove[was, ones] * (1 - move)) + (Last[hundreds, 100] * move), {}) → m1to100If(Length[Remove[was, hundreds]] ≟ Length[Last[ones, 100]], (Remove[was, hundreds] * (1 - move)) + (Last[ones, 100] * move), {}) → m100to1If(Length[Remove[was, hundreds]] ≟ Length[Last[tens, 100]], (Remove[was, hundreds] * (1 - move)) + (Last[tens, 100] * move), {}) → m100to10If(Length[Remove[was, tens]] ≟ Length[Last[hundreds, 100]], (Remove[was, tens] * (1 - move)) + (Last[hundreds, 100] * move), {}) → m10to100If(Length[Remove[was, tens]] ≟ Length[Last[ones, 10]], (Remove[was, tens] * (1 - move)) + (Last[ones, 10] * move), {}) → m10to1If(Length[tens] > 0, Sequence[Polygon[Element[tens, i], Element[tens, i] + (1, 0), 4], i, 1, Length[tens]], {}) → tensPolyIf(Length[ones] > 0, Sequence[Polygon[Element[ones, i], Element[ones, i] + (1, 0), 4], i, 1, Length[ones]], {}) → onesPolyIf(Length[oldHundreds] > 0, Sequence[Polygon[Element[oldHundreds, i], Element[oldHundreds, i] + (1, 0), 4], i, 1, Length[oldHundreds]], {}) → oldHundredsPolyIf(Length[oldOnes] > 0, Sequence[Polygon[Element[oldOnes, i], Element[oldOnes, i] + (1, 0), 4], i, 1, Length[oldOnes]], {}) → oldOnesPolyIf(Length[oldTens] > 0, Sequence[Polygon[Element[oldTens, i], Element[oldTens, i] + (1, 0), 4], i, 1, Length[oldTens]], {}) → oldTensPolyIf(Length[m100to1] > 0, Sequence[Polygon[Element[m100to1, i], Element[m100to1, i] + (1, 0), 4], i, 1, Length[m100to1]], {}) → m100to1polyIf(Length[m10to1] > 0, Sequence[Polygon[Element[m10to1, i], Element[m10to1, i] + (1, 0), 4], i, 1, Length[m10to1]], {}) → m10to1polyIf(Length[m100to10] > 0, Sequence[Polygon[Element[m100to10, i], Element[m100to10, i] + (1, 0), 4], i, 1, Length[m100to10]], {}) → m100to10polyIf(Length[m1to100] > 0, Sequence[Polygon[Element[m1to100, i], Element[m1to100, i] + (1, 0), 4], i, 1, Length[m1to100]], {}) → m1to100polyIf(Length[m1to10] > 0, Sequence[Polygon[Element[m1to10, i], Element[m1to10, i] + (1, 0), 4], i, 1, Length[m1to10]], {}) → m1to10polyIf(Length[m10to100] > 0, Sequence[Polygon[Element[m10to100, i], Element[m10to100, i] + (1, 0), 4], i, 1, Length[m10to100]], {}) → m10to100polyIf(Length[hundreds] > 0, Sequence[Polygon[Element[hundreds, i], Element[hundreds, i] + (1, 0), 4], i, 1, Length[hundreds]], {}) → hundredsPolyIf(n ≥ 100, left, left2) → leftyIf(n ≥ 100, right, right2) → rightyIf(Defined[hundreds], Length[hundreds], 0) → HLIf(Defined[tens], Length[tens], 0) → TLIf(Defined[ones], Length[ones], 0) → OLIf(showText, If[showEqn, Text[HL + TL + OL] + "=" + (If[HL > 0, Text[HL], ""]) + (If[(HL > 0) ∧ (TL > 0), "+", ""]) + (If[TL > 0, Text[TL], ""]) + (If[(HL + TL > 0) ∧ (OL > 0), "+", ""]) + (If[OL > 0, Text[OL], ""]), Text[HL + TL + OL]], If[showEqn, If[HL > 0, Text[HL], ""] + (If[(HL > 0) ∧ (TL > 0), "+", ""]) + (If[TL > 0, Text[TL], ""]) + (If[(HL + TL > 0) ∧ (OL > 0), "+", ""]) + (If[OL > 0, Text[OL], ""]), ""]) → text3
AI 绘图提示语参考
绘制一个动态展示十进制位值概念的图形,包含单位、十位和百位。首先创建一个文本输入框,输入一个数字。根据输入的数字,动态生成单位、十位和百位的点,并用多边形表示。当数字变化时,动态调整这些点的位置,展示位值的变化过程。
以上提示语为根据原始绘图命令整理而来,仅供参考。