Decimal Entry & Reading - Level 2
Loading the math board and drawing, please wait…
In collections
Rationale Zahlen & Arbeiten mit der Zahlengerade
This example demonstrates how to enter and read decimals on a number line. The core math concepts involved include comparing and ordering rational numbers, and representing rational numbers on the number line. Construction highlights the use of GeoGebra commands such as Sequence, Shuffle, Flatten, If, Element, Remove, Join, Point, Textfield, Translate, Segment, Unique, KeepIf, Text, Circle, Defined; objects include btnValidate, attemptCount, questionCount, correctCount, input, counter, PStart, disP, numberOfNumbers, AllPointsList, CaseZStartList, CaseZList, CaseZ, numberStartList, numberStepList, level, Level1StartNumber, Level2StartNumber, Level3StartNumber, numberStart, numberStep, AllNumbersList, capStepList, capStep, capDis, capStartList, capStart, CapNumbersList, CaseQStartList, CaseQList, CaseQ, NumberList1, NumberMatrix, NumberDrawList, NumberList, Level1NumberList, Level1SelectedNumberList, Level2NumberList, Level3NumberList, Level2SelectedNumberList. Suitable for 7-8 grade students to practice and reinforce rational number concepts.
GeoGebra Commands & Parameters
Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsListShuffle(1…5) → CaseZStartList, {3, 2, 4, 5, 1}Flatten(Sequence[CaseZStartList, k, 1, 20]) → CaseZListIf(level ≟ 1, Level1StartNumber(CaseZ, counter), level ≟ 2, Level2StartNumber(CaseZ, counter), level ≟ 3, Level3StartNumber(CaseZ, counter)) → numberStartSequence(numberStart + (k * numberStep), k, 0, numberOfNumbers - 1) → AllNumbersList, {-1.875, -1.75, -1.625, -1.5, -1.375, -1.25, -1.125, -1, -0.875, -0.75, -0.625, -0.5, -0.375, -0.25, -0.125, 0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875}Element(KeepIf[Mod[a, 2] ∈ If[CaseZ ≟ 1, {0, 1}, CaseZ ≟ 2, {0}, CaseZ ≟ 3, {0, 1}, CaseZ ≟ 4, {0, 1}, {0, 0.5, 1, 1.5}], a, AllNumbersList], 1) → capStartSequence(capStart + (k * capStep), k, 0, numberOfNumbers - 1, capDis) → CapNumbersList, {-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, 29}Shuffle({1, 2}) → CaseQStartList, {1, 2}Flatten(Sequence[CaseQStartList, k, 1, 50]) → CaseQListRemove(AllNumbersList, CapNumbersList) → NumberList1Sequence(RandomElement[Element[NumberDrawList, CaseZList(k)]], k, 1, 100) → NumberList, {-0.75, -0.7, 1.8, 0.5, -1.5, 3.5, 4.5, 0.2, -1.1, 6.5, -1.1, 0.2, -2.5, -3.5, -0.75, 1.8, 3.5, 1.5, 7.5, -0.9, 6.5, 0.4, 2.75, -1.1, -6.5, -2.6, -2.25, -4.5, -0.6, -3.5, -2.25, -2.8, -2.5, 1.4, -7.5, -3.75, 0.8, 3, 0.6, -6.5, -6.5, 3.75, -1.2, 0.8, 5, 0.7, -3.5, -2.6, -5, -0.75, 5, -2.5, -5.5, -0.1, -0.8, -4.5, -0.4, -0.6, 0.25, 1.5, -2.25, -1.5, 0.2, 2.8, -2.5, -1.2, -6.5, 1, -0.4, -2.75, -1.2, 4.5, -2.8, -0.75, -0.5, 1.5, 0.7, 2.5, 1.8, 7.5, -4.5, -0.3, 0.5, -0.2, -5.5, 0.1, 7.5, -6.5, -0.75, -1.8, -2.5, -0.3, 2.6, -2.5, -2.25, -0.75, 1, -1.6, 0.1, 7.5}If(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, {7, 2, 6, 9, 4, 3, 1, 2, 2, 8}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, 1, 7, 3, 5, 1, 3, 1, 1, 0, 1, 1, 3, 1, 5, 3, 7, 1, 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, 0.25, 0.5, 0.75}, CaseZ ≟ 4, {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] > 5, 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, 1, 5, 3, 7, 0, 1, 1, 3, 1, 5, 3, 7, 0, 1, 1, 3, 1, 5, 3, 7, 0, 1, 1, 3, 1, 5, 3, 7}Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((((If[AllNumeratorsList2(k) ≠ 0, If[AllNumbersList(k) < 0, (("" * abs(ceil(AllNumbersList(k)))) * "\:"), (("" * abs(floor(AllNumbersList(k)))) * "\:")]] * "\dfrac{") * AllNumeratorsList2(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD3Text((("\textsf{\bold{" * Element[Element[{AllTxtD1, AllTxtD2, AllTxtD3}, darstellung], IndexOf[selectedNumber, AllNumbersList]]) * "}}"), PosSolution + (If[selectedNumber < 0, -0.166, 0], -0.75), false, true, 0, -1) → txtSolution1Defined(IndexOf["/", Split[Text[inputBox], {""}]]) → isFractionIf(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isFraction), Defined[input2] ∧ Defined[input3]]) → clickableBtnValidateText((("\textsf{\bold{\textcolor{black}{" * ReplaceAll[(abs(AllNumbersList(IndexOf[Point[segHint, 0] - disHint, AllPointsList]) - AllNumbersList(IndexOf[Point[segHint, 1] - disHint, AllPointsList])) * ""), ".", ","]) * "}}}"), Midpoint[segHint] + (0, segLength1 + 0.35), false, true, 0, 0) → CapHintIf(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), input ≟ (-selectedNumber)) → isTypicalErrorSegment(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])) → segZiehMichKeepIf(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{{" * Element[Element[{AllTxtD1, AllTxtD2, AllTxtD3}, darstellung], IndexOf[selectedNumber, AllNumbersList]]) * "}}}"), 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 ranging from -2 to 2 with evenly spaced tick marks, labeling integers at whole number positions and decimal values at intermediate positions. Create an interactive exercise: randomly display a special marker point on the number line (shown as a vertical line segment), and ask students to identify the corresponding decimal value from given options or type it in an input box. Provide validation feedback - when the answer is correct, show an arc or circle above the marker point; if incorrect, display a hint line segment. Multiple difficulty levels can control decimal precision (such as 0.5, 0.25, etc.). The overall interface includes a title, answer input area, and feedback information.
The prompt above was compiled from the original drawing commands and is for reference only.