Rational Numbers Input & Reading - Level 2
Loading the math board and drawing, please wait…
In collections
Rationale Zahlen & Arbeiten mit der Zahlengerade
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
Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsListJoin({{1}, Shuffle[2…6]}) → CaseZStartListJoin(Sequence[Shuffle[{1, 2, 3, 4}], k, 1, 25]) → CaseAllShuffle({1, 2, 4, 5, 6}) → CaseZDOrder, {1, 2, 5, 4, 6}Shuffle(1…6) → CaseZBOrder, {3, 2, 5, 1, 4, 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}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}Sequence(If[CaseAll(k) ∈ {1, 2}, CaseZDList(k), CaseZBList(k)], k, 1, 100) → CaseZListIf(example, numberStartList(1), If[level ≟ 1, Level1StartNumber(CaseZ, counter), level ≟ 2, Level2StartNumber(CaseZ, counter), level ≟ 3, Level3StartNumber(CaseZ, counter)]) → numberStartIf(example, numberStepList(1), numberStepList(CaseZ)) → numberStepSequence(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}If(example, 1, capStepList(CaseZ)) → capStepElement(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) → capStartSequence(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}Sequence(If[CaseAll(k) ∈ {1, 3}, 1, 2], k, 1, 100) → CaseQListRemove(AllNumbersList, CapNumbersList) → NumberList1Sequence(If[k ≟ 1, RandomElement[KeepIf[abs(a) > 1, a, Element[NumberDrawList, CaseZList(1)]]], RandomElement[Element[NumberDrawList, CaseZList(k)]]], k, 1, 100) → NumberListIf(level ≟ 1, Level1SelectedNumberList(CaseZ, counter), level ≟ 2, Level2SelectedNumberList(CaseZ, counter), level ≟ 3, Level3SelectedNumberList(CaseZ, counter)) → selectedNumberJoin({{StartPQ1}, AllPointsList}) → PointsQ1ListPoint(PointsQ1List) → PQ1If(CaseAll(counter) ∈ {1, 2}, false, true) → bruchIf(selectedNumber < 0, SelectedIndex[dropdown01] ≟ 3, SelectedIndex[dropdown01] ∈ {1, 2}) → correctSignIf(Defined[input1], input1 + input2 / input3 ≟ abs(selectedNumber), input2 / input3 ≟ abs(selectedNumber)) → correctNumberIf(CaseQ ≟ 1, PQ1 ≟ SolPQ1, If[bruch, correctNumber ∧ correctSign, input ≟ selectedNumber]) → correctSequence(Random[1, 10], i, 1, 10) → randomNumbers, {8, 2, 8, 9, 3, 7, 3, 2, 8, 8}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxJoin({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]}) → RasterBeschriftungSequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkteTranslate(imgChilliGrau1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliGrau2Translate(imgChilliRot1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot2Translate(imgChilliRot1, Vector[(2 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot3Segment(PStart + ((-disEnd), 0), PStart + (((numberOfNumbers - 1) * disP) + disEnd, 0)) → ZahlengeradeSequence(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) → AllSegListUnique(Sequence[IndexOf[true, Sequence[IsInteger[AllNumbersList(k)], k, 1, numberOfNumbers], m], m, 1, numberOfNumbers]) → AllIntegersIndexListKeepIf(IsInteger[a], a, AllNumbersList) → AllIntegersListRemove(1…numberOfNumbers, AllIntegersIndexList) → AllNotIntegersIndexListRemove(AllNumbersList, AllIntegersList) → AllNotIntegersListSequence(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}Sequence(Denominator[AllNumbersList(k)], k, 1, numberOfNumbers) → AllDenominatorsListSequence(If[AllNumbersList(k) < 0, "\(-\)", ""], k, 1, numberOfNumbers) → AllSignsTxtListSequence((ReplaceAll[(AllSignsTxtList(k) * abs(AllNumbersList(k))), ".", ","] * "\vphantom{,}"), k, 1, numberOfNumbers) → AllTxtD1Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((("\dfrac{" * AllNumeratorsList(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD2Sequence(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) → TxtIntegersElement(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) → markStartKeepIf(Defined[IndexOf[a, AllNumbersList]], a, Sequence[markStart + (k * markStep), k, 0, numberOfNumbers - 1, markDis]) → MarkNumbersListKeepIf(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]) → TxtDecRemove(AllNumbersList, MarkNumbersList) → NumberList2Text("\textsf{Lösung:}", PosSolution + (0, 0), false, true, 0, -1) → txtSolution2Circle(PQ1, radiusFB) → circleFBSegment(AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 0.2), AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 1.25)) → segSolutionIf(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]) → segHintTextfield(input1) → InputBox1Textfield(input2) → InputBox2Textfield(input3) → InputBox3Sequence(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}Sequence(If[CaseAll(k) ∈ {1, 2}, 1, 3], k, 1, 100) → DarstellungListDefined(IndexOf["/", Split[Text[inputBox], {""}]]) → isBruchIf(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isBruch), (¬isDecimal) ∧ NoMinus ∧ Defined[input2] ∧ Defined[input3]]) → clickableBtnValidateSegment(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])) → segZiehMichText((("\textsf{\bold{" * If[darstellung ≟ 1, txtD1, darstellung ≟ 2, txtD2, txtD3]) * "}}"), PosSolution + (If[selectedNumber < 0, -0.166, 0], -0.75), false, true, 0, -1) → txtSolution1If(abs(selectedNumber) < 1, (txtD2 * ""), ((txtD2 * " = ") * txtD3)) → txtSolutionAlternativeTextfield() → InputBoxEx11Textfield() → InputBoxEx12Textfield() → InputBoxEx13Textfield() → InputBoxEx21Textfield() → InputBoxEx22Textfield() → InputBoxEx23Sequence(((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) → AllTxtD35KeepIf(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]) → Txt05Sequence(((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) → AllTxtD3Text((("\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) → CapHintIf(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), correctNumber ∧ (¬correctSign) ∨ input ≟ (-selectedNumber)) → isTypicalErrorText((("\textsf{\bold{{" * If[darstellung ≟ 1, txtD1, darstellung ≟ 2, txtD2, txtD3]) * "}}}"), PQ1 + (If[selectedNumber < 0, -0.166, 0], segLength1 + 0), false, true, 0, 1) → CapPQ1KeepIf(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]) → SegMarkListText("\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.