Third Binomial Formula (Difference of Squares) Interactive Practice
Loading the math board and drawing, please wait…
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
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {8, 5, 7, 3, 10, 10, 2, 6, 9, 9}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxPolyLine(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) → sb02SelectedIndex(dropdown031) → index031SelectedIndex(dropdown032) → index032SelectedIndex(dropdown033) → index033If(correct031 ∧ correct032 ∧ correct033, 4, correct031 ∧ correct032, 3, correct031, 2, 1) → step3CircleArc(Midpoint[PosCalc11, PosCalc13] + (0, dis3), PosCalc13, PosCalc11) → arc031CircleArc(Midpoint[PosCalc11, PosCalc14] + (0, dis3), PosCalc14, PosCalc11) → arc032SelectedIndex(dropdown034) → index034PolyLine(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)) → sb07Segment(PosA + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap081Text("\textsf{a}", Midpoint[segCap081] + (0, 0.05), false, true, 0, -1) → Cap081Segment(PosB + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap091Text("\textsf{b}", Midpoint[segCap091] + (0, 0.05), false, true, 1, 0) → Cap091SelectedIndex(dropdown101) → index101Segment(PosC + (disCap1, 0), PosP2 + (disCap1, 0)) → segCap101SelectedIndex(dropdown111) → index111SelectedIndex(dropdown112) → index112Textfield(input121) → InputBox121Flatten({1, Shuffle[2…5]}) → OrderDD121Sort({"$\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) → dropdown121SelectedIndex(dropdown121) → index121Segment(PosA + (0, (-disCap2)), PosB + (0, (-disCap2))) → segCap121Segment(PosP1 + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap122Text("\textsf{a}", Midpoint[segCap121] + (0, 0.05), false, true, 0, -1) → Cap121Text("\textsf{b}", Midpoint[segCap122] + (0, 0.05), false, true, 0, -1) → Cap122Segment(PosP1, PosP1 + (7, 2)) → seg131Point(seg131) → PosQPolygon(PosQ, PosQ + ((parab * sidelength), 0), PosQ + ((parab * sidelength), (parab * sidelength)), PosQ + (0, (parab * sidelength))) → Quadrat2, segQ23, segQ21, segQ22, segQ24Text("\textsf{b²}", Midpoint[PosQ, PosQ + ((parab * sidelength), (parab * sidelength))] + (0, 0.05), false, true, 0, 0) → CapQ2SelectedIndex(dropdown141) → index141SelectedIndex(dropdown142) → index142Rotate(PosA + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR11Rotate(PosP1 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR12Rotate(PosP + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR13Rotate(PosP4 + (Min[slider151, 1] * (PosB - PosA)), If[slider151 < 1, 0°, ((slider151 - 1) * 90°)], PosP2) → PosR14Segment(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]) → segCap151Text("\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) → Cap151Segment(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]) → segCap152Text("\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) → Cap152PolyLine(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) → sb16SelectedIndex(dropdown161) → index161SelectedIndex(dropdown162) → index162PolyLine(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)) → sb17Flatten({1, Shuffle[2…5]}) → OrderDD122Sort({"$\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) → dropdown122SelectedIndex(dropdown122) → index122PolyLine(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)) → sb01Mirror(CircleArc[Midpoint[PosCalc12, PosCalc13] + (0, dis3), PosCalc13, PosCalc12], SpiegelGerade) → arc033Mirror(CircleArc[Midpoint[PosCalc12, PosCalc14] + (0, dis3), PosCalc14, PosCalc12], SpiegelGerade) → arc034PointIn(Polygon[PPolyLight1, PPolyLight2, PPolyLight3, PPolyLight4]) → PLightCircle(PLight, LightRadius) → LightCircle1Point(Segment[PosDDStart052, PosDDEnd052]) → PosDD052Segment(PosA + ((-disCap1), 0), PosD + ((-disCap1), 0)) → segCap082Text("\textsf{a}", Midpoint[segCap082] + (0, 0.05), false, true, -1, 0) → Cap082Text("\textsf{a \cdot b}", Midpoint[PosB, PosP4] + (0, 0.05), false, true, 0, 0) → Cap092Text((If[step ≟ 10, "\textcolor{#db6114}{\bold{", "{{"] * "\textsf{a \(-\) b}}}"), Midpoint[segCap101] + (0, 0.05), false, true, 1, 0) → Cap101Text("\textsf{a \cdot (a \(-\) b)}", Midpoint[PosC, PosP4] + (0, 0.05), false, true, 0, 0) → Cap111Text("$\textsf{Zieh mich!}$", Midpoint[PosB, PosP2] + (1, 0), false, true, 1, -1) → txtCap13Segment(Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]], Midpoint[Corner[txtCap13, 1], Corner[txtCap13, 4]] + (-1.5, 0)) → arrow13Text("\textsf{(a \(-\) b) \cdot b}", Midpoint[PosP4, PosP1] + (0, 0.05), false, true, 0, 0) → Cap141Text("\textsf{(a + b) \cdot (a \(-\) b)}", Midpoint[PosD, PosP2] + (PosP2 - PosP) / 2 + (0, 0.05), false, true, 0, 0) → Cap161PolyLine(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)) → sb03PolyLine(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) → sb04PolyLine(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) → sb04bCircle(PLight, LightRadius) → LightCircle2Circle(PTorch, TorchSize) → TorchCircleLine(PLight, PTorch) → LightLineIntersect(TorchCircle, LightLine) → PosTorch_{1}, PosTorch_{2}Tangent(PosTorch_{2}, LightCircle1) → LightTangent_{1}, LightTangent_{2}Rotate(PosTorch_{2} - (0.2 * UnitOrthogonalVector[LightLine]), -68°, PTorch) → PosImgTorch2IsInRegion(PLight, Polygon[Corner[text1, 1], Corner[text1, 2], Corner[text1, 3], Corner[text1, 4]]) → clickableBtnValidateLightText("\textsf{\bold{Zieh mich!}}", PLight + (0, -0.25), false, true, 0, -1) → CapLightZiehMichPoint(Segment[PosDDStart051, PosDDEnd051]) → PosDD051Text("\textsf{\bold{Zieh mich!}}", PosDD051 + (0, -0.35), false, true, 0, -1) → CapZiehMich051Text("{\textsf{a²}", PosDD052, false, true, 0, 0) → txtDD052Text("{\textsf{\(-\) b²}", PosDD053, false, true, 0, 0) → txtDD053PolyLine(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) → sb051PolyLine(Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]) → segDrag052PolyLine(Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]) → segDrag053PolyLine(PosDDEnd052 - PosDD052 + {Vertex[polyDD052(1), 2], Vertex[polyDD052(1), 3], Vertex[polyDD052(1), 4], Vertex[polyDD052(1), 5], Vertex[polyDD052(1), 2]}) → segDragEnd052PolyLine(PosDDEnd053 - PosDD053 + {Vertex[polyDD053(1), 2], Vertex[polyDD053(1), 3], Vertex[polyDD053(1), 4], Vertex[polyDD053(1), 5], Vertex[polyDD053(1), 2]}) → segDragEnd053Text("\textsf{\bold{Zieh mich!}}", PosDD052 + (0, 0.15), false, true, 0, 1) → CapZiehMich052Text("\textsf{\bold{Zieh mich!}}", PosDD053 + (0, 0.15), false, true, 0, 1) → CapZiehMich053Sequence(PosQ4 + (k / 20 * (PosQ41 - PosQ4)), k, 0, 20) → PointsP08Point(PointsP08) → Pos08Text("\textsf{\bold{\begin{array}{c}Zieh mich!\\↓\end{array}}}", Pos08 + (-0.25, 0), false, true, 1, -1) → CapZiehMich08PolyLine(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)) → sb08Segment(PosQ4 + (0, disQ1 + 0.65), PosQ4 + ((dimQ * (1 + parQ)), disQ1 + 0.65)) → segQ081Segment(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])) → segQ082Segment(PosQ4 + (dimQ, disQ1), PosQ4 + ((dimQ * (1 + parQ)), disQ1)) → segQ083Text("\textsf{(a \(+\) b)}", Midpoint[segQ081] + (0, disQ1), false, true, 0, 0) → CapQ081Text("\textsf{a}", Midpoint[segQ082] + (0, disQ1), false, true, 0, 0) → CapQ082Text("\textsf{b}", Midpoint[segQ083] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ083Segment(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))) → segQ084Segment(PosQ4 + ((-disQ1), 0), PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ)))) → segQ085Segment(PosQ4 + ((-disQ1), ((-dimQ) * (1 - parQ))), PosQ4 + ((-disQ1), ((-dimQ) * 1))) → segQ086Text("\textsf{(a \(-\) b)}", Midpoint[segQ085] + (0.1, 0), false, true, -1, 0) → CapQ085Text("\textsf{b}", Midpoint[segQ086] + (0, 0), false, true, -1, 0) → CapQ086Text("\textsf{a}", Midpoint[segQ084] + (0, 0), false, true, -1, 0) → CapQ084PolyLine(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) → sb09PolyLine(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) → sb10Segment(PosQ3 + (0, disQ1), PosQ3 + (((-parQ) * dimQ), disQ1)) → segQ091Text("\textsf{b}", Midpoint[segQ091] + (0, disQ1 + 0.075), false, true, 0, 0) → CapQ091PolyLine(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) → sb11PolyLine(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) → sb13PolyLine(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) → sb14Segment(PosQ1 + (0, (-disQ1)), PosQ1 + (((1 - parQ) * dimQ), (-disQ1))) → segQ141Segment(PosQ3 + (disQ1, 0), PosQ3 + (disQ1, ((-(1 - parQ)) * dimQ))) → segQ142PolyLine(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) → sb15Circle((7.345, 4.43), LightRadius) → cText("\textsf{b²\vphantom{g}}", PosP111 + (0, 0.05), false, true, 0, 0) → txtDD111Text("\textsf{\bold{Zieh mich!}}", PosP111 + (0, 0.5), false, true, 0, 1) → CapZiehMich11PolyLine(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)) → segDrag051Text((("\textcolor{" * If[PosDD051 ≟ PosDDEnd051, "#616161", "#000000"]) * "}{\textsf{\(-\) a\:b + a\:b}}"), PosDD051, false, true, 0, 0) → txtDD051Textfield(input041) → InputBox041If(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]) → clickableBtnNextPolyLine(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.