小数输入与读取 - 第2级
几何画板及绘图内容加载中,请稍等……
本范例演示了如何在数轴上输入和读取小数。涉及的核心数学概念包括有理数的比较和排序,以及有理数在数轴上的表示。作图要点使用了GeoGebra命令如Sequence, Shuffle, Flatten, If, Element, Remove, Join, Point, Textfield, Translate, Segment, Unique, KeepIf, Text, Circle, Defined;对象包括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。适合7-8年级学生使用,用于练习和巩固有理数的概念。
GeoGebra 命令及参数
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 绘图提示语参考
绘制一条水平数轴,从-2到2,均匀分布刻度并在每个整数位置标注整数值,在整数之间的小数位置标注相应的小数值。创建一个交互式练习:随机在数轴上显示一个特殊标记点(用竖线段表示),要求学生从给定的候选小数中选择或在输入框中输入该点对应的小数值。提供验证机制,当学生答案正确时在标记点上方显示弧线或圆形反馈,若错误则给出提示线段。可设置多个难度级别,控制小数的精度(如0.5、0.25等)。整体界面包含标题文字、答案输入区和反馈信息区。
以上提示语为根据原始绘图命令整理而来,仅供参考。