Binomial Formulas Interactive Practice
Loading the math board and drawing, please wait…
In collections
Binomische Formeln
An interactive math exercise for practicing the three binomial formulas (square of sum, square of difference, product of sum and difference) through shuffled matching tasks. Students identify correct formula expansions and their geometric representations from mixed options, developing both algebraic manipulation skills and geometric intuition. Uses GeoGebra commands: Polygon (geometric drawing), Textfield (text input), Shuffle (randomize options), Sequence (generate sequences), Element (select elements), Text (display text), If (conditional logic), CountIf (conditional counting). Contains left and right option buttons (optionsR1-R7, optionsL1-L6) and rectangular areas (allowedRect), suitable for grade 7-8 students in classroom or homework settings.
GeoGebra Commands & Parameters
Polygon(allowedRect4, allowedRect3, allowedRect2, allowedRect1) → allowedRect, a_1, b, c, dMax(widthsOptionsR) → widthRMax(heightsOptionsR) → heightRMax(heightR, Max[heightsOptionsL]) → heightLMax(widthsOptionsL) → widthLIf(isShuffleOptionsLechts, Shuffle[1…numOptionsR], 1…numOptionsR) → indizesOptionsRechtsIf(isShuffleOptionsLinks, Shuffle[1…numOptionsL], 1…numOptionsL) → indizesOptionsLinksTextfield(input1) → InputBox1Textfield(input2) → InputBox2Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {6, 5, 1, 1, 5, 2, 6, 3, 5, 6, 2, 9, 4, 1, 1, 3, 4, 5, 1, 3, 1, 4, 2, 5, 7, 7, 2, 5, 10, 8, 8, 9, 6, 0, 1, 1, 9, 10, 9, 4, 5, 2, 1, 5, 4, 3, 1, 9, 9, 1, 2, 2, 8, 0, 2, 3, 10, 7, 1, 6, 10, 7, 3, 1, 7, 10, 4, 7, 10, 0, 1, 2, 6, 6, 1, 3, 8, 9, 4, 10, 3, 8, 3, 5, 3, 3, 10, 0, 0, 7, 1, 2, 7, 3, 1, 9, 4, 10, 1, 4}Element(randomNosForX, Mod[questionCount, 100] + 1) → numXShuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {6, 4, 9, 2, 6, 3, 1, 7, 2, 2, 0, 7, 4, 9, 7, 10, 1, 5, 2, 9, 10, 10, 7, 8, 4, 3, 3, 5, 4, 6, 5, 0, 8, 2, 2, 4, 1, 10, 10, 3, 8, 3, 1, 6, 0, 10, 6, 2, 8, 4, 2, 2, 10, 8, 2, 4, 1, 2, 5, 4, 10, 6, 0, 9, 9, 0, 3, 10, 7, 8, 1, 9, 0, 7, 10, 3, 5, 3, 3, 3, 0, 1, 3, 7, 7, 9, 5, 3, 4, 3, 2, 7, 7, 5, 6, 5, 2, 9, 1, 2}Element(randomNosForY, Mod[questionCount, 100] + 1) → numYAppend(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayXAppend(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayYRemove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeatRemove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeatElement(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeatElement(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeatSequence(1) → positionsOptionsRechtsSequence(Element[optionsRAll, indizesOptionsRechts(i)], i, 1, numOptionsR) → optionsRActualLength(optionsRActual) → aSequence(Element[optionsLAll, indizesOptionsLinks(i)], i, 1, numOptionsL) → optionsLActualSequence(allOptionsL(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsLSequence(allOptionsR(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsRPolygon((-10, -2), (10, -2), (10, 10), (-10, 10)) → q1, q_1, r_1, s_1, t_1Text(optionsLActual(6), CenterOptionL6, true, true, 0, 0) → opL6Text(optionsLActual(1), CenterOptionL1, true, true, 0, 0) → opL1Text(optionsLActual(2), CenterOptionL2, true, true, 0, 0) → opL2Text(optionsLActual(3), CenterOptionL3, true, true, 0, 0) → opL3Text(optionsLActual(4), CenterOptionL4, true, true, 0, 0) → opL4Text(optionsLActual(5), CenterOptionL5, true, true, 0, 0) → opL5PointIn(allowedRect) → CenterOptionR1Text(optionsRActual(1), CenterOptionR1, true, true, 0, 0) → opR1Polygon(CenterOptionR1, CenterOptionR1 - (widthR / 2, heightR / 2), CenterOptionR1 + (widthR / 2, ((-heightR)) / 2), CenterOptionR1 + (widthR / 2, heightR / 2), CenterOptionR1 - (widthR / 2, ((-heightR)) / 2), CenterOptionR1 - (widthR / 2, heightR / 2)) → rectRMove1, centeroptionr1, f, g, h, i, jPointIn(allowedRect) → CenterOptionR2Text(optionsRActual(2), CenterOptionR2, true, true, 0, 0) → opR2Polygon(CenterOptionR2, CenterOptionR2 - (widthR / 2, heightR / 2), CenterOptionR2 + (widthR / 2, ((-heightR)) / 2), CenterOptionR2 + (widthR / 2, heightR / 2), CenterOptionR2 - (widthR / 2, ((-heightR)) / 2), CenterOptionR2 - (widthR / 2, heightR / 2)) → rectRMove2, centeroptionr2, k, l, m, n, pPointIn(allowedRect) → CenterOptionR3Text(optionsRActual(3), CenterOptionR3, true, true, 0, 0) → opR3Polygon(CenterOptionR3, CenterOptionR3 - (widthR / 2, heightR / 2), CenterOptionR3 + (widthR / 2, ((-heightR)) / 2), CenterOptionR3 + (widthR / 2, heightR / 2), CenterOptionR3 - (widthR / 2, ((-heightR)) / 2), CenterOptionR3 - (widthR / 2, heightR / 2)) → rectRMove3, centeroptionr3, q, r, s, t, ePointIn(allowedRect) → CenterOptionR4Text(optionsRActual(4), CenterOptionR4, true, true, 0, 0) → opR4Polygon(CenterOptionR4, CenterOptionR4 - (widthR / 2, heightR / 2), CenterOptionR4 + (widthR / 2, ((-heightR)) / 2), CenterOptionR4 + (widthR / 2, heightR / 2), CenterOptionR4 - (widthR / 2, ((-heightR)) / 2), CenterOptionR4 - (widthR / 2, heightR / 2)) → rectRMove4, centeroptionr4, f_1, g_1, h_1, i_1, j_1PointIn(allowedRect) → CenterOptionR5Text(optionsRActual(5), CenterOptionR5, true, true, 0, 0) → opR5Polygon(CenterOptionR5, CenterOptionR5 - (widthR / 2, heightR / 2), CenterOptionR5 + (widthR / 2, ((-heightR)) / 2), CenterOptionR5 + (widthR / 2, heightR / 2), CenterOptionR5 - (widthR / 2, ((-heightR)) / 2), CenterOptionR5 - (widthR / 2, heightR / 2)) → rectRMove5, centeroptionr5, k_1, l_1, m_1, n_1, p_1PointIn(allowedRect) → CenterOptionR6Text(optionsRActual(6), CenterOptionR6, true, true, 0, 0) → opR6Polygon(CenterOptionR6, CenterOptionR6 - (widthR / 2, heightR / 2), CenterOptionR6 + (widthR / 2, ((-heightR)) / 2), CenterOptionR6 + (widthR / 2, heightR / 2), CenterOptionR6 - (widthR / 2, ((-heightR)) / 2), CenterOptionR6 - (widthR / 2, heightR / 2)) → rectRMove6, centeroptionr6, b_1, c_1, d_1, e_1, f_2If(CountIf[P ∈ answerRectLarger1(1), P, verticesR1] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR1] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR1] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR1] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR1] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR1] ≟ 4, 5) → indexAnswerR1If(CountIf[P ∈ answerRectLarger1(1), P, verticesR2] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR2] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR2] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR2] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR2] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR2] ≟ 4, 5) → indexAnswerR2If(CountIf[P ∈ answerRectLarger1(1), P, verticesR3] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR3] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR3] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR3] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR3] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR3] ≟ 4, 5) → indexAnswerR3If(CountIf[P ∈ answerRectLarger1(1), P, verticesR4] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR4] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR4] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR4] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR4] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR4] ≟ 4, 5) → indexAnswerR4If(CountIf[P ∈ answerRectLarger1(1), P, verticesR5] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR5] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR5] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR5] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR5] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR5] ≟ 4, 5) → indexAnswerR5If(CountIf[P ∈ answerRectLarger1(1), P, verticesR6] ≟ 4, 1, CountIf[P ∈ answerRectLarger6(1), P, verticesR6] ≟ 4, 6, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR6] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR6] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR6] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR6] ≟ 4, 5) → indexAnswerR6CountIf(ind ≠ -1, ind, indizesAnswerR) → numAnswersDraggedToLeftIf(correct, "\vphantom{✘}✓ Richtig", If[correctpartially, "\vphantom{✓}✘ Teilweise richtig", "\vphantom{✓}✘ Falsch"]) → correctTextTempText((("\Large\textsf{" * correctTextTemp) * "}"), PStartCorrectText, true, true, 1, 0) → correctText
AI Drawing Prompt Reference
Create an interactive practice interface for binomial formula matching. The center contains a rectangular answer area. On the left and right sides, there are columns of clickable option buttons—six on the left and seven on the right—each displaying a formula or geometric expression. The buttons are randomly positioned within the allowed rectangular region. At the top or bottom, two text input fields are provided for entering answers. A feedback rectangle turns green when the answer is correct. All options and inputs are generated from random numbers, ensuring varied question order and content each time. The layout is clear, suitable for students to practice algebraic and geometric skills.
The prompt above was compiled from the original drawing commands and is for reference only.