移动位值

移动位值
几何画板及绘图内容加载中,请稍等……
2019-08-16 22:12
该范例演示了数字位值的移动过程。核心数学概念包括位值制和数的表示。通过使用GeoGebra命令如Take、Sequence、Zip等,可以动态展示数字位值的变化。适合小学高年级或初中学生学习数的表示和位值概念。

GeoGebra 命令及参数

  1. Take({millions, hundredThousands, tenThousands, thousands, hundreds, tens, ones, tenths, hundredths, thousandths}, firstNonZero, lastNonZero) → centralText
  2. Sequence(Max[Sequence[If[floor(Element[newList, i] / 10^(j)) ≟ Element[newList, i] / 10^(j), j, 0], j, 0, ceil(log(10, Element[newList, i]))]], i, 1, Length[newList]) → neededZerosLeftHelper
  3. Zip(If[Defined[AAA], AAA, 0], AAA, neededZerosLeftHelper) → neededZerosLeft
  4. Zip(If[BBB < 1, abs(BBB), 0], BBB, Zip[ceil(log(10, AAA)), AAA, newList]) → neededZerosRight
  5. Sequence(Polygon[(i, 0), (i + 1, 0), 4], i, -7, 2) → boxes
  6. Sequence(Text[Element[{millions, hundredThousands, tenThousands, thousands, hundreds, tens, ones, tenths, hundredths, thousandths}, i], Centroid[Element[boxes, i]] + adjuster], i, 1, 10) → startingSet
  7. Sequence(Sequence[Text[0, Element[locations, i, Length[centralText]] + (j, 0)], j, 1, Element[neededZerosLeft, i]], i, 1, Length[newList] - (mover < 1)) → zerosLeft
  8. Sequence(Sequence[Text[0, Element[locations, i, 1] - (j, 0)], j, 1, Element[neededZerosRight, i]], i, 1, Length[newList] - (mover < 1)) → zerosRight
  9. If(Length[locations] > 0, Last[locations], {(999, 999)}) → targetPoints
  10. Zip(Centroid[AAA] + adjuster, AAA, boxes) → boxCentroids
  11. Zip((AAA * (1 - mover)) + (BBB * mover), AAA, Element[locations, Length[locations] - 1], BBB, Element[locations, Length[locations]]) → movingPoints
  12. Zip(Text[AAA, BBB], AAA, centralText, BBB, movingPoints) → movingText
  13. First(zerosLeft, Length[zerosLeft]) → showZerosLeft
  14. Sequence(Point[{0, ((-vertSpacing) * i) + 0.15}], i, 0, If[(¬started) ∨ fakeStart, 0, Length[locations] - 1]) → decimalPoints