Solutions of Linear Equations in Two Variables: Points on the Graph!
Loading the math board and drawing, please wait…
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
TextToUnicode(usertxtanswery) → listdigitsyIndexOf(46, listdigitsy) → yindexofdecimalpointIndexOf(47, listdigitsy) → yindexofdivisorIf(Element[listdigitsy, 1] ≟ 45, 2, 1) → ystartindexIf(Defined[IndexOf[32, listdigitsy]], IndexOf[32, listdigitsy], ystartindex - 1) → yindexofspaceIf(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]) → ywholepartLength(listdigitsy) → ylengthlistdigitsSum(Sequence[((Element[listdigitsy, i] - 48) * 10^(ylengthlistdigits - i)), i, ydenomstartindex, ylengthlistdigits]) → ydenomIf(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]) → ydecimalpartTextToUnicode(usertxtanswerx) → listdigitsxIndexOf(46, listdigitsx) → xindexofdecimalpointIf(Element[listdigitsx, 1] ≟ 45, 2, 1) → xstartindexIf(Defined[IndexOf[32, listdigitsx]], IndexOf[32, listdigitsx], xstartindex - 1) → xindexofspaceLength(listdigitsx) → xlengthlistdigitsIndexOf(47, listdigitsx) → xindexofdivisorSum(Sequence[((Element[listdigitsx, i] - 48) * 10^(xlengthlistdigits - i)), i, xdenomstartindex, xlengthlistdigits]) → xdenomIf(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]) → xdecimalpartIf(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]) → xwholepartRandomElement({-1, 1, 2, -2, -3, 3, 4, -4, -1, 1, -2, 2, 5, -5, -1, 1}) → a_1RandomElement({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_3RandomElement({-1, 0, 1, 2, -2, 0, -3, 3}) → x_gRandomElement({-1, 1, 2, -2, -3, 3, 4, -4, -1, 1, -2, 2, 5, -5, -1, 1}) → b_1If(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])]]) → xuseranswerIf(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])]]) → yuseranswerSimplify(If[-8 ≤ x ≤ 12, ((-(x(e_n) / y(e_n))) * x) - z(e_n) / y(e_n)]) → fSequence(abs(f(0) - (a_1 / b_1 * i) - round(f(0) - (a_1 / b_1 * i), 0)), i, 0, abs(b_1 - 1)) → listsearch1stintegerSort(Sequence[xInty + (b_1 * i), i, -2, 2, 1]) → listxnoRandomElement({1, 2, 3, 4}) → shiftpostyJoin({{x}, listxno}) → listxRandomElement(Remove[{1, 2, 3, 4}, {shiftposty}]) → shiftpostxRemove(listx, {Element[listx, shiftpostx + 1]}) → listprexJoin({{y}, (m * listx) + d}) → listyRemove(listy, {Element[listy, shiftposty + 1]}) → listpreyInsert("p", listprey, shiftposty + 1) → listypostElement(listy, shiftposty + 1) → answerpElement(listx, shiftposty + 1) → x_pGCD({a_1, b_1, c_1}) → c_gInsert("q", listprex, shiftpostx + 1) → listxpostTableText({listxpost, listypost}, "c_|h") → txtTableValuesElement(listy, shiftpostx + 1) → y_qTextfield(usertxtanswerx) → InputBox1Textfield(usertxtanswery) → InputBox2Element(listx, shiftpostx + 1) → answerqIf(usertxtanswerx ≟ "" ∨ usertxtanswerx ≟ "?", false, true) → attemptedxIf(usertxtanswery ≟ "" ∨ usertxtanswery ≟ "?", false, true) → attemptedyMin(Min[listyno] - ((Max[listyno] - Min[listyno]) * 0.1), -2) → yMinMax(Max[listyno] + ((Max[listyno] - Min[listyno]) * 0.1), 2) → yMaxMin(Min[listxno] - ((Max[listxno] - Min[listxno]) * 0.2), -2) → xMinMax(Max[listxno] + ((Max[listxno] - Min[listxno]) * 0.2), 2) → xMaxPoint(f) → EPolygon(Corner[1], (-8, y(Corner[1])), (-8, y(Corner[4]) + 4), Corner[4] + 4) → Whiteboxleft, c, e, h, iPolygon((12.5, y(Corner[2])), Corner[2], (x(Corner[2]), y(Corner[4]) + 4), (12.5, y(Corner[4]) + 4)) → Whiteboxright, j, k, l, nVector(P_{feedbackanchor1}, P_{useranswer}) → pIf(abs(yuseranswer - f(xuseranswer)) < 0.0001, true, false) → answersbothcorrectCoordPointertoAxes7(E) → u, v, text3, text4, text5, text6, text7, A, BDefined(xindexofspace) → isMixedNumberIf(abs(yuseranswer - f(xuseranswer)) < 0.001, true, false) → yanswerapproxtrueforxSequence(Translate[badge, Vector[(0, 0), ((2 * j), 0)]], j, 1, score) → listbadgepicsIndexOf(Min[listynoabs], listynoabs) → listynominindexIf(Defined[Element[listyno, listynominindex + 1]], listynominindex + 1, listynominindex - 1) → listynochosenindexPolygon((-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