解方程练习 - 第一级(系统试数与可视化)

解方程练习 - 第一级(系统试数与可视化)
几何画板及绘图内容加载中,请稍等……
2022-01-13 15:07
该范例是一个面向小学高年级(5-6年级)的代数方程求解练习工具,通过随机生成简单线性方程,引导学生用系统试数的方法寻找未知数的值,并借助可视化界面直观呈现方程两边的平衡关系。核心数学概念包括一元一次方程、等式的性质、未知数、因数与倍数、以及通过试错法验证解的正确性。作图要点:利用GeoGebra的随机数生成(Shuffle、RandomNos、DivisorsList、Factors)构造不重复的系数与常数,通过If、Append、Remove等命令控制题目生成逻辑,使用Text对象显示方程文本,并借助RoundBox、Corner等美化界面,最终实现每次刷新产生新题目的交互练习。适合5-6年级学生作为课堂练习或家庭作业,也可用于教师演示解方程的系统化策略。

GeoGebra 命令及参数

  1. Shuffle(Sequence[Random[21, 40], i, 1, 100]) → randomNosFora, {30, 25, 24, 35, 21, 32, 40, 28, 26, 36, 33, 38, 38, 38, 38, 24, 39, 40, 35, 27, 40, 32, 22, 23, 35, 27, 37, 31, 22, 32, 35, 36, 25, 38, 22, 28, 29, 40, 35, 34, 26, 22, 23, 34, 30, 38, 40, 37, 23, 31, 39, 31, 32, 23, 26, 27, 24, 31, 31, 29, 37, 30, 39, 25, 30, 27, 33, 36, 32, 28, 36, 26, 37, 38, 39, 33, 35, 28, 38, 21, 40, 40, 21, 29, 31, 35, 26, 29, 39, 37, 35, 38, 35, 38, 25, 31, 39, 23, 39, 21}
  2. Append(true, Sequence[If[randomNosFora(i) ≟ randomNosFora(i - 1), false, true], i, 2, 100]) → stayy
  3. Shuffle(Sequence[Random[2, 20], i, 1, 100]) → RandomNosFory, {3, 13, 4, 10, 18, 13, 7, 16, 20, 11, 16, 15, 5, 20, 8, 4, 14, 17, 10, 5, 3, 20, 5, 4, 20, 9, 13, 16, 15, 18, 9, 20, 8, 19, 7, 10, 19, 17, 6, 8, 13, 17, 3, 17, 15, 4, 6, 13, 9, 14, 17, 9, 11, 13, 19, 5, 3, 18, 8, 19, 19, 3, 3, 12, 18, 12, 9, 9, 10, 17, 13, 16, 10, 11, 3, 18, 20, 2, 2, 3, 17, 6, 19, 13, 18, 11, 2, 10, 13, 2, 11, 7, 5, 3, 6, 20, 20, 13, 19, 14}
  4. Remove(Sequence[If[stayy(i), RandomNosFory(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForywithoutRepeat
  5. Element(randomNosForywithoutRepeat, Mod[questionCount, Length[randomNosForywithoutRepeat]] + 1) → numywithoutRepeat
  6. DivisorsList(numywithoutRepeat) → teilerListFory
  7. Factors(numywithoutRepeat) →
  8. Shuffle(Sequence[RandomElement[l1], i, 1, 100]) → l1zufi, {"a - 4", "4 : a", "a \cdot 4", "a \cdot 4", "a + 4", "4 \cdot a", "a \cdot 4", "4 + a", "a \cdot 4", "4 + a", "a \cdot 4", "a - 4", "4 + a", "4 + a", "4 + a", "a + 4", "a + 4", "4 : a", "a \cdot 4", "a - 4", "a + 4", "4 + a", "a + 4", "4 + a", "4 \cdot a", "4 : a", "4 \cdot a", "4 : a", "a + 4", "a \cdot 4", "a + 4", "a \cdot 4", "4 + a", "4 + a", "a \cdot 4", "4 \cdot a", "4 : a", "a \cdot 4", "4 \cdot a", "a + 4", "4 : a", "4 \cdot a", "4 \cdot a", "4 \cdot a", "a - 4", "4 \cdot a", "a - 4", "4 \cdot a", "4 + a", "4 + a", "a - 4", "a \cdot 4", "a - 4", "4 + a", "4 \cdot a", "4 + a", "a \cdot 4", "4 \cdot a", "4 \cdot a", "a \cdot 4", "4 \cdot a", "a + 4", "a \cdot 4", "4 \cdot a", "4 \cdot a", "4 : a", "a \cdot 4", "a + 4", "a + 4", "a \cdot 4", "4 + a", "a + 4", "a - 4", "4 + a", "a \cdot 4", "a + 4", "a - 4", "a - 4", "a + 4", "4 : a", "a + 4", "4 + a", "4 : a", "4 \cdot a", "4 : a", "4 \cdot a", "a \cdot 4", "4 : a", "4 : a", "a \cdot 4", "a - 4", "a + 4", "4 + a", "4 : a", "a + 4", "a \cdot 4", "a \cdot 4", "4 \cdot a", "a - 4", "4 + a"}
  9. Append(true, Sequence[If[l1zufi(i) ≟ l1zufi(i - 1), false, true], i, 2, 100]) → stayzufi
  10. Remove(Sequence[If[stayzufi(i), l1zufi(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → l1zufiwithoutRepeat
  11. Element(l1zufiwithoutRepeat, Mod[questionCount, 100] + 1) → numzufi
  12. If(numzufi ≟ F8, RandomElement[teilerListFory], Element[randomNosFora, Mod[questionCount, 100] + 1]) → numa
  13. Element(l1zufiwithoutRepeat, Mod[questionCount, 100] + 1) → Text2
  14. If(numzufi ≟ F9, E9, If[numzufi ≟ F8, E8, If[numzufi ≟ F7, E7, If[numzufi ≟ F6, E6, If[numzufi ≟ F5, E5, If[numzufi ≟ F4, E4, If[numzufi ≟ F3, E3, If[numzufi ≟ F2, E2]]]]]]]) → Text1
  15. Split(GlTxt, {""}) → splittedText
  16. If(corrAdd, Text1 + numywithoutRepeat, If[corrSub, numywithoutRepeat - Text1, If[corrMult, (Text1 * numywithoutRepeat), If[corrDivi, Text1 + numywithoutRepeat]]]) → number2
  17. If(corrAdd, (Text1 * numywithoutRepeat), If[corrSub, (Text1 * numywithoutRepeat), If[corrMult, numywithoutRepeat - Text1, If[corrDivi, Text1 - numywithoutRepeat]]]) → number3
  18. Shuffle(Sequence[RandomElement[{6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66}], i, 1, 100]) → randomNosForaDividend, {24, 54, 24, 12, 30, 24, 66, 24, 18, 18, 6, 12, 30, 18, 36, 66, 66, 30, 54, 60, 42, 54, 24, 30, 66, 66, 6, 54, 30, 42, 42, 42, 30, 66, 6, 36, 48, 48, 42, 54, 42, 24, 60, 24, 54, 24, 30, 54, 36, 48, 48, 54, 18, 54, 48, 48, 48, 42, 30, 54, 36, 60, 66, 12, 60, 6, 30, 48, 36, 48, 36, 18, 18, 36, 48, 18, 54, 36, 48, 12, 66, 42, 12, 60, 12, 30, 30, 18, 66, 30, 12, 36, 42, 24, 48, 24, 66, 42, 30, 48}
  19. If(showanswer, "\bold{Lösung: }", "") → LoesungText
  20. Append(true, Sequence[If[l1zufi(i) ≟ l1zufi(i - 1), false, true], i, 2, 100]) → randomNosForawithoutRepeat
  21. If(numzufi ≟ F8, Element[randomNosForaDividend, Mod[questionCount, Length[randomNosForaDividend]] + 1], Element[randomNosForawithoutRepeat, Mod[questionCount, Length[randomNosForawithoutRepeat]] + 1]) → numawithoutRepeat
  22. Corner(HinweisText, 2) → CornerHint2
  23. Corner(HinweisText, 3) → CornerHint3
  24. Corner(Angabe, 1) → CornerAngabe
  25. Corner(HinweisText, 1) → CornerHint1
  26. If(tries ≠ 3, y(CornerHint3) - y(CornerHint2) - 0.15, y(Corner[SolutionText, 3]) - y(Corner[SolutionText, 2]) - 0.15) → heighthint
  27. RemoveUndefined({richtig1, If[RO > 1, richtig2], If[RO > 2, richtig3], If[RO > 3, richtig4], If[RO > 4, richtig5]}) → ListeRichtig
  28. RemoveUndefined({If[MCO ≟ 5 ∧ RO < 5 ∨ MCO ≟ 4 ∧ RO < 4 ∨ MCO ≟ 3 ∧ RO < 3, falsch1], If[MCO ≟ 5 ∧ RO < 4 ∨ MCO ≟ 4 ∧ RO < 3 ∨ MCO ≟ 3 ∧ RO < 2, falsch2], If[MCO ≟ 5 ∧ RO < 3 ∨ MCO ≟ 4 ∧ RO < 2, falsch3], If[MCO ≟ 5 ∧ RO < 2, falsch4]}) → ListeFalsch
  29. Union(ListeRichtig, ListeFalsch) → ListeAlle
  30. Shuffle(ListeAlle) → Reihenfolge, {"\textsf{x = 24}", "\textsf{x = -92}", "\textsf{x = 384}"}
  31. If(Reihenfolge(1) ∈ ListeRichtig, (("\math{" * Reihenfolge(1)) * "}\\\\"), "") → Loesungstext1
  32. If(Reihenfolge(2) ∈ ListeRichtig, (("\math{" * Reihenfolge(2)) * "}\\\\"), "") → Loesungstext2
  33. If(Reihenfolge(3) ∈ ListeRichtig, (("\math{" * Reihenfolge(3)) * "}\\\\"), "") → Loesungstext3
  34. If(Reihenfolge(4) ∈ ListeRichtig, (("\math{" * Reihenfolge(4)) * "}\\\\"), "") → Loesungstext4
  35. If(Reihenfolge(5) ∈ ListeRichtig, (("\math{" * Reihenfolge(5)) * "}\\\\"), "") → Loesungstext5
  36. Corner(Optionstext5, 3) → Corner53
  37. Corner(Optionstext5, 1) → Corner51
  38. Corner(Optionstext5, 2) → Corner52
  39. Corner(Optionstext4, 1) → Corner41
  40. Corner(Optionstext4, 2) → Corner42
  41. Corner(Optionstext3, 1) → Corner31
  42. Corner(Optionstext3, 2) → Corner32
  43. Corner(Optionstext2, 1) → Corner21
  44. Corner(Optionstext2, 2) → Corner22
  45. Corner(Optionstext1, 2) → Corner12
  46. Corner(Optionstext1, 1) → Corner11
  47. Max({x(Corner12) - x(Corner11), x(Corner22) - x(Corner21), x(Corner32) - x(Corner31), x(Corner42) - x(Corner41), x(Corner52) - x(Corner51)}) → maxwidth
  48. Corner(Optionstext4, 3) → Corner43
  49. Corner(Optionstext3, 3) → Corner33
  50. Corner(Optionstext2, 3) → Corner23
  51. Corner(Optionstext1, 3) → Corner13
  52. If(step < 3, Erklaerung2, "\\\textsf{ \large{\bold{. . .}}}") → ShowErkl2
  53. If(MCO ≥ 4, If[Reihenfolge(4) ∈ ListeRichtig ∧ option4 ≟ true ∨ Reihenfolge(4) ∈ ListeFalsch ∧ option4 ≟ false, true, false], true) → correct4
  54. If(correct4, 1, 0) → point4
  55. If(MCO ≟ 5, If[Reihenfolge(5) ∈ ListeRichtig ∧ option5 ≟ true ∨ Reihenfolge(5) ∈ ListeFalsch ∧ option5 ≟ false, true, false], true) → correct5
  56. If(correct5, 1, 0) → point5
  57. If(Reihenfolge(3) ∈ ListeRichtig ∧ option3 ≟ true ∨ Reihenfolge(3) ∈ ListeFalsch ∧ option3 ≟ false, true, false) → correct3
  58. If(correct3, 1, 0) → point3
  59. If(Reihenfolge(2) ∈ ListeRichtig ∧ option2 ≟ true ∨ Reihenfolge(2) ∈ ListeFalsch ∧ option2 ≟ false, true, false) → correct2
  60. If(correct2, 1, 0) → point2
  61. If(Reihenfolge(1) ∈ ListeRichtig ∧ option1 ≟ true ∨ Reihenfolge(1) ∈ ListeFalsch ∧ option1 ≟ false, true, false) → correct1
  62. If(correct1, 1, 0) → point1
  63. If(option1 ∨ option2 ∨ option3 ∨ option4 ∨ option5, (point1 + point2 + point3 + point4 + point5) / 5, 0) → score
  64. CountIf(x ≟ true, {option1, option2, option3, option4, option5}) → angekreuzt
  65. RoundBox(radius, Box1, height1, width) → box14, box11, box15, box12, box13
  66. RoundBox(radius, Box2, height2, width) → box24, box21, box25, box22, box23
  67. RoundBox(radius, Box3, height3, width) → box34, box31, box35, box32, box33
  68. RoundBox(radius, Box4, height4, width) → box44, box41, box45, box42, box43
  69. RoundBox(radius, Box5, height5, width) → box54, box51, box55, box52, box53
  70. If(step ≟ 3, "", step ≟ 1, ("\\\\" * Erklaerung3), "\\\textsf{ \large{\bold{. . .}}}") → ShowErkl3
  71. CountIf(x ≟ true, {correct1 ∧ option1, correct2 ∧ option2, correct3 ∧ option3, correct4 ∧ option4, correct5 ∧ option5}) → richtig
  72. If(richtig > 0 ∧ (¬correct), "✘ Teilweise richtig", correct, "✓ Richtig", "✘ Falsch") → CheckText
  73. If(tries ≠ 3, x(CornerHint2) - x(CornerHint1) - 0.15, x(Corner[SolutionText, 2]) - x(Corner[SolutionText, 1]) - 0.15) → widthhint
  74. RoundBox(radius, PosBoxHint, heighthint, widthhint) → boxh1, boxh2, boxh5, boxh3, boxh4
  75. Corner(Angabe, 4) → CornerAngabe2
  76. Shuffle(Sequence[RandomElement[{2, 3}], i, 1, 100]) → randomNosForaDivisor, {2, 3, 2, 2, 3, 3, 2, 2, 2, 2, 3, 3, 2, 3, 2, 2, 3, 2, 2, 2, 3, 3, 2, 3, 2, 3, 3, 2, 3, 3, 2, 3, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 3, 2, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 2, 2, 3, 2, 3, 3, 3, 3, 2, 3, 2, 3, 2}
  77. Append(true, Sequence[If[randomNosFora(i) ≟ randomNosFora(i - 1), false, true], i, 2, 100]) → staya
  78. Element(randomNosForaDividend, Mod[questionCount, 100] + 1) → numForDividend
  79. Element(randomNosForaDivisor, Mod[questionCount, 100] + 1) → numForDivisor
  80. Element(RandomNosFory, Mod[questionCount, 100] + 1) → numy
  81. Divisors(numywithoutRepeat) → a
  82. Factors(numywithoutRepeat) →
  83. If(showsolution, Corner[LoesungswegText, 2] - (1, 1), (3, y(PosButton1))) → PosButton3

AI 绘图提示语参考

画一个包含多个方程的图形,包括一个线性方程和一个分数方程,方程的左边和右边分别包含一个变量和一个常数,常数可以是正整数或负整数,变量可以是 x 或 y。图形中还包含一个滑动条,用于调整方程的系数和常数。图形的背景中有一个提示语,提示用户如何解决方程。
以上提示语为根据原始绘图命令整理而来,仅供参考。