有理数输入与读取 - 第2级

有理数输入与读取 - 第2级
几何画板及绘图内容加载中,请稍等……
2025-01-21 20:17
这个范例演示了如何在数轴上有理数进行输入与读取。涉及的核心数学概念包括有理数的比较与排序,以及如何在数轴上表示有理数。作图要点使用了GeoGebra命令如Sequence, Join, Shuffle, If, Element, Remove, Point, Textfield, Translate, Segment, Unique, KeepIf, Text, Circle, Defined;对象包括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。适合7-8年级学生使用,用于练习和巩固有理数的概念。

GeoGebra 命令及参数

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

AI 绘图提示语参考

这是一个数轴图形,轴上分布着从-2.5到2.5的一系列有理数点,包括整数和小数。每个点旁边标注了分数形式,例如-2.5显示为-5/2,-1.666...显示为-5/3等。整数点旁边标注整数本身,非整数点标注分数。数轴上有文本框用于输入随机数,以及一些标记点用于交互。图形整体简洁,清晰展示有理数的表示和比较关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。