二项式乘法特例:完全平方公式的交互式练习

二项式乘法特例:完全平方公式的交互式练习
几何画板及绘图内容加载中,请稍等……
2025-01-23 18:18
所属专题 Binomische Formeln
该GeoGebra范例演示了二项式乘法中的特殊情形——完全平方公式(第一、第二类二项式公式)的图形化与交互式练习。核心数学概念包括二项式展开、完全平方公式 (a+b)² = a² + 2ab + b² 及其逆向应用,以及通过拆分大数快速计算平方数。作图要点:范例使用了Sequence、Element、Textfield、PolyLine、Segment、Point、Polygon、Text、If、SelectedIndex、CircleArc、Mirror、Join、RemoveUndefined、Angle等GeoGebra命令,构建了包含文本框、按钮、滑块、图形反馈和动态验证的交互界面,对象包括输入框、按钮、文本、图形元素等,用于实现选择题、开放题和即时反馈。适合初中7-8年级学生,用于推导、图形化理解并应用三个二项式公式,尤其适合课堂互动和自主练习。

GeoGebra 命令及参数

  1. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {9, 9, 7, 5, 7, 4, 2, 8, 9, 7}
  2. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  3. Textfield(input) → inputBox
  4. PolyLine(PosSB, Corner[txt021, 2] + (-0.5, 0.1), Corner[txt021, 1] + (0, 0.1), Corner[txt021, 4] + (0, 0.1), Corner[txt021, 3] + (0.1, 0.1), Corner[txt021, 2] + (0.1, 0.5), PosSB) → sb02
  5. Segment(PosP1, PosA1) → seg11
  6. Segment(PosP4, PosA2) → seg12
  7. Point(Diagonalen) → PointP
  8. Segment(PosC + (0, disCap2), PosD + (0, disCap2)) → segCap11
  9. Segment(PosD + (0, disCap1), PosP3 + (0, disCap1)) → segCap12
  10. Segment(PosP3 + (0, disCap1), PosC + (0, disCap1)) → segCap13
  11. Segment(PosA + ((-disCap2), 0), PosD + ((-disCap2), 0)) → segCap14
  12. Segment(PosA + ((-disCap1), 0), PosP4 + ((-disCap1), 0)) → segCap15
  13. Segment(PosD + ((-disCap1), 0), PosP4 + ((-disCap1), 0)) → segCap16
  14. Sequence(PosD + (k * (PosA - PosD)), k, 0, 1, 0.05) → PointList03
  15. Point(PointList03) → Pos03
  16. PolyLine(PosSB, Corner[txt041, 2] + (-0.5, 0.1), Corner[txt041, 1] + (0, 0.1), Corner[txt041, 4] + (0, 0.1), Corner[txt041, 3] + (0.1, 0.1), Corner[txt041, 2] + (0.1, 0.5), PosSB) → sb04
  17. PolyLine(PosSB, Corner[txt051, 2] + (-0.5, 0.1), Corner[txt051, 1] + (0, 0.1), Corner[txt051, 4] + (0, 0.1), Corner[txt051, 3] + (0.1, 0.1), Corner[txt051, 2] + (0.1, 0.5), PosSB) → sb05
  18. Polygon(PosDD1, PosDD1 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD1 + (widthdd / 2, ((-heightdd)) / 2), PosDD1 + (widthdd / 2, heightdd / 2), PosDD1 + (((-widthdd)) / 2, heightdd / 2), PosDD1 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → polydd1, f_1, g_2, h_1, i_1, j_1, k_1
  19. PolyLine(PosDD1 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD1 + (widthdd / 2, ((-heightdd)) / 2), PosDD1 + (widthdd / 2, heightdd / 2), PosDD1 + (((-widthdd)) / 2, heightdd / 2), PosDD1 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → pldd1
  20. Polygon(PosDD2, PosDD2 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD2 + (widthdd / 2, ((-heightdd)) / 2), PosDD2 + (widthdd / 2, heightdd / 2), PosDD2 + (((-widthdd)) / 2, heightdd / 2), PosDD2 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → polydd2, posdd2, l_1, m_1, n_1, p_1, q_1
  21. Polygon(PosDD3, PosDD3 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD3 + (widthdd / 2, ((-heightdd)) / 2), PosDD3 + (widthdd / 2, heightdd / 2), PosDD3 + (((-widthdd)) / 2, heightdd / 2), PosDD3 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → polydd3, posdd3, r_1, s_1, t_1, a_1, b_1
  22. Polygon(PosDD4, PosDD4 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD4 + (widthdd / 2, ((-heightdd)) / 2), PosDD4 + (widthdd / 2, heightdd / 2), PosDD4 + (((-widthdd)) / 2, heightdd / 2), PosDD4 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → polydd4, posdd4, c_1, d_1, e_1, f_{2}, g_1
  23. PolyLine(PosDD2 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD2 + (widthdd / 2, ((-heightdd)) / 2), PosDD2 + (widthdd / 2, heightdd / 2), PosDD2 + (((-widthdd)) / 2, heightdd / 2), PosDD2 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → pldd2
  24. PolyLine(PosDD3 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD3 + (widthdd / 2, ((-heightdd)) / 2), PosDD3 + (widthdd / 2, heightdd / 2), PosDD3 + (((-widthdd)) / 2, heightdd / 2), PosDD3 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → pldd3
  25. PolyLine(PosDD4 + (((-widthdd)) / 2, ((-heightdd)) / 2), PosDD4 + (widthdd / 2, ((-heightdd)) / 2), PosDD4 + (widthdd / 2, heightdd / 2), PosDD4 + (((-widthdd)) / 2, heightdd / 2), PosDD4 + (((-widthdd)) / 2, ((-heightdd)) / 2)) → pldd4
  26. Text("\textsf{\Big{a²}}", PosDD2 + (0, 0.05), false, true, 0, 0) → txtDD2
  27. Text("\textsf{\Big{b²}}", PosDD4 + (0, 0.05), false, true, 0, 0) → txtDD4
  28. Text("\textsf{\Big{a \cdot b}}", PosDD1 + (0, 0.05), false, true, 0, 0) → txtDD1
  29. Text("\textsf{\Big{a \cdot b}}", PosDD3 + (0, 0.05), false, true, 0, 0) → txtDD3
  30. If(IndexOf[true, Sequence[IsInRegion[PosDD1 + (((-widthdd)) / 2, ((-heightdd)) / 2), QuadratList(k, 1)], k, 1, 5]] ≟ IndexOf[true, Sequence[IsInRegion[PosDD1 + (widthdd / 2, heightdd / 2), QuadratList(k, 1)], k, 1, 5]], IndexOf[true, Sequence[IsInRegion[PosDD1, QuadratList(k, 1)], k, 1, 5]], NaN) → RegionDD1
  31. If(IndexOf[true, Sequence[IsInRegion[PosDD2 + (((-widthdd)) / 2, ((-heightdd)) / 2), QuadratList(k, 1)], k, 1, 5]] ≟ IndexOf[true, Sequence[IsInRegion[PosDD2 + (widthdd / 2, heightdd / 2), QuadratList(k, 1)], k, 1, 5]], IndexOf[true, Sequence[IsInRegion[PosDD2, QuadratList(k, 1)], k, 1, 5]], NaN) → RegionDD2
  32. If(IndexOf[true, Sequence[IsInRegion[PosDD3 + (((-widthdd)) / 2, ((-heightdd)) / 2), QuadratList(k, 1)], k, 1, 5]] ≟ IndexOf[true, Sequence[IsInRegion[PosDD3 + (widthdd / 2, heightdd / 2), QuadratList(k, 1)], k, 1, 5]], IndexOf[true, Sequence[IsInRegion[PosDD3, QuadratList(k, 1)], k, 1, 5]], NaN) → RegionDD3
  33. If(IndexOf[true, Sequence[IsInRegion[PosDD4 + (((-widthdd)) / 2, ((-heightdd)) / 2), QuadratList(k, 1)], k, 1, 5]] ≟ IndexOf[true, Sequence[IsInRegion[PosDD4 + (widthdd / 2, heightdd / 2), QuadratList(k, 1)], k, 1, 5]], IndexOf[true, Sequence[IsInRegion[PosDD4, QuadratList(k, 1)], k, 1, 5]], NaN) → RegionDD4
  34. PolyLine(PosSB, Corner[txt061, 2] + (-0.5, 0.1), Corner[txt061, 1] + (0, 0.1), Corner[txt061, 4] + (0, 0.1), Corner[txt061, 3] + (0.1, 0.1), Corner[txt061, 2] + (0.1, 0.5), PosSB) → sb06
  35. PolyLine(PosSB, Corner[txt081, 2] + (-0.5, 0.1), Corner[txt081, 1] + (0, 0.1), Corner[txt081, 4] + (0, 0.1), Corner[txt081, 3] + (0.1, 0.1), Corner[txt081, 2] + (0.1, 0.5), PosSB) → sb08
  36. PolyLine(PosSB, Corner[txt101, 2] + (-0.5, 0.1), Corner[txt101, 1] + (0, 0.1), Corner[txt101, 4] + (0, 0.1), Corner[txt101, 3] + (0.1, 0.1), Corner[txt101, 2] + (0.1, 0.5), PosSB) → sb10
  37. If(PointP ∈ Diagonalen(1), 1, 2) → CaseP
  38. Segment(PosA + (0, (-disCap2)), PosB + (0, (-disCap2))) → segCap21
  39. Segment(PosA + (0, (-disCap1)), PosQ1 + (0, (-disCap1))) → segCap22
  40. Segment(PosQ1 + (0, (-disCap1)), PosB + (0, (-disCap1))) → segCap23
  41. Segment(PosB + (disCap2, 0), PosC + (disCap2, 0)) → segCap24
  42. Segment(PosB + (disCap1, 0), PosQ2 + (disCap1, 0)) → segCap25
  43. Segment(PosC + (disCap1, 0), PosQ2 + (disCap1, 0)) → segCap26
  44. Sequence(PosImgTrixi1 + (0, -1.25) + (k * (0, (-heightdd) - 0.75)), k, 0, 3) → PosPark
  45. SelectedIndex(dropdown41) → index4
  46. SelectedIndex(dropdown111) → index111
  47. SelectedIndex(dropdown112) → index112
  48. If(step ≟ 3, (7.5, 3.5), (7.37, 1.25)) → PosImgFink1
  49. PolyLine(PosSB, Corner[txt011, 2] + (0.1, 0.4), Corner[txt011, 2] + (0.1, 0.1), Corner[txt011, 1] + (0, 0.1), Corner[txt011, 4] + (0, 0.1), Corner[txt011, 3] + (0.1, 0.1), Corner[txt011, 3] + (0.1, -0.3), PosSB) → sb01
  50. Textfield(input061) → InputBox061
  51. Textfield(input062) → InputBox062
  52. Textfield(input063) → InputBox063
  53. Textfield(input064) → InputBox064
  54. CircleArc(Midpoint[Pos101, Pos103] + (0, dis6), Pos103, Pos101) → arc101
  55. CircleArc(Midpoint[Pos101, Pos104] + (0, dis6), Pos104, Pos101) → arc102
  56. Mirror(CircleArc[Midpoint[Pos102, Pos103] + (0, dis6), Pos103, Pos102], SpiegelGerade) → arc103
  57. Mirror(CircleArc[Midpoint[Pos102, Pos104] + (0, dis6), Pos104, Pos102], SpiegelGerade) → arc104
  58. Textfield(input021) → InputBox021
  59. Textfield(input022) → InputBox022
  60. Textfield(input023) → InputBox023
  61. Textfield(input024) → InputBox024
  62. If(step ≟ 2, correct021 ∧ correct022 ∧ correct023 ∧ correct024, step ≟ 3, IndexOf[Pos03, PointList03] ≟ Length[PointList03], step ≟ 6, correct061 ∧ correct062 ∧ correct063 ∧ correct064, true) → clickableBtnNext
  63. PolyLine(PosSB, Corner[txt031, 2] + (0.1, 0.75), Corner[txt031, 2] + (0.1, 0.1), Corner[txt031, 1] + (0, 0.1), Corner[txt031, 4] + (0, 0.1), Corner[txt031, 3] + (0.1, 0.1), Corner[txt031, 2] + (0.1, 1.25), PosSB) → sb03
  64. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  65. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  66. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  67. PolyLine(PosSB, Corner[txt071, 2] + (-0.25, -0.1), Corner[txt071, 1] + (0, -0.1), Corner[txt071, 4] + (0, 0.1), Corner[txt071, 3] + (0.1, 0.1), Corner[txt071, 2] + (0.1, 0.5), PosSB) → sb07
  68. Text("\textsf{\begin{array}{c}\bold{Zieh mich}\\\bold{↓}\end{array}", Pos03, false, true, 1, -1) → Cap03
  69. RemoveUndefined({Segment[PosP3, (x(PosP3), y(Pos03))], If[IndexOf[Pos03, PointList03] ≥ IndexOf[PosP4, PointList03], SegList1(2)]}) → SegList03
  70. Text((If[step ≟ 6 ∧ correct061, "\bold{", "{"] * "\textsf{\Big{a²}}}"), Midpoint[PosD, PosP5], false, true, 0, 0) → txtCap1
  71. Text((If[step ≟ 6 ∧ correct064, "\bold{", "{"] * "\textsf{\Big{b²}}}"), Midpoint[PosB, PosP5], false, true, 0, 0) → txtCap2
  72. Angle(Center[arc101] + (1, 0), Center[arc101], Point[arc101, 1]) → Angle611
  73. Angle(Center[arc101] + (1, 0), Center[arc101], Point[arc101, 0]) → Angle612
  74. CircleArc(Center[arc101], Center[arc101] + (Radius[arc101] * (cos(Angle611 + (anim061 * (Angle612 - Angle611))), sin(Angle611 + (anim061 * (Angle612 - Angle611))))), Point[arc101, 1]) → AnimArc101
  75. Angle(Center[arc102] + (1, 0), Center[arc102], Point[arc102, 1]) → Angle621
  76. Angle(Center[arc102] + (1, 0), Center[arc102], Point[arc102, 0]) → Angle622
  77. CircleArc(Center[arc102], Center[arc102] + (Radius[arc102] * (cos(Angle621 + (anim062 * (Angle622 - Angle621))), sin(Angle621 + (anim062 * (Angle622 - Angle621))))), Point[arc102, 1]) → AnimArc102
  78. Angle(Center[arc103] + (1, 0), Center[arc103], Point[arc103, 1]) → Angle631
  79. Angle(Center[arc104] + (1, 0), Center[arc104], Point[arc104, 1]) → Angle641
  80. Angle(Center[arc103] + (1, 0), Center[arc103], Point[arc103, 0]) → Angle632
  81. Angle(Center[arc104] + (1, 0), Center[arc104], Point[arc104, 0]) → Angle642
  82. CircleArc(Center[arc103], Point[arc103, 1], Center[arc103] + (Radius[arc103] * (cos(Angle631 + (anim063 * (Angle632 - Angle631))), sin(Angle631 + (anim063 * (Angle632 - Angle631)))))) → AnimArc103
  83. CircleArc(Center[arc104], Point[arc104, 1], Center[arc104] + (Radius[arc104] * (cos(Angle641 + (anim064 * (Angle642 - Angle641))), sin(Angle641 + (anim064 * (Angle642 - Angle641)))))) → AnimArc104
  84. PolyLine(PosSB, Corner[txt063, 2] + (-0.25, 0), Corner[txt063, 1] + (-0.1, 0), Corner[txt063, 4] + (-0.1, 0.1), Corner[txt063, 3] + (0.1, 0.1), Corner[txt063, 2] + (0.1, 0.35), PosSB) → sb062
  85. Text((((If[step ≟ 6 ∧ correct063, "\bold{", "{"] * "\textsf{\Big{") * If[step < 6.5 ∧ Text[InputBox063] ≟ "b a", "b \cdot a", "a \cdot b"]) * "}}}"), Midpoint[PosA, PosP5], false, true, 0, 0) → txtCap3
  86. Text((((If[step ≟ 6 ∧ correct062, "\bold{", "{"] * "\textsf{\Big{") * If[step < 6.5 ∧ Text[InputBox062] ≟ "b a", "b \cdot a", "a \cdot b"]) * "}}}"), Midpoint[PosC, PosP5], false, true, 0, 0) → txtCap4

AI 绘图提示语参考

画一个包含两个正方形和两个三角形的图形,两个正方形的边长分别为 a 和 b,两个三角形的底边分别为 a 和 b,高分别为 a*b 和 b*a。两个正方形的顶点分别位于 x 轴上的两点,两个三角形的顶点分别位于正方形的顶点和 x 轴上的两点。
以上提示语为根据原始绘图命令整理而来,仅供参考。