用 GeoGebra 展示数位价值

用 GeoGebra 展示数位价值
几何画板及绘图内容加载中,请稍等……
2016-08-26 01:05
①本范例通过 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 命令及参数

  1. Textfield(nText) → InputBox1
  2. Max(10, ceil(sqrt((10 * floor(n / 10))))) → tensSize
  3. Sequence(Point[{(2 * i) - ((2 * onesSize) * floor(i / onesSize)), (2 * floor(i / onesSize))}], i, 0, n - 1) → fixedOnes
  4. Flatten(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]) → fixedTens
  5. Sequence(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) → fixedHundreds
  6. First(fixedHundreds, (100 * onesToHundreds) + (100 * tensToHundreds)) → hundreds
  7. First(fixedOnes, n - (10 * onesToTens) - (100 * onesToHundreds)) → ones
  8. First(fixedTens, (10 * onesToTens) - (100 * tensToHundreds)) → tens
  9. If(Length[Remove[was, ones]] ≟ Length[Last[tens, 10]], (Remove[was, ones] * (1 - move)) + (Last[tens, 10] * move), {}) → m1to10
  10. If(Length[Remove[was, ones]] ≟ Length[Last[hundreds, 100]], (Remove[was, ones] * (1 - move)) + (Last[hundreds, 100] * move), {}) → m1to100
  11. If(Length[Remove[was, hundreds]] ≟ Length[Last[ones, 100]], (Remove[was, hundreds] * (1 - move)) + (Last[ones, 100] * move), {}) → m100to1
  12. If(Length[Remove[was, hundreds]] ≟ Length[Last[tens, 100]], (Remove[was, hundreds] * (1 - move)) + (Last[tens, 100] * move), {}) → m100to10
  13. If(Length[Remove[was, tens]] ≟ Length[Last[hundreds, 100]], (Remove[was, tens] * (1 - move)) + (Last[hundreds, 100] * move), {}) → m10to100
  14. If(Length[Remove[was, tens]] ≟ Length[Last[ones, 10]], (Remove[was, tens] * (1 - move)) + (Last[ones, 10] * move), {}) → m10to1
  15. If(Length[tens] > 0, Sequence[Polygon[Element[tens, i], Element[tens, i] + (1, 0), 4], i, 1, Length[tens]], {}) → tensPoly
  16. If(Length[ones] > 0, Sequence[Polygon[Element[ones, i], Element[ones, i] + (1, 0), 4], i, 1, Length[ones]], {}) → onesPoly
  17. If(Length[oldHundreds] > 0, Sequence[Polygon[Element[oldHundreds, i], Element[oldHundreds, i] + (1, 0), 4], i, 1, Length[oldHundreds]], {}) → oldHundredsPoly
  18. If(Length[oldOnes] > 0, Sequence[Polygon[Element[oldOnes, i], Element[oldOnes, i] + (1, 0), 4], i, 1, Length[oldOnes]], {}) → oldOnesPoly
  19. If(Length[oldTens] > 0, Sequence[Polygon[Element[oldTens, i], Element[oldTens, i] + (1, 0), 4], i, 1, Length[oldTens]], {}) → oldTensPoly
  20. If(Length[m100to1] > 0, Sequence[Polygon[Element[m100to1, i], Element[m100to1, i] + (1, 0), 4], i, 1, Length[m100to1]], {}) → m100to1poly
  21. If(Length[m10to1] > 0, Sequence[Polygon[Element[m10to1, i], Element[m10to1, i] + (1, 0), 4], i, 1, Length[m10to1]], {}) → m10to1poly
  22. If(Length[m100to10] > 0, Sequence[Polygon[Element[m100to10, i], Element[m100to10, i] + (1, 0), 4], i, 1, Length[m100to10]], {}) → m100to10poly
  23. If(Length[m1to100] > 0, Sequence[Polygon[Element[m1to100, i], Element[m1to100, i] + (1, 0), 4], i, 1, Length[m1to100]], {}) → m1to100poly
  24. If(Length[m1to10] > 0, Sequence[Polygon[Element[m1to10, i], Element[m1to10, i] + (1, 0), 4], i, 1, Length[m1to10]], {}) → m1to10poly
  25. If(Length[m10to100] > 0, Sequence[Polygon[Element[m10to100, i], Element[m10to100, i] + (1, 0), 4], i, 1, Length[m10to100]], {}) → m10to100poly
  26. If(Length[hundreds] > 0, Sequence[Polygon[Element[hundreds, i], Element[hundreds, i] + (1, 0), 4], i, 1, Length[hundreds]], {}) → hundredsPoly
  27. If(n ≥ 100, left, left2) → lefty
  28. If(n ≥ 100, right, right2) → righty
  29. If(Defined[hundreds], Length[hundreds], 0) → HL
  30. If(Defined[tens], Length[tens], 0) → TL
  31. If(Defined[ones], Length[ones], 0) → OL
  32. If(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 绘图提示语参考

绘制一个动态展示十进制位值概念的图形,包含单位、十位和百位。首先创建一个文本输入框,输入一个数字。根据输入的数字,动态生成单位、十位和百位的点,并用多边形表示。当数字变化时,动态调整这些点的位置,展示位值的变化过程。
以上提示语为根据原始绘图命令整理而来,仅供参考。