小数输入与读取 - 第2级

小数输入与读取 - 第2级
几何画板及绘图内容加载中,请稍等……
2025-01-21 20:16
本范例演示了如何在数轴上输入和读取小数。涉及的核心数学概念包括有理数的比较和排序,以及有理数在数轴上的表示。作图要点使用了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 命令及参数

  1. Sequence(PStart + (k * (disP, 0)), k, 0, numberOfNumbers - 1) → AllPointsList
  2. Shuffle(1…5) → CaseZStartList, {3, 2, 4, 5, 1}
  3. Flatten(Sequence[CaseZStartList, k, 1, 20]) → CaseZList
  4. If(level ≟ 1, Level1StartNumber(CaseZ, counter), level ≟ 2, Level2StartNumber(CaseZ, counter), level ≟ 3, Level3StartNumber(CaseZ, counter)) → numberStart
  5. Sequence(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}
  6. 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) → capStart
  7. Sequence(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}
  8. Shuffle({1, 2}) → CaseQStartList, {1, 2}
  9. Flatten(Sequence[CaseQStartList, k, 1, 50]) → CaseQList
  10. Remove(AllNumbersList, CapNumbersList) → NumberList1
  11. Sequence(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}
  12. If(level ≟ 1, Level1SelectedNumberList(CaseZ, counter), level ≟ 2, Level2SelectedNumberList(CaseZ, counter), level ≟ 3, Level3SelectedNumberList(CaseZ, counter)) → selectedNumber
  13. Join({{StartPQ1}, AllPointsList}) → PointsQ1List
  14. Point(PointsQ1List) → PQ1
  15. If(selectedNumber < 0, SelectedIndex[dropdown01] ≟ 3, SelectedIndex[dropdown01] ∈ {1, 2}) → correctSign
  16. If(Defined[input1], input1 + input2 / input3 ≟ abs(selectedNumber), input2 / input3 ≟ abs(selectedNumber)) → correctNumber
  17. If(CaseQ ≟ 1, PQ1 ≟ SolPQ1, If[bruch, correctNumber ∧ correctSign, input ≟ selectedNumber]) → correct
  18. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {7, 2, 6, 9, 4, 3, 1, 2, 2, 8}
  19. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  20. Textfield(input) → inputBox
  21. Join({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]}) → RasterStrecken
  22. 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
  23. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  24. Translate(imgChilliGrau1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliGrau2
  25. Translate(imgChilliRot1, Vector[(1 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot2
  26. Translate(imgChilliRot1, Vector[(2 * Vector[((0.8 * dimChilli), 0)])]) → imgChilliRot3
  27. Segment(PStart + ((-disEnd), 0), PStart + (((numberOfNumbers - 1) * disP) + disEnd, 0)) → Zahlengerade
  28. 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
  29. Unique(Sequence[IndexOf[true, Sequence[IsInteger[AllNumbersList(k)], k, 1, numberOfNumbers], m], m, 1, numberOfNumbers]) → AllIntegersIndexList
  30. KeepIf(IsInteger[a], a, AllNumbersList) → AllIntegersList
  31. Remove(1…numberOfNumbers, AllIntegersIndexList) → AllNotIntegersIndexList
  32. Remove(AllNumbersList, AllIntegersList) → AllNotIntegersList
  33. Sequence(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}
  34. Sequence(Denominator[AllNumbersList(k)], k, 1, numberOfNumbers) → AllDenominatorsList
  35. Sequence(If[AllNumbersList(k) < 0, "\(-\)", ""], k, 1, numberOfNumbers) → AllSignsTxtList
  36. Sequence((ReplaceAll[(AllSignsTxtList(k) * abs(AllNumbersList(k))), ".", ","] * "\vphantom{,}"), k, 1, numberOfNumbers) → AllTxtD1
  37. Sequence(((AllSignsTxtList(k) * If[k ∈ AllIntegersIndexList, ("" * abs(AllNumbersList(k))), (((("\dfrac{" * AllNumeratorsList(k)) * "}{") * AllDenominatorsList(k)) * "}")]) * "\vphantom{\dfrac{1}{2}}"), k, 1, numberOfNumbers) → AllTxtD2
  38. 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
  39. Element(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) → markStart
  40. KeepIf(Defined[IndexOf[a, AllNumbersList]], a, Sequence[markStart + (k * markStep), k, 0, numberOfNumbers - 1, markDis]) → MarkNumbersList
  41. 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
  42. Remove(AllNumbersList, MarkNumbersList) → NumberList2
  43. Text("\textsf{Lösung:}", PosSolution + (0, 0), false, true, 0, -1) → txtSolution2
  44. Circle(PQ1, radiusFB) → circleFB
  45. Segment(AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 0.2), AllPointsList(IndexOf[selectedNumber, AllNumbersList]) + (0, segLength1 + 1.25)) → segSolution
  46. If(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]) → segHint
  47. Textfield(input1) → InputBox1
  48. Textfield(input2) → InputBox2
  49. Textfield(input3) → InputBox3
  50. Sequence(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}
  51. 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) → AllTxtD3
  52. Text((("\textsf{\bold{" * Element[Element[{AllTxtD1, AllTxtD2, AllTxtD3}, darstellung], IndexOf[selectedNumber, AllNumbersList]]) * "}}"), PosSolution + (If[selectedNumber < 0, -0.166, 0], -0.75), false, true, 0, -1) → txtSolution1
  53. Defined(IndexOf["/", Split[Text[inputBox], {""}]]) → isFraction
  54. If(CaseQ ≟ 1, Defined[IndexOf[PQ1, AllPointsList]], If[¬bruch, Defined[input] ∧ (¬isFraction), Defined[input2] ∧ Defined[input3]]) → clickableBtnValidate
  55. Text((("\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) → CapHint
  56. If(CaseQ ≟ 1, markedNumber ≟ (-selectedNumber), input ≟ (-selectedNumber)) → isTypicalError
  57. 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
  58. 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
  59. Text((("\textsf{\bold{{" * Element[Element[{AllTxtD1, AllTxtD2, AllTxtD3}, darstellung], IndexOf[selectedNumber, AllNumbersList]]) * "}}}"), PQ1 + (If[selectedNumber < 0, -0.166, 0], segLength1 + 0), false, true, 0, 1) → CapPQ1
  60. Text("\textsf{Chiliant gemacht!}", PosImgDancingChilli1 + (1, 6.22), false, true, 1, -1) → txtEndPage

AI 绘图提示语参考

绘制一条水平数轴,从-2到2,均匀分布刻度并在每个整数位置标注整数值,在整数之间的小数位置标注相应的小数值。创建一个交互式练习:随机在数轴上显示一个特殊标记点(用竖线段表示),要求学生从给定的候选小数中选择或在输入框中输入该点对应的小数值。提供验证机制,当学生答案正确时在标记点上方显示弧线或圆形反馈,若错误则给出提示线段。可设置多个难度级别,控制小数的精度(如0.5、0.25等)。整体界面包含标题文字、答案输入区和反馈信息区。
以上提示语为根据原始绘图命令整理而来,仅供参考。