Locating Fractions on a Number Line

Locating Fractions on a Number Line
Loading the math board and drawing, please wait…
2020-11-03 09:09
① This example demonstrates how to drag fractions to their correct positions on a number line and receive immediate feedback. ② Core math concepts include the meaning of fractions, the correspondence between points on a number line and rational numbers, and comparing fraction sizes. ③ Construction highlights: using GeoGebra commands such as If, Vector, and Sequence to create multiple draggable fraction points (e.g., fracX41) and corresponding target position sets (Frac4PtSet1), with conditional logic (If) and sequences (Sequence) to generate feedback, and vectors (Vector) to assist positioning. ④ Suitable for upper elementary to middle school students learning fractions and number lines, as well as for classroom demonstrations or self-paced practice, helping learners intuitively grasp the relationship between fractions and their locations on the number line.

GeoGebra Commands & Parameters

  1. If(set ≟ 1, Frac4PtSet1, If[set ≟ 2, Frac4PtSet2, If[set ≟ 3, Frac4PtSet3, If[set ≟ 4, Frac4PtSet4, If[set ≟ 5, Frac4PtSet5, Frac4PtSet6]]]]) → frac4MasterPt
  2. 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
  3. 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
  4. If(set ≟ 1, Frac3PtSet1, If[set ≟ 2, Frac3PtSet2, If[set ≟ 3, Frac3PtSet3, If[set ≟ 4, Frac3PtSet4, If[set ≟ 5, Frac3PtSet5, Frac3PtSet6]]]]) → frac3MasterPt
  5. 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
  6. If(set ≟ 1, Frac2PtSet1, If[set ≟ 2, Frac2PtSet2, If[set ≟ 3, Frac2PtSet3, If[set ≟ 4, Frac2PtSet4, If[set ≟ 5, Frac2PtSet5, Frac2PtSet6]]]]) → frac2MasterPt
  7. 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
  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(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
  10. Vector((1, 0), (-0.2, 0)) → numLnL
  11. Vector((1, 0), (2.2, 0)) → numLnR
  12. Sequence((k - 0.037, -0.25), k, 0, 2, (Element[numLnMax, set] * Element[numLnHash, set])) → labelPtList
  13. 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
  14. If(x(Frac4PtLn) / Element[numLnMax, set] ≥ Element[frac4Num, set] / Element[frac4Denom, set] - 0.016 ∧ x(Frac4PtLn) / Element[numLnMax, set] ≤ Element[frac4Num, set] / Element[frac4Denom, set] + 0.016, true, false) → frac4PlaceYN
  15. If(x(Frac3PtLn) / Element[numLnMax, set] ≥ Element[frac3Num, set] / Element[frac3Denom, set] - 0.016 ∧ x(Frac3PtLn) / Element[numLnMax, set] ≤ Element[frac3Num, set] / Element[frac3Denom, set] + 0.016, true, false) → frac3PlaceYN
  16. If(x(Frac2PtLn) / Element[numLnMax, set] ≥ Element[frac2Num, set] / Element[frac2Denom, set] - 0.016 ∧ x(Frac2PtLn) / Element[numLnMax, set] ≤ Element[frac2Num, set] / Element[frac2Denom, set] + 0.016, true, false) → frac2PlaceYN
  17. If(x(Frac1PtLn) / Element[numLnMax, set] ≥ Element[frac1Num, set] / Element[frac1Denom, set] - 0.016 ∧ x(Frac1PtLn) / Element[numLnMax, set] ≤ Element[frac1Num, set] / Element[frac1Denom, set] + 0.016, true, false) → frac1PlaceYN
  18. 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]]]]]) → hintMasterYN
  19. Vector(frac3MasterPt + (0.04, -1.5), Frac3PtLn + (0, 0.2)) → Frac3Seg
  20. Vector(frac1MasterPt + (0.04, -1.5), Frac1PtLn + (0, 0.2)) → Frac1Seg
  21. Vector(frac2MasterPt + (0.04, -1.5), Frac2PtLn + (0, 0.2)) → Frac2Seg
  22. Vector(frac4MasterPt + (0.04, -1.5), Frac4PtLn + (0, 0.2)) → Frac4Seg
  23. Sequence(Segment[(i, 0.28), (i, -0.28)], i, 0, 2, (Element[numLnMax, set] * Element[numLnHash, set])) → scaleHashZXaxis
  24. 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
  25. Sequence((0.26 + j, 3.7), j, 0, 1.5, 0.498) → fracAlignPts

AI Drawing Prompt Reference

Create a horizontal number line with multiple equally spaced points, each representing a fraction. Design draggable fraction points that snap to the correct position on the number line. Provide immediate feedback indicating whether each fraction is placed correctly based on its value and position. Include labels for the number line and fraction points, helping to illustrate the relationship between fractions and their positions on the number line for educational purposes.
The prompt above was compiled from the original drawing commands and is for reference only.