Third Binomial Formula (Difference of Squares) Interactive Practice

Third Binomial Formula (Difference of Squares) Interactive Practice
Loading the math board and drawing, please wait…
2024-06-26 16:57
In collections Binomische Formeln
① This GeoGebra example provides an interactive exercise demonstrating the third binomial formula, also known as the difference of squares: (a+b)(a-b)=a²-b², including both expansion and reverse factorization. ② The core mathematical concepts are algebraic identities, specifically the difference of squares, involving polynomial multiplication, factoring, and symbolic manipulation. ③ Construction highlights: based on the construction summary, commands such as Sequence, Element, Textfield, PolyLine, SelectedIndex, If, CircleArc, Segment, Text, Flatten, Sort, Point, Polygon, Rotate, Mirror, PointIn, Circle, Line, Intersect, Tangent, and IsInRegion are used to create dynamic text fields, buttons, feedback areas, and visual aids, enabling random question generation, instant validation, and visual feedback. ④ Suitable for middle school students in grades 7-8, this resource supports classroom practice or self-study, helping learners master algebraic transformations and geometric intuition of the difference of squares.

GeoGebra Commands & Parameters

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {8, 5, 7, 3, 10, 10, 2, 6, 9, 9}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. PolyLine(PosSB, Corner[txt021, 2] + (-0.5, 0), Corner[txt021, 1], Corner[txt021, 4] + (0, 0.1), Corner[txt021, 3] + (0, 0.1), Corner[txt021, 2] + (0, 0.5), PosSB) → sb02
  5. SelectedIndex(dropdown031) → index031
  6. SelectedIndex(dropdown032) → index032
  7. SelectedIndex(dropdown033) → index033
  8. If(correct031 ∧ correct032 ∧ correct033, 4, correct031 ∧ correct032, 3, correct031, 2, 1) → step3
  9. CircleArc(Midpoint[PosCalc11, PosCalc13] + (0, dis3), PosCalc13, PosCalc11) → arc031
  10. CircleArc(Midpoint[PosCalc11, PosCalc14] + (0, dis3), PosCalc14, PosCalc11) → arc032
  11. SelectedIndex(dropdown034) → index034
  12. PolyLine(PosSB + (0.25, -0.25), Corner[txt072, 2] + (-0.75, -0.1), Corner[txt072, 1] + (0, -0.1), Corner[txt072, 4] + (0, 0.1), Corner[txt072, 3] + (0, 0.1), Corner[txt072, 3] + (0, -0.25), PosSB + (0.25, -0.25)) → sb07
  13. Segment(PosA + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap081
  14. Text("\textsf{a}", Midpoint[segCap081] + (0, 0.05), false, true, 0, -1) → Cap081
  15. Segment(PosB + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap091
  16. Text("\textsf{b}", Midpoint[segCap091] + (0, 0.05), false, true, 1, 0) → Cap091
  17. SelectedIndex(dropdown101) → index101
  18. Segment(PosC + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap101
  19. SelectedIndex(dropdown111) → index111
  20. SelectedIndex(dropdown112) → index112
  21. Textfield(input121) → InputBox121
  22. Flatten({1, Shuffle[2…5]}) → OrderDD121
  23. Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD121) → dropdown121
  24. SelectedIndex(dropdown121) → index121
  25. Segment(PosA + (0, (-disCap2)), PosB + (0, (-disCap2))) → segCap121
  26. Segment(PosP1 + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap122
  27. Text("\textsf{a}", Midpoint[segCap121] + (0, 0.05), false, true, 0, -1) → Cap121
  28. Text("\textsf{b}", Midpoint[segCap122] + (0, 0.05), false, true, 0, -1) → Cap122
  29. Segment(PosP1, PosP1 + (7, 2)) → seg131
  30. Point(seg131) → PosQ
  31. Polygon(PosQ, PosQ + ((parab * sidelength), 0), PosQ + ((parab * sidelength), (parab * sidelength)), PosQ + (0, (parab * sidelength))) → Quadrat2, segQ23, segQ21, segQ22, segQ24
  32. Text("\textsf{b²}", Midpoint[PosQ, PosQ + ((parab * sidelength), (parab * sidelength))] + (0, 0.05), false, true, 0, 0) → CapQ2
  33. SelectedIndex(dropdown141) → index141
  34. SelectedIndex(dropdown142) → index142
  35. Rotate(PosA + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR11
  36. Rotate(PosP1 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR12
  37. Rotate(PosP + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR13
  38. Rotate(PosP4 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR14
  39. Segment(Rotate[PosA + ((-disCap1), 0) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP4 + ((-disCap1), 0) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]) → segCap151
  40. Text("\textsf{b}", Midpoint[Segment[Rotate[PosA + ((-disCap1) - 0.3, 0.05) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP4 + (-0.3 - disCap1, 0.05) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]]], false, true, 0, 0) → Cap151
  41. Segment(Rotate[PosA + (0, (-disCap1)) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP1 + (0, (-disCap1)) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]) → segCap152
  42. Text("\textsf{a \(-\) b}", Midpoint[Segment[Rotate[PosA + (0, (-disCap1) + If[slider151 > 1, -0.75, -0.25]) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2], Rotate[PosP1 + (0, (-disCap1) + If[slider151 > 1, -0.75, -0.25]) + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2]]], false, true, 0, 0) → Cap152
  43. PolyLine(PosSB, Corner[txt161, 2] + (-0.5, 0), Corner[txt161, 1], Corner[txt161, 4] + (0, 0.1), Corner[txt161, 3] + (0, 0.1), Corner[txt161, 2] + (0, 0.5), PosSB) → sb16
  44. SelectedIndex(dropdown161) → index161
  45. SelectedIndex(dropdown162) → index162
  46. PolyLine(PosSB + (0.5, -0.5), Corner[txt171, 2] + (0, 0.5), Corner[txt171, 2] + (0, 0), Corner[txt171, 1], Corner[txt171, 4] + (0, 0.1), Corner[txt171, 3] + (0, 0.1), Corner[txt171, 2] + (0, 1), PosSB + (0.5, -0.5)) → sb17
  47. Flatten({1, Shuffle[2…5]}) → OrderDD122
  48. Sort({"$\textsf{\phantom{ a \(-\) b }\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{\(-\) }b\phantom{ a}\vphantom{(b\(-\)a)}}$", "$\textsf{\phantom{ \(-\) }a\phantom{ b}\vphantom{(b\(-\)a)}}$", "$\textsf{(a \(-\) b) \vphantom{(b\(-\)a)}}$", "$\textsf{(b \(-\) a) \vphantom{(b\(-\)a)}}$"}, OrderDD122) → dropdown122
  49. SelectedIndex(dropdown122) → index122
  50. PolyLine(PosSB + (0.4, -0.25), Corner[txt011, 2] + (-0.5, 0), Corner[txt011, 1], Corner[txt011, 4] + (0, 0.1), Corner[txt011, 3] + (0, 0.1), Corner[txt011, 2] + (0, 0.5), PosSB + (0.4, -0.25)) → sb01
  51. Mirror(CircleArc[Midpoint[PosCalc12, PosCalc13] + (0, dis3), PosCalc13, PosCalc12], SpiegelGerade) → arc033
  52. Mirror(CircleArc[Midpoint[PosCalc12, PosCalc14] + (0, dis3), PosCalc14, PosCalc12], SpiegelGerade) → arc034
  53. PointIn(Polygon[PPolyLight1, PPolyLight2, PPolyLight3, PPolyLight4]) → PLight
  54. Circle(PLight, LightRadius) → LightCircle1
  55. Point(Segment[PosDDStart052, PosDDEnd052]) → PosDD052
  56. Segment(PosA + ((-disCap1), 0), PosD + ((-disCap1), 0)) → segCap082
  57. Text("\textsf{a}", Midpoint[segCap082] + (0, 0.05), false, true, -1, 0) → Cap082
  58. Text("\textsf{a \cdot b}", Midpoint[PosB, PosP4] + (0, 0.05), false, true, 0, 0) → Cap092
  59. Text((If[step ≟ 10, "\textcolor{#db6114}{\bold{", "{{"] * "\textsf{a \(-\) b}}}"), Midpoint[segCap101] + (0, 0.05), false, true, 1, 0) → Cap101
  60. Text("\textsf{a \cdot (a \(-\) b)}", Midpoint[PosC, PosP4] + (0, 0.05), false, true, 0, 0) → Cap111
  61. Text("$\textsf{Zieh mich!}$", Midpoint[PosB, PosP2] + (1, 0), false, true, 1, -1) → txtCap13
  62. Segment(Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]], Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]] + (-1.5, 0)) → arrow13
  63. Text("\textsf{(a \(-\) b) \cdot b}", Midpoint[PosP4, PosP1] + (0, 0.05), false, true, 0, 0) → Cap141
  64. Text("\textsf{(a + b) \cdot (a \(-\) b)}", Midpoint[PosD, PosP2] + (PosP2 - PosP) / 2 + (0, 0.05), false, true, 0, 0) → Cap161
  65. PolyLine(PosSB + (0.4, -0.25), Corner[txt032, 2] + (-0.5, 0), Corner[txt032, 1], Corner[txt032, 4] + (0, 0.1), Corner[txt032, 3] + (0, 0.1), Corner[txt032, 2] + (0, 0.5), PosSB + (0.4, -0.25)) → sb03
  66. PolyLine(PosSB, Corner[txt041, 2] + (0.1, 0.35), Corner[txt041, 2] + (0.1, -0.1), Corner[txt041, 1] + (0, -0.1), Corner[txt041, 4] + (0, 0.1), Corner[txt041, 3] + (0.1, 0.1), Corner[txt041, 3] + (0.1, -0.5), PosSB) → sb04
  67. PolyLine(PosSB, Corner[txt043, 2] + (0.1, 0.35), Corner[txt043, 2] + (0.1, -0.1), Corner[txt043, 1] + (0, -0.1), Corner[txt043, 4] + (0, 0.1), Corner[txt043, 3] + (0.1, 0.1), Corner[txt043, 3] + (0.1, -0.5), PosSB) → sb04b
  68. Circle(PLight, LightRadius) → LightCircle2
  69. Circle(PTorch, TorchSize) → TorchCircle
  70. Line(PLight, PTorch) → LightLine
  71. Intersect(TorchCircle, LightLine) → PosTorch_{1}, PosTorch_{2}
  72. Tangent(PosTorch_{2}, LightCircle1) → LightTangent_{1}, LightTangent_{2}
  73. Rotate(PosTorch_{2} - (0.2 * UnitOrthogonalVector[LightLine]), -68°, PTorch) → PosImgTorch2
  74. IsInRegion(PLight, Polygon[Corner[text1, 1], Corner[text1, 2], Corner[text1, 3], Corner[text1, 4]]) → clickableBtnValidateLight
  75. Text("\textsf{\bold{Zieh mich!}}", PLight + (0, -0.25), false, true, 0, -1) → CapLightZiehMich
  76. Point(Segment[PosDDStart051, PosDDEnd051]) → PosDD051
  77. Text("\textsf{\bold{Zieh mich!}}", PosDD051 + (0, -0.35), false, true, 0, -1) → CapZiehMich051
  78. Text("{\textsf{a²}", PosDD052, false, true, 0, 0) → txtDD052
  79. Text("{\textsf{\(-\) b²}", PosDD053, false, true, 0, 0) → txtDD053
  80. PolyLine(PosSB, Corner[txt052, 2] + (0.1, 0.35), Corner[txt052, 2] + (0.1, -0.1), Corner[txt052, 1] + (0, -0.1), Corner[txt052, 4] + (0, 0.1), Corner[txt052, 3] + (0.1, 0.1), Corner[txt052, 2] + (0.1, 0.75), PosSB) → sb051
  81. PolyLine(Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]) → segDrag052
  82. PolyLine(Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]) → segDrag053
  83. PolyLine(PosDDEnd052 - PosDD052 + {Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]}) → segDragEnd052
  84. PolyLine(PosDDEnd053 - PosDD053 + {Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]}) → segDragEnd053
  85. Text("\textsf{\bold{Zieh mich!}}", PosDD052 + (0, 0.15), false, true, 0, 1) → CapZiehMich052
  86. Text("\textsf{\bold{Zieh mich!}}", PosDD053 + (0, 0.15), false, true, 0, 1) → CapZiehMich053
  87. Sequence(PosQ4 + (k / 20 * (PosQ41 - PosQ4)), k, 0, 20) → PointsP08
  88. Point(PointsP08) → Pos08
  89. Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\↓\end{array}}}", Pos08 + (-0.25, 0), false, true, 1, -1) → CapZiehMich08
  90. PolyLine(PosSB + (0.25, -0.25), Corner[txt082, 2] + (0, 0.4), Corner[txt082, 2] + (0, 0), Corner[txt082, 1] + (0, 0), Corner[txt082, 4] + (0, 0.1), Corner[txt082, 3] + (0, 0.1), Corner[txt082, 3] + (0, -0.25), PosSB + (0.25, -0.25)) → sb08
  91. Segment(PosQ4 + (0, disQ1 + 0.65), PosQ4 + ((dimQ * (1 + parQ)), disQ1 + 0.65)) → segQ081
  92. Segment(PosQ4 + (0, disQ1 + If[step ∈ {10, 11, 12, 13, 14, 15}, 0.65, 0]), PosQ4 + ((dimQ * 1), disQ1 + If[step ∈ {10, 11, 12, 13, 14, 15}, 0.65, 0])) → segQ082
  93. Segment(PosQ4 + (dimQ, disQ1), PosQ4 + ((dimQ * (1 + parQ)), disQ1)) → segQ083
  94. Text("\textsf{(a \(+\) b)}", Midpoint[segQ081] + (0, disQ1), false, true, 0, 0) → CapQ081
  95. Text("\textsf{a}", Midpoint[segQ082] + (0, disQ1), false, true, 0, 0) → CapQ082
  96. Text("\textsf{b}", Midpoint[segQ083] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ083
  97. Segment(PosQ4 + ((-disQ1) - If[step ∈ {8, 17}, 1.65, step ≟ 9, 0, 0.65], 0), PosQ4 + ((-disQ1) - If[step ∈ {8, 17}, 1.65, step ≟ 9, 0, 0.65], (-dimQ))) → segQ084
  98. Segment(PosQ4 + ((-disQ1), 0), PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ)))) → segQ085
  99. Segment(PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ))), PosQ4 + ((-disQ1), ((-dimQ) * 1))) → segQ086
  100. Text("\textsf{(a \(-\) b)}", Midpoint[segQ085] + (0.1, 0), false, true, -1, 0) → CapQ085
  101. Text("\textsf{b}", Midpoint[segQ086] + (0, 0), false, true, -1, 0) → CapQ086
  102. Text("\textsf{a}", Midpoint[segQ084] + (0, 0), false, true, -1, 0) → CapQ084
  103. PolyLine(PosSB, Corner[txt091, 2] + (-0.25, 0), Corner[txt091, 1] + (-0.1, 0), Corner[txt091, 4] + (-0.1, 0.1), Corner[txt091, 3] + (0.1, 0.1), Corner[txt091, 2] + (0.1, 0.35), PosSB) → sb09
  104. PolyLine(PosSB, Corner[txt101, 2] + (-0.25, -0.1), Corner[txt101, 1] + (-0.1, -0.1), Corner[txt101, 4] + (-0.1, 0.1), Corner[txt101, 3] + (0.1, 0.1), Corner[txt101, 2] + (0.1, 0.25), PosSB) → sb10
  105. Segment(PosQ3 + (0, disQ1), PosQ3 + (((-parQ) * dimQ), disQ1)) → segQ091
  106. Text("\textsf{b}", Midpoint[segQ091] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ091
  107. PolyLine(PosSB, Corner[txt111, 2] + (-0.25, 0), Corner[txt111, 1] + (-0.1, 0), Corner[txt111, 4] + (-0.1, 0.1), Corner[txt111, 3] + (0.1, 0.1), Corner[txt111, 2] + (0.1, 0.35), PosSB) → sb11
  108. PolyLine(PosSB, Corner[txt131, 2] + (-0.25, 0), Corner[txt131, 1] + (-0.1, 0), Corner[txt131, 4] + (-0.1, 0.1), Corner[txt131, 3] + (0.1, 0.1), Corner[txt131, 2] + (0.1, 0.35), PosSB) → sb13
  109. PolyLine(PosSB, Corner[txt141, 2] + (-0.25, -0.1), Corner[txt141, 1] + (-0.1, -0.1), Corner[txt141, 4] + (-0.1, 0.1), Corner[txt141, 3] + (0.1, 0.1), Corner[txt141, 2] + (0.1, 0.25), PosSB) → sb14
  110. Segment(PosQ1 + (0, (-disQ1)), PosQ1 + (((1 - parQ) * dimQ), (-disQ1))) → segQ141
  111. Segment(PosQ3 + (disQ1, 0), PosQ3 + (disQ1, ((-(1 - parQ)) * dimQ))) → segQ142
  112. PolyLine(PosSB, Corner[txt151, 2] + (-0.25, 0), Corner[txt151, 1] + (-0.1, 0), Corner[txt151, 4] + (-0.1, 0.1), Corner[txt151, 3] + (0.1, 0.1), Corner[txt151, 2] + (0.1, 0.35), PosSB) → sb15
  113. Circle((7.345, 4.43), LightRadius) → c
  114. Text("\textsf{b²\vphantom{g}}", PosP111 + (0, 0.05), false, true, 0, 0) → txtDD111
  115. Text("\textsf{\bold{Zieh mich!}}", PosP111 + (0, 0.5), false, true, 0, 1) → CapZiehMich11
  116. PolyLine(Vertex[polyDD051(1), 2] + (0.1, 0), Vertex[polyDD051(1), 3] + (-0.1, 0), Vertex[polyDD051(1), 4] + (-0.1, 0), Vertex[polyDD051(1), 5] + (0.1, 0), Vertex[polyDD051(1), 2] + (0.1, 0)) → segDrag051
  117. Text((("\textcolor{" * If[PosDD051 ≟ PosDDEnd051, "#616161", "#000000"]) * "}{\textsf{\(-\) a\:b + a\:b}}"), PosDD051, false, true, 0, 0) → txtDD051
  118. Textfield(input041) → InputBox041
  119. If(step ≟ 3, correct03, step ≟ 14, correct141 ∧ correct142, step ≟ 15, slider151 ≟ 2, step ≟ 16, correct161 ∧ correct162, step ≟ 5, PosDD051 ≟ PosDDEnd051, step ≟ 4, correct041, step ≟ 4.5, true, validateLight ∧ (correctLight ∨ attemptCountLight ≥ 2), step ≟ 8, Pos08 ≟ PosQ41, step ≟ 11, PosP111 ≟ PosDD111, step ≟ 13, PosQ ≟ Point[seg131, 1]) → clickableBtnNext
  120. PolyLine(PosSB, Corner[txt053, 2] + (0.1, 0.2), Corner[txt053, 2] + (0.1, -0.1), Corner[txt053, 1] + (0, -0.1), Corner[txt053, 4] + (0, 0.1), Corner[txt053, 3] + (0.1, 0.1), Corner[txt053, 2] + (0.1, 0.6), PosSB) → sb052

AI Drawing Prompt Reference

Create an interactive practice diagram for the algebra identity (a+b)(a−b)=a²−b². Include a problem area with an input box and a feedback region, plus visual aids that split the expression into geometric parts. Draw key transitional shapes using two circle arcs defined by midpoints of underlying segments and offset by a distance parameter, then add labeled symbols “a” and “b” near corresponding segment midpoints, and place a label “b²” over a square-like polygon region. Also show a rotated configuration controlled by a slider: build a base segment/rectangle-like polygon from a point and translate it to form the area, then rotate certain segments and their labels so the layout demonstrates the difference between the factored form and the expanded form (showing text like “a−b” and “b”). Add dropdown-style text areas for selecting the correct step.
The prompt above was compiled from the original drawing commands and is for reference only.