Entering & Reading Fractions - Level 2

Entering & Reading Fractions - Level 2
Loading the math board and drawing, please wait…
2025-01-21 20:16
This interactive GeoGebra exercise trains students to place and read fractions (rational numbers) on a number line. The core mathematical concept is representing, comparing, and ordering rational numbers, with emphasis on precise positioning of fractions. Construction highlights include using GeoGebra commands such as Sequence, Join, Flatten, If, Element, Remove, Point, Textfield, Translate, Segment, Unique, KeepIf, Text, and Circle to generate number lines, manage dynamic question sets, and validate user inputs. The activity is designed for grades 7-8, suitable for classroom practice or homework, featuring a progression system where answering three consecutive questions correctly unlocks the next difficulty level, thereby reinforcing students' number sense and rational number visualization skills.

GeoGebra Commands & Parameters

  1. Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsList
  2. Join({{1}, Shuffle[2…6]}) → CaseZStartList
  3. Flatten(Sequence[CaseZStartList, k, 1, 20]) → CaseZList
  4. If(example, numberStartList(1), If[level ≟ 1, Level1StartNumber(CaseZ, counter), level ≟ 2, Level2StartNumber(CaseZ, counter), level ≟ 3, Level3StartNumber(CaseZ, counter)]) → numberStart
  5. If(example, numberStepList(1), numberStepList(CaseZ)) → numberStep
  6. Sequence(numberStart + (k * numberStep), k, 0, numberOfNumbers - 1) → AllNumbersList, {-3.75, -3.5, -3.25, -3, -2.75, -2.5, -2.25, -2, -1.75, -1.5, -1.25, -1, -0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, 3.25, 3.5, 3.75}
  7. If(example, 1, capStepList(CaseZ)) → capStep
  8. Element(KeepIf[Mod[a, 2] ∈ If[CaseZ ≟ 1, {0, 1}, CaseZ ≟ 2, {0}, CaseZ ≟ 3, {0, 1}, CaseZ ≟ 4, {0, 1}, CaseZ ≟ 5, {0, 1}, {0, 0.5, 1, 1.5}], a, AllNumbersList], 1) → capStart
  9. Sequence(capStart + (k * capStep), k, 0, numberOfNumbers - 1, capDis) → CapNumbersList, {-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}
  10. Flatten(Sequence[CaseQStartList, k, 1, 50]) → CaseQList
  11. Remove(AllNumbersList, CapNumbersList) → NumberList1
  12. Sequence(If[k ≟ 1, RandomElement[KeepIf[abs(a) > 1, a, Element[NumberDrawList, CaseZList(1)]]], RandomElement[Element[NumberDrawList, CaseZList(k)]]], k, 1, 100) → NumberList
  13. If(level ≟ 1, Level1SelectedNumberList(CaseZ, counter), level ≟ 2, Level2SelectedNumberList(CaseZ, counter), level ≟ 3, Level3SelectedNumberList(CaseZ, counter)) → selectedNumber
  14. Join({{StartPQ1}, AllPointsList}) → PointsQ1List
  15. Point(PointsQ1List) → PQ1
  16. If(selectedNumber < 0, SelectedIndex[dropdown01] ≟ 3, SelectedIndex[dropdown01] ∈ {1, 2}) → correctSign
  17. If(Defined[input1], input1 + input2 / input3 ≟ abs(selectedNumber), input2 / input3 ≟ abs(selectedNumber)) → correctNumber
  18. If(CaseQ ≟ 1, PQ1 ≟ SolPQ1, If[bruch, correctNumber ∧ correctSign, input ≟ selectedNumber]) → correct
  19. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {6, 5, 10, 1, 6, 8, 8, 3, 9, 5}
  20. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  21. Textfield(input) → inputBox
  22. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  23. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  24. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  25. Translate(imgChilliGrau1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliGrau2
  26. Translate(imgChilliRot1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot2
  27. Translate(imgChilliRot1, Vector[(2 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot3
  28. Segment(PStart + ((-disEnd), 0), PStart + (((numberOfNumbers - 1) * disP) + disEnd, 0)) → Zahlengerade
  29. Sequence(Segment[PStart + ((k * disP), If[IsInteger[AllNumbersList(k + 1)], segLength1, segLength2]), PStart + ((k * disP), (-If[IsInteger[AllNumbersList(k + 1)], segLength1, segLength2]))], k, 0, numberOfNumbers - 1) → AllSegList
  30. Unique(Sequence[IndexOf[true, Sequence[IsInteger[AllNumbersList(k)], k, 1, numberOfNumbers], m], m, 1, numberOfNumbers]) → AllIntegersIndexList
  31. KeepIf(IsInteger[a], a, AllNumbersList) → AllIntegersList
  32. Remove(1…numberOfNumbers, AllIntegersIndexList) → AllNotIntegersIndexList
  33. Remove(AllNumbersList, AllIntegersList) → AllNotIntegersList
  34. Sequence(abs(Numerator[AllNumbersList(k)]), k, 1, numberOfNumbers) → AllNumeratorsList, {15, 7, 13, 3, 11, 5, 9, 2, 7, 3, 5, 1, 3, 1, 1, 0, 1, 1, 3, 1, 5, 3, 7, 2, 9, 5, 11, 3, 13, 7, 15}
  35. Sequence(Denominator[AllNumbersList(k)], k, 1, numberOfNumbers) → AllDenominatorsList
  36. Sequence(If[AllNumbersList(k) < 0, "\(-\)", ""], k, 1, numberOfNumbers) → AllSignsTxtList
  37. Sequence((ReplaceAll[(AllSignsTxtList(k) * abs(AllNumbersList(k))), ".", ","] * "\vphantom{,}"), k, 1, numberOfNumbers) → AllTxtD1
  38. Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((("\dfrac{" * AllNumeratorsList(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD2
  39. Sequence(Text[If[IsInteger[AllNumbersList(k)], (("\textsf{" * AllTxtD1(k)) * "}"), ""], AllPointsList(k) + (If[AllNumbersList(k) < 0, -0.166, 0], (-segLength1)), false, true, 0, -1], k, 1, numberOfNumbers) → TxtIntegers
  40. Element(KeepIf[Mod[a, 1] ∈ If[CaseZ ≟ 1, {0, 0.5}, CaseZ ≟ 2, {0, 0.5}, CaseZ ≟ 3, {0, 1 / 3, 2 / 3}, CaseZ ≟ 4, {0, 0.25, 0.5, 0.75}, CaseZ ≟ 5, {0.2, 0.4, 0.6, 0.8, 0}, {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0}], a, AllNumbersList], 1) → markStart
  41. KeepIf(Defined[IndexOf[a, AllNumbersList]], a, Sequence[markStart + (k * markStep), k, 0, numberOfNumbers - 1, markDis]) → MarkNumbersList
  42. KeepIf(a ≠ "", a, Sequence[Text[If[Defined[IndexOf[AllNumbersList(k), CapNumbersList]], (("\textsf{" * AllTxtD1(k)) * "}"), ""], AllPointsList(k) + (If[AllNumbersList(k) < 0, -0.166, 0], (-segLength1)), false, true, 0, -1], k, 1, numberOfNumbers]) → TxtDec
  43. Remove(AllNumbersList, MarkNumbersList) → NumberList2
  44. Text("\textsf{Lösung:}", PosSolution + (0, 0), false, true, 0, -1) → txtSolution2
  45. Circle(PQ1, radiusFB) → circleFB
  46. Segment(AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 0.2), AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 1.25)) → segSolution
  47. If(IndexOf[selectedNumber, AllNumbersList] > 6, Segment[AllPointsList(IndexOf[MarkNumbersList(2), AllNumbersList]) + disHint, AllPointsList(IndexOf[MarkNumbersList(1), AllNumbersList]) + disHint], Segment[AllPointsList(IndexOf[MarkNumbersList(Length[MarkNumbersList]), AllNumbersList]) + disHint, AllPointsList(IndexOf[MarkNumbersList(Length[MarkNumbersList] - 1), AllNumbersList]) + disHint]) → segHint
  48. Textfield(input1) → InputBox1
  49. Textfield(input2) → InputBox2
  50. Textfield(input3) → InputBox3
  51. Sequence(abs(Numerator[Mod[AllNumbersList(k), 1]]), k, 1, numberOfNumbers) → AllNumeratorsList2, {1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 3}
  52. Sequence(RandomElement[If[-1 < NumberList(k) < 1, {3}, {3}]], k, 1, 100) → DarstellungList, {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}
  53. If(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isDecimal), (¬isDecimal) ∧ NoMinus ∧ Defined[input2] ∧ Defined[input3]]) → clickableBtnValidate
  54. Segment(Midpoint[Corner[txtZiehMich, 1], Corner[txtZiehMich, 4]] + (0.1 * Vector[Midpoint[Corner[txtZiehMich, 1], Corner[txtZiehMich, 4]], StartPQ1]), Midpoint[Corner[txtZiehMich, 1], Corner[txtZiehMich, 4]] + (0.6 * Vector[Midpoint[Corner[txtZiehMich, 1], Corner[txtZiehMich, 4]], StartPQ1])) → segZiehMich
  55. If(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), correctNumber ∧ (¬correctSign)) → isTypicalError
  56. Text((("\textsf{\bold{" * If[darstellung ≟ 1, txtD1, darstellung ≟ 2, txtD2, txtD3]) * "}}"), PosSolution + (If[selectedNumber < 0, -0.166, 0], -0.75), false, true, 0, -1) → txtSolution1
  57. If(abs(selectedNumber) < 1, (txtD2 * ""), ((txtD2 * " = ") * txtD3)) → txtSolutionAlternative
  58. Textfield() → InputBoxEx11
  59. Textfield() → InputBoxEx12
  60. Textfield() → InputBoxEx13
  61. Textfield() → InputBoxEx21
  62. Textfield() → InputBoxEx22
  63. Textfield() → InputBoxEx23
  64. Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((((If[AllNumeratorsList2(k) ≠ 0, If[AllNumbersList(k) < 0, If[abs(ceil(AllNumbersList(k))) ≠ 0, (("" * abs(ceil(AllNumbersList(k)))) * "\:"), ""], If[abs(floor(AllNumbersList(k))) ≠ 0, (("" * abs(floor(AllNumbersList(k)))) * "\:"), ""]], ""] * "\dfrac{") * 5) * "}{") * 10) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD35
  65. KeepIf(a ≠ "", a, Sequence[Text[If[Defined[IndexOf[AllNumbersList(k), CapNumbersList]], (("\textsf{" * AllTxtD35(k)) * "}"), ""], AllPointsList(k) + (If[AllNumbersList(k) < 0, -0.166, 0], (-segLength1)), false, true, 0, -1], k, 1, numberOfNumbers]) → Txt05
  66. Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((((If[AllNumeratorsList2(k) ≠ 0, If[AllNumbersList(k) < 0, If[abs(ceil(AllNumbersList(k))) ≠ 0, (("" * abs(ceil(AllNumbersList(k)))) * "\:"), ""], If[abs(floor(AllNumbersList(k))) ≠ 0, (("" * abs(floor(AllNumbersList(k)))) * "\:"), ""]]] * "\dfrac{") * AllNumeratorsList2(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD3
  67. Text((("\textsf{\bold{\textcolor{black}{" * If[CaseZ ≟ 1 ∨ CaseZ ≟ 2, "\frac{1}{2}", CaseZ ≟ 3, "\frac{1}{3}", CaseZ ≟ 4, "\frac{1}{4}", CaseZ ≟ 5, "\frac{1}{5}", CaseZ ≟ 6, "\frac{1}{10}"]) * "}}}"), Midpoint[segHint] + (0, segLength1 + 0.45), false, true, 0, 0) → CapHint
  68. KeepIf(a > 0, a, Sequence[Segment[PStart + ((k * disP), If[Defined[IndexOf[AllNumbersList(k + 1), MarkNumbersList]], If[AllNumbersList(k + 1) ≟ 0, segLength0, IsInteger[AllNumbersList(k + 1)], segLength1, segLength2], 0]), PStart + ((k * disP), (-If[Defined[IndexOf[AllNumbersList(k + 1), MarkNumbersList]], If[AllNumbersList(k + 1) ≟ 0, segLength0, IsInteger[AllNumbersList(k + 1)], segLength1, segLength2], 0]))], k, 0, numberOfNumbers - 1]) → SegMarkList
  69. Text((("\textsf{\bold{{" * If[darstellung ≟ 1, txtD1, darstellung ≟ 2, txtD2, txtD3]) * "}}}"), PQ1 + (If[selectedNumber < 0, -0.166, 0], segLength1 + 0), false, true, 0, 1) → CapPQ1
  70. Text("\textsf{Chiliant gemacht!}", PosImgDancingChilli1 + (1, 6.22), false, true, 1, -1) → txtEndPage

AI Drawing Prompt Reference

Draw a horizontal number line on a coordinate plane with evenly spaced ticks across a symmetric range from negative to positive. Place a set of points on the number line representing rational numbers, mixing integers and fractions, and label each point with its exact value: integers as styled text and fractions in proper fractional (numerator over denominator) format, including a negative sign when needed. Highlight one selected point with a clear marker and add a surrounding circle emphasis. Near the selected point, include a short vertical reference segment as a visual hint, and leave a dedicated area for the user’s text input to enter the fraction reading.
The prompt above was compiled from the original drawing commands and is for reference only.