Rational Numbers Input & Reading - Level 2

Rational Numbers Input & Reading - Level 2
Loading the math board and drawing, please wait…
2025-01-21 20:17
This example demonstrates the input and reading of rational numbers on a number line. The core math concepts involved include comparing and ordering rational numbers, and representing rational numbers on a number line. Key GeoGebra commands used are Sequence, Join, Shuffle, If, Element, Remove, Point, Textfield, Translate, Segment, Unique, KeepIf, Text, Circle, Defined; objects include btnValidate, attemptCount, questionCount, correctCount, input, counter, PStart, disP, numberOfNumbers, AllPointsList, CaseZStartList, CaseAll, CaseZDOrder, CaseZBOrder, CaseZDList, CaseZBList, CaseZList, CaseZ, numberStartList, example, numberStepList, level, Level1StartNumber, Level2StartNumber, Level3StartNumber, numberStart, numberStep, AllNumbersList, capStepList, capStep, capDis, capStartList, capStart, CapNumbersList, CaseQStartList, CaseQList, CaseQ, NumberList1, NumberMatrix, NumberDrawList. Suitable for students in grades 7-8 to practice and reinforce rational number concepts.

GeoGebra Commands & Parameters

  1. Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsList
  2. Join({{1}, Shuffle[2…6]}) → CaseZStartList
  3. Join(Sequence[Shuffle[{1, 2, 3, 4}], k, 1, 25]) → CaseAll
  4. Shuffle({1, 2, 4, 5, 6}) → CaseZDOrder, {1, 2, 5, 4, 6}
  5. Shuffle(1…6) → CaseZBOrder, {3, 2, 5, 1, 4, 6}
  6. Sequence(CaseZDOrder(Mod[CountIf[a ∈ {1, 2}, a, Take[CaseAll, 1, k]] - 1, 5] + 1), k, 1, 100) → CaseZDList, {6, 1, 2, 2, 2, 5, 4, 4, 6, 1, 1, 1, 2, 2, 2, 5, 4, 4, 4, 6, 1, 1, 1, 2, 5, 5, 5, 4, 6, 6, 6, 1, 2, 2, 2, 5, 4, 6, 6, 6, 1, 1, 2, 2, 2, 2, 5, 4, 4, 6, 6, 1, 1, 2, 2, 5, 5, 5, 4, 6, 6, 1, 2, 2, 2, 2, 5, 4, 4, 6, 1, 1, 2, 5, 5, 5, 5, 5, 4, 6, 6, 1, 1, 2, 2, 5, 4, 4, 6, 6, 6, 1, 2, 2, 2, 5, 5, 4, 6, 6}
  7. Sequence(CaseZBOrder(Mod[CountIf[a ∈ {3, 4}, a, Take[CaseAll, 1, k]] - 1, 6] + 1), k, 1, 100) → CaseZBList, {3, 3, 3, 2, 5, 5, 5, 1, 1, 1, 4, 6, 6, 3, 2, 2, 2, 5, 1, 1, 1, 4, 6, 6, 6, 3, 2, 2, 2, 5, 1, 1, 1, 4, 6, 6, 6, 6, 3, 2, 2, 5, 5, 1, 4, 6, 6, 6, 3, 3, 2, 2, 5, 5, 1, 1, 4, 6, 6, 6, 3, 3, 3, 2, 5, 1, 1, 1, 4, 4, 4, 6, 6, 6, 3, 2, 5, 1, 1, 1, 4, 4, 6, 6, 3, 3, 3, 2, 2, 5, 1, 1, 1, 4, 6, 6, 3, 3, 3, 2}
  8. Sequence(If[CaseAll(k) ∈ {1, 2}, CaseZDList(k), CaseZBList(k)], k, 1, 100) → CaseZList
  9. If(example, numberStartList(1), If[level ≟ 1, Level1StartNumber(CaseZ, counter), level ≟ 2, Level2StartNumber(CaseZ, counter), level ≟ 3, Level3StartNumber(CaseZ, counter)]) → numberStart
  10. If(example, numberStepList(1), numberStepList(CaseZ)) → numberStep
  11. Sequence(numberStart + (k * numberStep), k, 0, numberOfNumbers - 1) → AllNumbersList, {-2.5, -2.3333333333333335, -2.1666666666666665, -2, -1.8333333333333335, -1.6666666666666667, -1.5, -1.3333333333333335, -1.1666666666666667, -1, -0.8333333333333335, -0.6666666666666667, -0.5, -0.3333333333333335, -0.16666666666666696, 0, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.833333333333333, 1, 1.1666666666666665, 1.333333333333333, 1.5, 1.666666666666666, 1.833333333333333, 2, 2.166666666666666, 2.333333333333333, 2.5}
  12. If(example, 1, capStepList(CaseZ)) → capStep
  13. 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
  14. Sequence(capStart + (k * capStep), k, 0, numberOfNumbers - 1, capDis) → CapNumbersList, {-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, 28}
  15. Sequence(If[CaseAll(k) ∈ {1, 3}, 1, 2], k, 1, 100) → CaseQList
  16. Remove(AllNumbersList, CapNumbersList) → NumberList1
  17. Sequence(If[k ≟ 1, RandomElement[KeepIf[abs(a) > 1, a, Element[NumberDrawList, CaseZList(1)]]], RandomElement[Element[NumberDrawList, CaseZList(k)]]], k, 1, 100) → NumberList
  18. If(level ≟ 1, Level1SelectedNumberList(CaseZ, counter), level ≟ 2, Level2SelectedNumberList(CaseZ, counter), level ≟ 3, Level3SelectedNumberList(CaseZ, counter)) → selectedNumber
  19. Join({{StartPQ1}, AllPointsList}) → PointsQ1List
  20. Point(PointsQ1List) → PQ1
  21. If(CaseAll(counter) ∈ {1, 2}, false, true) → bruch
  22. If(selectedNumber < 0, SelectedIndex[dropdown01] ≟ 3, SelectedIndex[dropdown01] ∈ {1, 2}) → correctSign
  23. If(Defined[input1], input1 + input2 / input3 ≟ abs(selectedNumber), input2 / input3 ≟ abs(selectedNumber)) → correctNumber
  24. If(CaseQ ≟ 1, PQ1 ≟ SolPQ1, If[bruch, correctNumber ∧ correctSign, input ≟ selectedNumber]) → correct
  25. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {8, 2, 8, 9, 3, 7, 3, 2, 8, 8}
  26. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  27. Textfield(input) → inputBox
  28. 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
  29. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  30. Translate(imgChilliGrau1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliGrau2
  31. Translate(imgChilliRot1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot2
  32. Translate(imgChilliRot1, Vector[(2 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot3
  33. Segment(PStart + ((-disEnd), 0), PStart + (((numberOfNumbers - 1) * disP) + disEnd, 0)) → Zahlengerade
  34. 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
  35. Unique(Sequence[IndexOf[true, Sequence[IsInteger[AllNumbersList(k)], k, 1, numberOfNumbers], m], m, 1, numberOfNumbers]) → AllIntegersIndexList
  36. KeepIf(IsInteger[a], a, AllNumbersList) → AllIntegersList
  37. Remove(1…numberOfNumbers, AllIntegersIndexList) → AllNotIntegersIndexList
  38. Remove(AllNumbersList, AllIntegersList) → AllNotIntegersList
  39. Sequence(abs(Numerator[AllNumbersList(k)]), k, 1, numberOfNumbers) → AllNumeratorsList, {5, 7, 13, 2, 11, 5, 3, 4, 7, 1, 5, 2, 1, 1, 1, 0, 1, 1, 1, 2, 5, 1, 7, 4, 3, 5, 11, 2, 13, 7, 5}
  40. Sequence(Denominator[AllNumbersList(k)], k, 1, numberOfNumbers) → AllDenominatorsList
  41. Sequence(If[AllNumbersList(k) < 0, "\(-\)", ""], k, 1, numberOfNumbers) → AllSignsTxtList
  42. Sequence((ReplaceAll[(AllSignsTxtList(k) * abs(AllNumbersList(k))), ".", ","] * "\vphantom{,}"), k, 1, numberOfNumbers) → AllTxtD1
  43. Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((("\dfrac{" * AllNumeratorsList(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD2
  44. 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
  45. 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
  46. KeepIf(Defined[IndexOf[a, AllNumbersList]], a, Sequence[markStart + (k * markStep), k, 0, numberOfNumbers - 1, markDis]) → MarkNumbersList
  47. 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
  48. Remove(AllNumbersList, MarkNumbersList) → NumberList2
  49. Text("\textsf{Lösung:}", PosSolution + (0, 0), false, true, 0, -1) → txtSolution2
  50. Circle(PQ1, radiusFB) → circleFB
  51. Segment(AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 0.2), AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 1.25)) → segSolution
  52. 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
  53. Textfield(input1) → InputBox1
  54. Textfield(input2) → InputBox2
  55. Textfield(input3) → InputBox3
  56. Sequence(abs(Numerator[Mod[AllNumbersList(k), 1]]), k, 1, numberOfNumbers) → AllNumeratorsList2, {1, 2, 5, 0, 1, 1, 1, 2, 5, 0, 1, 1, 1, 2, 5, 0, 1, 1, 1, 2, 5, 0, 1, 1, 1, 2, 5, 0, 1, 1, 1}
  57. Sequence(If[CaseAll(k) ∈ {1, 2}, 1, 3], k, 1, 100) → DarstellungList
  58. Defined(IndexOf["/", Split[Text[inputBox], {""}]]) → isBruch
  59. If(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isBruch), (¬isDecimal) ∧ NoMinus ∧ Defined[input2] ∧ Defined[input3]]) → clickableBtnValidate
  60. 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
  61. 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
  62. If(abs(selectedNumber) < 1, (txtD2 * ""), ((txtD2 * " = ") * txtD3)) → txtSolutionAlternative
  63. Textfield() → InputBoxEx11
  64. Textfield() → InputBoxEx12
  65. Textfield() → InputBoxEx13
  66. Textfield() → InputBoxEx21
  67. Textfield() → InputBoxEx22
  68. Textfield() → InputBoxEx23
  69. 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
  70. 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
  71. 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
  72. Text((("\textsf{\bold{\textcolor{black}{" * If[CaseZ ≟ 1 ∨ CaseZ ≟ 2, If[CaseAll(counter) ∈ {1, 2}, "0,5", "\frac{1}{2}"], CaseZ ≟ 3, "\frac{1}{3}", CaseZ ≟ 4, If[CaseAll(counter) ∈ {1, 2}, "0,25", "\frac{1}{4}"], CaseZ ≟ 5, If[CaseAll(counter) ∈ {1, 2}, "0,2", "\frac{1}{5}"], CaseZ ≟ 6, If[CaseAll(counter) ∈ {1, 2}, "0,1", "\frac{1}{10}"]]) * "}}}"), Midpoint[segHint] + (0, segLength1 + 0.45), false, true, 0, 0) → CapHint
  73. If(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), correctNumber ∧ (¬correctSign) ∨ input ≟ (-selectedNumber)) → isTypicalError
  74. 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
  75. 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
  76. Text("\textsf{Chiliant gemacht!}", PosImgDancingChilli1 + (1, 6.22), false, true, 1, -1) → txtEndPage

AI Drawing Prompt Reference

This is a number line graph with rational number points distributed from -2.5 to 2.5. Each point is labeled with its fractional form, such as -2.5 as -5/2 and -1.666... as -5/3. Integer points display integers, while non-integer points show fractions. There is an input box for random numbers and some marked points for interaction. The overall design is clean and clearly illustrates rational number representation and comparison.
The prompt above was compiled from the original drawing commands and is for reference only.