二元一次方程的解:点都在直线上!

二元一次方程的解:点都在直线上!
几何画板及绘图内容加载中,请稍等……
2016-08-01 02:34
本活动通过交互式GeoGebra演示二元一次方程(即直线方程)的解与图像上点的对应关系。学习者需要根据给定的直线方程,判断并输入满足该方程的x和y值,从而直观理解“方程的解就是直线上点的坐标”这一核心概念。 核心数学概念包括:二元一次方程、直线图像、坐标点、解与图像的关系。 作图要点:从构造摘要可见,该范例大量使用了GeoGebra的文本处理命令(如TextToUnicode、IndexOf、Length、Sum、RandomElement、Simplify、Sequence、Sort、Join、Remove、Insert、Element、GCD、TableText、Textfield等)来解析用户输入并生成随机题目;同时使用Point、Polygon、Vector等几何对象绘制直线和点,并通过CoordPointertoAxes7等命令实现坐标轴交互。整体设计注重动态反馈和随机出题。 适合初中至高中阶段学生学习解析几何入门,也可用于教师课堂演示或学生自主探究二元一次方程解与直线的关系。

GeoGebra 命令及参数

  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