在数轴上定位小数(一)

在数轴上定位小数(一)
几何画板及绘图内容加载中,请稍等……
2018-09-20 23:05
① 本范例演示如何将小数(如0.3、1.7等)拖放到数轴上的正确位置,并通过即时反馈检验放置是否正确。② 核心数学概念包括小数的意义、数轴上的点与实数的一一对应关系、小数与分数之间的转换,以及数轴的刻度划分与区间估计。③ 作图要点:利用GeoGebra的Polygon、PointIn、If、Vector、Sequence等命令构建交互式数轴,通过snapHorHeight、restrictPts等对象控制吸附与限制,使用Frac1PtSet1至Frac1PtSet6等集合管理多个小数点的位置,并借助ckPlaceSet1至ckPlaceSet6实现正确性检测,numLnHash、numLnMin、numLnMax2等对象定义数轴刻度与范围。④ 适合小学高年级至初中阶段的学生学习小数与数轴,也可用于教师课堂演示或学生自主练习,帮助建立数感与空间定位能力。

GeoGebra 命令及参数

  1. Polygon((-0.05, 0.4), (2.05, 0.4), (2.05, 3.3), (-0.05, 3.3)) → restrictPts, f, g, h, i
  2. PointIn(restrictPts) → Frac1PtSet2
  3. PointIn(restrictPts) → Frac1PtSet3
  4. PointIn(restrictPts) → Frac1PtSet4
  5. PointIn(restrictPts) → Frac1PtSet5
  6. PointIn(restrictPts) → Frac1PtSet6
  7. PointIn(restrictPts) → Frac1PtSet1
  8. If(set ≟ 1, Frac1PtSet1, If[set ≟ 2, Frac1PtSet2, If[set ≟ 3, Frac1PtSet3, If[set ≟ 4, Frac1PtSet4, If[set ≟ 5, Frac1PtSet5, Frac1PtSet6]]]]) → frac1MasterPt
  9. If(set ≟ 1 ∧ ckPlaceSet1, true, If[set ≟ 2 ∧ ckPlaceSet2, true, If[set ≟ 3 ∧ ckPlaceSet3, true, If[set ≟ 4 ∧ ckPlaceSet4, true, If[set ≟ 5 ∧ ckPlaceSet5, true, If[set ≟ 6 ∧ ckPlaceSet6, true, false]]]]]) → placeMasterYN
  10. If(x(frac1MasterPt) < x(dotA) + snapHorAmt ∧ x(frac1MasterPt) > x(dotA) - snapHorAmt, x(dotA), If[x(frac1MasterPt) < x(dotB) + snapHorAmt ∧ x(frac1MasterPt) > x(dotB) - snapHorAmt, x(dotB), If[x(frac1MasterPt) < x(dotC) + snapHorAmt ∧ x(frac1MasterPt) > x(dotC) - snapHorAmt, x(dotC), If[x(frac1MasterPt) < x(dotD) + snapHorAmt ∧ x(frac1MasterPt) > x(dotD) - snapHorAmt, x(dotD), If[x(frac1MasterPt) < x(dotE) + snapHorAmt ∧ x(frac1MasterPt) > x(dotE) - snapHorAmt, x(dotE), If[x(frac1MasterPt) < x(dotF) + snapHorAmt ∧ x(frac1MasterPt) > x(dotF) - snapHorAmt, x(dotF), If[x(frac1MasterPt) < x(dotG) + snapHorAmt ∧ x(frac1MasterPt) > x(dotG) - snapHorAmt, x(dotG), x(frac1MasterPt)]]]]]]) → frac1X
  11. PointIn(restrictPts) → Frac3PtSet6
  12. PointIn(restrictPts) → Frac3PtSet5
  13. PointIn(restrictPts) → Frac3PtSet4
  14. PointIn(restrictPts) → Frac3PtSet3
  15. PointIn(restrictPts) → Frac3PtSet2
  16. PointIn(restrictPts) → Frac3PtSet1
  17. If(set ≟ 1, Frac3PtSet1, If[set ≟ 2, Frac3PtSet2, If[set ≟ 3, Frac3PtSet3, If[set ≟ 4, Frac3PtSet4, If[set ≟ 5, Frac3PtSet5, Frac3PtSet6]]]]) → frac3MasterPt
  18. PointIn(restrictPts) → Frac4PtSet6
  19. PointIn(restrictPts) → Frac4PtSet5
  20. PointIn(restrictPts) → Frac4PtSet4
  21. PointIn(restrictPts) → Frac4PtSet3
  22. PointIn(restrictPts) → Frac4PtSet2
  23. PointIn(restrictPts) → Frac4PtSet1
  24. If(set ≟ 1, Frac4PtSet1, If[set ≟ 2, Frac4PtSet2, If[set ≟ 3, Frac4PtSet3, If[set ≟ 4, Frac4PtSet4, If[set ≟ 5, Frac4PtSet5, Frac4PtSet6]]]]) → frac4MasterPt
  25. If(x(frac4MasterPt) < x(dotA) + snapHorAmt ∧ x(frac4MasterPt) > x(dotA) - snapHorAmt, x(dotA), If[x(frac4MasterPt) < x(dotB) + snapHorAmt ∧ x(frac4MasterPt) > x(dotB) - snapHorAmt, x(dotB), If[x(frac4MasterPt) < x(dotC) + snapHorAmt ∧ x(frac4MasterPt) > x(dotC) - snapHorAmt, x(dotC), If[x(frac4MasterPt) < x(dotD) + snapHorAmt ∧ x(frac4MasterPt) > x(dotD) - snapHorAmt, x(dotD), If[x(frac4MasterPt) < x(dotE) + snapHorAmt ∧ x(frac4MasterPt) > x(dotE) - snapHorAmt, x(dotE), If[x(frac4MasterPt) < x(dotF) + snapHorAmt ∧ x(frac4MasterPt) > x(dotF) - snapHorAmt, x(dotF), If[x(frac4MasterPt) < x(dotG) + snapHorAmt ∧ x(frac4MasterPt) > x(dotG) - snapHorAmt, x(dotG), x(frac4MasterPt)]]]]]]) → frac4X
  26. PointIn(restrictPts) → Frac2PtSet1
  27. PointIn(restrictPts) → Frac2PtSet2
  28. PointIn(restrictPts) → Frac2PtSet3
  29. PointIn(restrictPts) → Frac2PtSet4
  30. PointIn(restrictPts) → Frac2PtSet5
  31. PointIn(restrictPts) → Frac2PtSet6
  32. If(set ≟ 1, Frac2PtSet1, If[set ≟ 2, Frac2PtSet2, If[set ≟ 3, Frac2PtSet3, If[set ≟ 4, Frac2PtSet4, If[set ≟ 5, Frac2PtSet5, Frac2PtSet6]]]]) → frac2MasterPt
  33. If(x(frac2MasterPt) < x(dotA) + snapHorAmt ∧ x(frac2MasterPt) > x(dotA) - snapHorAmt, x(dotA), If[x(frac2MasterPt) < x(dotB) + snapHorAmt ∧ x(frac2MasterPt) > x(dotB) - snapHorAmt, x(dotB), If[x(frac2MasterPt) < x(dotC) + snapHorAmt ∧ x(frac2MasterPt) > x(dotC) - snapHorAmt, x(dotC), If[x(frac2MasterPt) < x(dotD) + snapHorAmt ∧ x(frac2MasterPt) > x(dotD) - snapHorAmt, x(dotD), If[x(frac2MasterPt) < x(dotE) + snapHorAmt ∧ x(frac2MasterPt) > x(dotE) - snapHorAmt, x(dotE), If[x(frac2MasterPt) < x(dotF) + snapHorAmt ∧ x(frac2MasterPt) > x(dotF) - snapHorAmt, x(dotF), If[x(frac2MasterPt) < x(dotG) + snapHorAmt ∧ x(frac2MasterPt) > x(dotG) - snapHorAmt, x(dotG), x(frac2MasterPt)]]]]]]) → frac2X
  34. If(x(frac3MasterPt) < x(dotA) + snapHorAmt ∧ x(frac3MasterPt) > x(dotA) - snapHorAmt, x(dotA), If[x(frac3MasterPt) < x(dotB) + snapHorAmt ∧ x(frac3MasterPt) > x(dotB) - snapHorAmt, x(dotB), If[x(frac3MasterPt) < x(dotC) + snapHorAmt ∧ x(frac3MasterPt) > x(dotC) - snapHorAmt, x(dotC), If[x(frac3MasterPt) < x(dotD) + snapHorAmt ∧ x(frac3MasterPt) > x(dotD) - snapHorAmt, x(dotD), If[x(frac3MasterPt) < x(dotE) + snapHorAmt ∧ x(frac3MasterPt) > x(dotE) - snapHorAmt, x(dotE), If[x(frac3MasterPt) < x(dotF) + snapHorAmt ∧ x(frac3MasterPt) > x(dotF) - snapHorAmt, x(dotF), If[x(frac3MasterPt) < x(dotG) + snapHorAmt ∧ x(frac3MasterPt) > x(dotG) - snapHorAmt, x(dotG), x(frac3MasterPt)]]]]]]) → frac3X
  35. Vector((1, 0), (-0.2, 0)) → numLnL
  36. Vector((1, 0), (2.2, 0)) → numLnR
  37. Sequence((k - 0.02, -0.25), k, 0, 2, (numLnRangeAdj * Element[numLnHash, set])) → labelPtList
  38. If(x(Frac1PtLn) ≤ 2.2 ∧ x(Frac2PtLn) ≤ 2.2 ∧ x(Frac3PtLn) ≤ 2.2 ∧ x(Frac4PtLn) ≤ 2.2 ∧ x(Frac1PtLn) ≥ -0.2 ∧ x(Frac2PtLn) ≥ -0.2 ∧ x(Frac3PtLn) ≥ -0.2 ∧ x(Frac4PtLn) ≥ -0.2 ∧ y(Frac1PtLn) ≟ 0 ∧ y(Frac2PtLn) ≟ 0 ∧ y(Frac3PtLn) ≟ 0 ∧ y(Frac4PtLn) ≟ 0, true, false) → allOnLine
  39. If((x(Frac3PtLn) * numLnRange / 2) + Element[numLnMin, set] ≥ Element[frac3Num, set] / Element[frac3Denom, set] - If[numLnRange < 1, 0.007, 0.016] ∧ (x(Frac3PtLn) * numLnRange / 2) + Element[numLnMin, set] ≤ Element[frac3Num, set] / Element[frac3Denom, set] + If[numLnRange < 1, 0.007, 0.016], true, false) → frac3PlaceYN
  40. If((x(Frac2PtLn) * numLnRange / 2) + Element[numLnMin, set] ≥ Element[frac2Num, set] / Element[frac2Denom, set] - If[numLnRange < 1, 0.007, 0.016] ∧ (x(Frac2PtLn) * numLnRange / 2) + Element[numLnMin, set] ≤ Element[frac2Num, set] / Element[frac2Denom, set] + If[numLnRange < 1, 0.007, 0.016], true, false) → frac2PlaceYN
  41. If((x(Frac1PtLn) * numLnRange / 2) + Element[numLnMin, set] ≥ Element[frac1Num, set] / Element[frac1Denom, set] - If[numLnRange < 1, 0.007, 0.016] ∧ (x(Frac1PtLn) * numLnRange / 2) + Element[numLnMin, set] ≤ Element[frac1Num, set] / Element[frac1Denom, set] + If[numLnRange < 1, 0.007, 0.016], true, false) → frac1PlaceYN
  42. If((x(Frac4PtLn) * numLnRange / 2) + Element[numLnMin, set] ≥ Element[frac4Num, set] / Element[frac4Denom, set] - If[numLnRange < 1, 0.007, 0.016] ∧ (x(Frac4PtLn) * numLnRange / 2) + Element[numLnMin, set] ≤ Element[frac4Num, set] / Element[frac4Denom, set] + If[numLnRange < 1, 0.007, 0.016], true, false) → frac4PlaceYN
  43. If(set ≟ 1 ∧ ckHintSet1, true, If[set ≟ 2 ∧ ckHintSet2, true, If[set ≟ 3 ∧ ckHintSet3, true, If[set ≟ 4 ∧ ckHintSet4, true, If[set ≟ 5 ∧ ckHintSet5, true, If[set ≟ 6 ∧ ckHintSet6, true, false]]]]]) → hintMasterYNa
  44. Sequence(Segment[(i, 0.28), (i, -0.28)], i, 0, 2, (numLnRangeAdj * Element[numLnHash, set])) → scaleHashXaxis
  45. If(set ≟ 1 ∧ ckHintSet1b, true, If[set ≟ 2 ∧ ckHintSet2b, true, If[set ≟ 3 ∧ ckHintSet3b, true, If[set ≟ 4 ∧ ckHintSet4b, true, If[set ≟ 5 ∧ ckHintSet5b, true, If[set ≟ 6 ∧ ckHintSet6b, true, false]]]]]) → hintMasterYNb
  46. Sequence((0.26 + j, 3), j, 0, 1.5, 0.498) → fracAlignPts