Solve the Equation - Level 1 (Systematic Trial & Visualization)

Solve the Equation - Level 1 (Systematic Trial & Visualization)
Loading the math board and drawing, please wait…
2022-01-13 15:07
This GeoGebra example is an interactive algebra practice tool for grades 5-6, focusing on solving simple linear equations through systematic trial and error with visual support. It randomly generates equations with one unknown, prompting students to test values and observe the balance between both sides. Core math concepts include one-variable linear equations, properties of equality, unknowns, factors and multiples, and verification of solutions. The construction uses GeoGebra commands such as Shuffle, Append, Remove, DivisorsList, Factors, If, Split, Corner, RemoveUndefined, Union, Max, CountIf, RoundBox, and Divisors to generate non-repeating coefficients and constants, manage question logic, and display the equation text via Text objects. The interface is designed for repeated practice with fresh problems each time. Suitable for classroom exercises, homework, or teacher demonstrations of systematic equation-solving strategies.

GeoGebra Commands & Parameters

  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 Drawing Prompt Reference

Draw a graph containing multiple equations, including a linear equation and a fraction equation, with the left and right sides of the equation containing a variable and a constant, respectively. The constant can be a positive integer or a negative integer, and the variable can be x or y. The graph also includes a slider to adjust the coefficients and constants of the equation. In the background of the graph, there is a hint text that guides the user on how to solve the equation.
The prompt above was compiled from the original drawing commands and is for reference only.