Entering & Reading Fractions - Level 2
Loading the math board and drawing, please wait…
In collections
Rationale Zahlen & Arbeiten mit der Zahlengerade
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
Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsListJoin({{1}, Shuffle[2…6]}) → CaseZStartListFlatten(Sequence[CaseZStartList, k, 1, 20]) → 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, {-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}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, {-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}Flatten(Sequence[CaseQStartList, k, 1, 50]) → 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(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, {6, 5, 10, 1, 6, 8, 8, 3, 9, 5}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxJoin({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]}) → RasterStreckenJoin({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, {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}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, 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}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}If(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isDecimal), (¬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])) → segZiehMichIf(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), correctNumber ∧ (¬correctSign)) → isTypicalErrorText((("\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, "\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) → CapHintKeepIf(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{\bold{{" * If[darstellung ≟ 1, txtD1, darstellung ≟ 2, txtD2, txtD3]) * "}}}"), PQ1 + (If[selectedNumber < 0, -0.166, 0], segLength1 + 0), false, true, 0, 1) → CapPQ1Text("\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.