Solutions of Linear Equations in Two Variables: Points on the Graph!

Solutions of Linear Equations in Two Variables: Points on the Graph!
Loading the math board and drawing, please wait…
2016-08-01 02:34
This interactive GeoGebra activity demonstrates the correspondence between solutions of a linear equation in two variables and points on its graph. Learners are asked to identify and input x and y values that satisfy a given straight-line equation, thereby visualizing that every solution corresponds to a point lying on the line. The core mathematical concepts include linear equations, coordinate points, graphing, and the relationship between algebraic solutions and geometric representations. The construction uses a rich set of GeoGebra commands: text processing commands (TextToUnicode, IndexOf, Length, Sum, RandomElement, Simplify, Sequence, Sort, Join, Remove, Insert, Element, GCD, TableText, Textfield) to parse user input and generate random problems, along with geometric objects (Point, Polygon, Vector) to draw the line and points, and CoordPointertoAxes7 for axis interaction. This activity is suitable for middle school to high school students learning introductory coordinate geometry, and can be used for classroom demonstrations or self-paced exploration of how solutions map to points on a line.

GeoGebra Commands & Parameters

  1. TextToUnicode(usertxtanswery) → listdigitsy
  2. IndexOf(46, listdigitsy) → yindexofdecimalpoint
  3. IndexOf(47, listdigitsy) → yindexofdivisor
  4. If(Element[listdigitsy, 1] ≟ 45, 2, 1) → ystartindex
  5. If(Defined[IndexOf[32, listdigitsy]], IndexOf[32, listdigitsy], ystartindex - 1) → yindexofspace
  6. If(Defined[yindexofdivisor], Sum[(If[Element[listdigitsy, 1] ≟ 45, -1, 1] * Sequence[((Element[listdigitsy, i] - 48) * 10^(yindexofspace - 1 - i)), i, ystartindex, yindexofspace - 1])], If[Defined[yindexofdecimalpoint], (If[Element[listdigitsy, 1] ≟ 45, -1, 1] * Sum[Sequence[((Element[listdigitsy, i] - 48) * 10^(yindexofdecimalpoint - 1 - i)), i, ystartindex, yindexofdecimalpoint - 1]]), 0]) → ywholepart
  7. Length(listdigitsy) → ylengthlistdigits
  8. Sum(Sequence[((Element[listdigitsy, i] - 48) * 10^(ylengthlistdigits - i)), i, ydenomstartindex, ylengthlistdigits]) → ydenom
  9. If(Defined[yindexofdivisor], ynumer / ydenom, If[Defined[yindexofdecimalpoint], (If[Element[listdigitsy, 1] ≟ 45, -1, 1] * Sum[Sequence[((Element[listdigitsy, i] - 48) * 10^(ylengthlistdigits - i)), i, yindexofdecimalpoint + 1, ylengthlistdigits]] / 10^(ylengthlistdigits - yindexofdecimalpoint)), 0]) → ydecimalpart
  10. TextToUnicode(usertxtanswerx) → listdigitsx
  11. IndexOf(46, listdigitsx) → xindexofdecimalpoint
  12. If(Element[listdigitsx, 1] ≟ 45, 2, 1) → xstartindex
  13. If(Defined[IndexOf[32, listdigitsx]], IndexOf[32, listdigitsx], xstartindex - 1) → xindexofspace
  14. Length(listdigitsx) → xlengthlistdigits
  15. IndexOf(47, listdigitsx) → xindexofdivisor
  16. Sum(Sequence[((Element[listdigitsx, i] - 48) * 10^(xlengthlistdigits - i)), i, xdenomstartindex, xlengthlistdigits]) → xdenom
  17. If(Defined[xindexofdivisor], xnumer / xdenom, If[Defined[xindexofdecimalpoint], (If[Element[listdigitsx, 1] ≟ 45, -1, 1] * Sum[Sequence[((Element[listdigitsx, i] - 48) * 10^(xlengthlistdigits - i)), i, xindexofdecimalpoint + 1, xlengthlistdigits]] / 10^(xlengthlistdigits - xindexofdecimalpoint)), 0]) → xdecimalpart
  18. If(Defined[xindexofdivisor], Sum[(If[Element[listdigitsx, 1] ≟ 45, -1, 1] * Sequence[((Element[listdigitsx, i] - 48) * 10^(xindexofspace - 1 - i)), i, xstartindex, xindexofspace - 1])], If[Defined[xindexofdecimalpoint], (If[Element[listdigitsx, 1] ≟ 45, -1, 1] * Sum[Sequence[((Element[listdigitsx, i] - 48) * 10^(xindexofdecimalpoint - 1 - i)), i, xstartindex, xindexofdecimalpoint - 1]]), 0]) → xwholepart
  19. RandomElement({-1, 1, 2, -2, -3, 3, 4, -4, -1, 1, -2, 2, 5, -5, -1, 1}) → a_1
  20. RandomElement({0, -1, 1, 2, -2, -3, 3, 0, -1, 1, -2, 2, 4, -4, 0, -1, 1, -2, 2, 5, -5, 0, -1, 1, -2, 2}) → n_3
  21. RandomElement({-1, 0, 1, 2, -2, 0, -3, 3}) → x_g
  22. RandomElement({-1, 1, 2, -2, -3, 3, 4, -4, -1, 1, -2, 2, 5, -5, -1, 1}) → b_1
  23. If(Defined[xindexofdivisor], xdecimalpart + xwholepart, If[Defined[xindexofdecimalpoint], xdecimalpart + xwholepart, Sum[(If[Element[listdigitsx, 1] ≟ 45, -1, 1] * Sequence[((Element[listdigitsx, i] - 48) * 10^(xlengthlistdigits - i)), i, xstartindex, xlengthlistdigits])]]) → xuseranswer
  24. If(Defined[yindexofdivisor], ydecimalpart + ywholepart, If[Defined[yindexofdecimalpoint], ydecimalpart + ywholepart, Sum[(If[Element[listdigitsy, 1] ≟ 45, -1, 1] * Sequence[((Element[listdigitsy, i] - 48) * 10^(ylengthlistdigits - i)), i, ystartindex, ylengthlistdigits])]]) → yuseranswer
  25. Simplify(If[-8 ≤ x ≤ 12, ((-(x(e_n) / y(e_n))) * x) - z(e_n) / y(e_n)]) → f
  26. Sequence(abs(f(0) - (a_1 / b_1 * i) - round(f(0) - (a_1 / b_1 * i), 0)), i, 0, abs(b_1 - 1)) → listsearch1stinteger
  27. Sort(Sequence[xInty + (b_1 * i), i, -2, 2, 1]) → listxno
  28. RandomElement({1, 2, 3, 4}) → shiftposty
  29. Join({{x}, listxno}) → listx
  30. RandomElement(Remove[{1, 2, 3, 4}, {shiftposty}]) → shiftpostx
  31. Remove(listx, {Element[listx, shiftpostx + 1]}) → listprex
  32. Join({{y}, (m * listx) + d}) → listy
  33. Remove(listy, {Element[listy, shiftposty + 1]}) → listprey
  34. Insert("p", listprey, shiftposty + 1) → listypost
  35. Element(listy, shiftposty + 1) → answerp
  36. Element(listx, shiftposty + 1) → x_p
  37. GCD({a_1, b_1, c_1}) → c_g
  38. Insert("q", listprex, shiftpostx + 1) → listxpost
  39. TableText({listxpost, listypost}, "c_|h") → txtTableValues
  40. Element(listy, shiftpostx + 1) → y_q
  41. Textfield(usertxtanswerx) → InputBox1
  42. Textfield(usertxtanswery) → InputBox2
  43. Element(listx, shiftpostx + 1) → answerq
  44. If(usertxtanswerx ≟ "" ∨ usertxtanswerx ≟ "?", false, true) → attemptedx
  45. If(usertxtanswery ≟ "" ∨ usertxtanswery ≟ "?", false, true) → attemptedy
  46. Min(Min[listyno] - ((Max[listyno] - Min[listyno]) * 0.1), -2) → yMin
  47. Max(Max[listyno] + ((Max[listyno] - Min[listyno]) * 0.1), 2) → yMax
  48. Min(Min[listxno] - ((Max[listxno] - Min[listxno]) * 0.2), -2) → xMin
  49. Max(Max[listxno] + ((Max[listxno] - Min[listxno]) * 0.2), 2) → xMax
  50. Point(f) → E
  51. Polygon(Corner[1], (-8, y(Corner[1])), (-8, y(Corner[4]) + 4), Corner[4] + 4) → Whiteboxleft, c, e, h, i
  52. Polygon((12.5, y(Corner[2])), Corner[2], (x(Corner[2]), y(Corner[4]) + 4), (12.5, y(Corner[4]) + 4)) → Whiteboxright, j, k, l, n
  53. Vector(P_{feedbackanchor1}, P_{useranswer}) → p
  54. If(abs(yuseranswer - f(xuseranswer)) < 0.0001, true, false) → answersbothcorrect
  55. CoordPointertoAxes7(E) → u, v, text3, text4, text5, text6, text7, A, B
  56. Defined(xindexofspace) → isMixedNumber
  57. If(abs(yuseranswer - f(xuseranswer)) < 0.001, true, false) → yanswerapproxtrueforx
  58. Sequence(Translate[badge, Vector[(0, 0), ((2 * j), 0)]], j, 1, score) → listbadgepics
  59. IndexOf(Min[listynoabs], listynoabs) → listynominindex
  60. If(Defined[Element[listyno, listynominindex + 1]], listynominindex + 1, listynominindex - 1) → listynochosenindex
  61. Polygon((-8, y(Corner[1])), (15.5, y(Corner[2])), (15.5, y(Corner[4]) + 4), (-8, y(Corner[4]) + 4)) → WhiteboxGraphArea, g, q, r, s