扩分还是约分:分数的可视化比较练习

扩分还是约分:分数的可视化比较练习
几何画板及绘图内容加载中,请稍等……
2022-08-24 21:01
本范例通过动态几何画面让学生直观看到“把分数扩大还是缩小”的等值关系。核心数学概念是分数的扩分与约分(保持分数值不变),并借助数形对应理解“分子分母成比例变化”的本质。作图要点:使用 Polygon 与点/线对象(Point、Segment、OrthogonalLine、Mirror)构建表示分数单位划分的几何区域,并用 CircleArc、LaTeX 标注分数与关键结论;通过 Translate、Rotate、Join、Distance 展示对应部分的移动与测量关系;用 Sequence 和矩阵/列表相关对象(如 matrixSolution1u3、listAufgaben、Index)组织题目变化与解答呈现;利用 Textfield 与 If 实现根据输入选择扩分或约分的判断提示,配合 showHintLeft、questionCount、LDP1 等对象承载教学交互。适合5–6年级用

GeoGebra 命令及参数

  1. Shuffle(Sequence[10]) → listAufgaben, {3, 8, 4, 1, 2, 7, 6, 9, 5, 10}
  2. Shuffle(Cases) → randomNos, {6, 9, 3, 10, 5, 8, 1, 11, 4, 7, 2}
  3. Element(randomNos, Mod[count, 11] + 1) → num
  4. Textfield(aInput) → InputBox1
  5. Textfield(bInput) → InputBox2
  6. If(Mod[num, 2] ≟ 0, antwortNein, antwortJa) → antwort
  7. Polygon(G_1, I_1, H_1, J_1) → v1, g_1, i_1, h_1, j_1
  8. Distance(PtopLeftCornerFeedback, PtopRightCornerFeedback) → abstandPtopLeftCornerFeedbackPtopRightCornerFeedback
  9. Join({{Sequence[PointA1Pos1 + (i * (dxA1 / 4, 0)), i, 0, 4], Sequence[PointA1Pos1 + (0, dyA1) + (i * (dxA1 / 4, 0)), i, 1, 3], Sequence[PointA1Pos1 + (i * (0, dyA1 / 2)), i, 1, 2], Sequence[PointA1Pos1 + (dxA1, 0) + (i * (0, dyA1 / 2)), i, 1, 2]}, {PointA1Pos1 + (0.5 * (dxA1, dyA1)), PointA1Pos1 + (dxA1 / 4, dyA1 / 2), PointA1Pos1 + ((dxA1 * 3 / 4), (dyA1 * 0.5))}}) → PointsA1Left
  10. Point(PointsA1Left) → D
  11. Point(PointsA1Left) → E
  12. Point(PointsA1Left) → F
  13. Point(PointsA1Left) → H
  14. Point(PointsA1Left) → I
  15. Point(PointsA1Left) → J
  16. Point(PointsA1Left) → K
  17. Segment(PointA1Pos1, K) → lineA1h
  18. Sequence(Segment[Translate[PointA1Pos1, Vector[(i * (0, dyA1 / 2))]], Translate[K, Vector[(i * (0, dyA1 / 2))]]], i, 0, 2) → listA1LineHorinatalLeft
  19. Segment(D, PointA1Pos1) → lienA1v
  20. Sequence(Segment[Translate[D, Vector[(i * (dxA1 / 2, 0))]], Translate[PointA1Pos1, Vector[(i * (dxA1 / 2, 0))]]], i, 0, 2) → listA1LineVerticalLeft
  21. Translate({listA1LineHorinatalLeft, Sequence[Segment[Translate[D, Vector[(i * (dxA1 / 4, 0))]], Translate[PointA1Pos1, Vector[(i * (dxA1 / 4, 0))]]], i, 0, 4]}, (dxA1right, 0)) → listA1RemainRight
  22. Translate({listA1AreaLeft}, (dxA1right, 0)) → listA1AreaRight
  23. Translate(listA2AreaLeft, (dxA2right, 0)) → listA2AreaRight
  24. Sequence(Segment[Translate[PointA2Pos1, Vector[(i * (0, (dyA2 * 0.5)))]], Translate[PointA2Pos2, Vector[(i * (0, (dyA2 * 0.5)))]]], i, 0, 6) → listA2LineHorizontalLeft
  25. Sequence(Segment[Translate[PointA2Pos1, Vector[(i * (dxA2, 0))]], Translate[PointA2Pos5, Vector[(i * (dxA2, 0))]]], i, 0, 1) → listA2LineVerticalLeft
  26. Translate(listA2LineVerticalLeft, (dxA2right, 0)) → listA2LineVerticalRight
  27. Sequence(Translate[Segment[PointA2Pos1 + (dxA2right, 0), PointA2Pos2 + (dxA2right, 0)], Vector[(i * (0, dyA2))]], i, 0, 3) → listA2LineHorizontalRight
  28. Translate(listA3AreaLeft, (dxA2right, 0)) → listA3AreaLeft'
  29. Sequence(Translate[Segment[PointA2Pos1 + (dxA2right, 0), PointA2Pos2 + (dxA2right, 0)], Vector[(i * (0, dyA2 / 2))]], i, 0, 6) → listA3LineHorizontalRight
  30. Sequence(Translate[Segment[Translate[PointA2Pos1, (dxA2right, 0)], Translate[PointA2Pos5, (dxA2right, 0)]], Vector[(i * (dxA2 / 3, 0))]], i, 0, 3) → listA3LineVerticalRight
  31. Sequence(Segment[Translate[D, Vector[(i * (dxA1 / 4, 0))]], Translate[PointA1Pos1, Vector[(i * (dxA1 / 4, 0))]]], i, 0, 4) → listA4LineHorizontalLeft
  32. Translate(listA4AreaLeft, (dxA1right, 0)) → listA4AreaRight
  33. If(Index ≟ 5, 8, Index ≟ 6, 16, Index ≟ 7, 2, 6) → nennerLeft
  34. Sequence(Segment[Rotate[MidPoint, ((i * 2) * pi / nennerLeft), MidPoint], Rotate[MidPointPlusRadius, ((i * 2) * pi / nennerLeft), MidPoint]], i, 0, nennerLeft - 1) → listA5LinesLeft
  35. Translate(listA5CircleLeft, (dxA5right, 0)) → listA5CircleRight
  36. Rotate(Sequence[Segment[Rotate[MidPoint + (dxA5right, 0), ((i * 2) * pi / nennerA5Right), MidPoint + (dxA5right, 0)], Rotate[MidPointPlusRadius + (dxA5right, 0), ((i * 2) * pi / nennerA5Right), MidPoint + (dxA5right, 0)]], i, 0, nennerA5Right - 1], 45°, MidPointRight) → listA5LinesRight
  37. Translate(listA5AreaLeft, (dxA5right, 0)) → listA5AreaRight
  38. If(Index ≟ 6, 8, Index ≟ 7, 6, 3) → nennerA6Right
  39. Sequence(Segment[Rotate[MidPoint + (dxA5right, 0), ((i * 2) * pi / nennerA6Right), MidPoint + (dxA5right, 0)], Rotate[MidPointPlusRadius + (dxA5right, 0), ((i * 2) * pi / nennerA6Right), MidPoint + (dxA5right, 0)]], i, 0, nennerA6Right - 1) → listA6LinesRight
  40. Translate(listA6AreaLeft, (dxA5right, 0)) → listA6AreaRight
  41. Translate(listA7AreaLeft, (dxA5right, 0)) → listA7AreaRight
  42. Translate(listA10AreaLeft, (dxA5right, 0)) → listA10AreaRight
  43. Translate(listA8AreaLeft, (dxA5right, 0)) → listA8AreaRight
  44. Translate(listA8LinesLeft, (dxA5right, 0)) → listA8LinesRight1
  45. Translate({Segment[MidPoint + (0, (-radius)), MidPoint + (0, radius)], Segment[MidPoint + ((-radius), 0), MidPoint + (radius, 0)]}, (dxA5right, 0)) → listA8LinesRight2
  46. Sequence(Segment[Translate[PosA9Point1, Vector[(i * (dxA9 / 9, 0))]], Translate[PosA9Point4, Vector[(i * (dxA9 / 9, 0))]]], i, 0, 9) → listA9LineVerticalLeft
  47. Sequence(Segment[Translate[PosA9Point1, Vector[(i * (0, dyA9))]], Translate[PosA9Point2, Vector[(i * (0, dyA9))]]], i, 0, 1) → listA9LineHorizontalLeft
  48. Translate(listA9LineHorizontalLeft, (0, dxA8right)) → listA9LineHorizontalRight
  49. Sequence(Translate[Segment[Translate[PosA9Point1, (0, dxA8right)], Translate[PosA9Point4, (0, dxA8right)]], Vector[(i * (dxA9 / 3, 0))]], i, 0, 3) → listA9LineVerticalRight
  50. Translate(listA9AreaLeft, (0, dxA8right)) → listA9AreaRight
  51. Point(yAxis) → A
  52. Textfield(cInput) → InputBox3
  53. Polygon({pointFB1pos1, pointFB1pos2, pointFB1pos3, pointFB1pos4}) → rectangleCorrect3
  54. Point(matrixSolution1u3) → PosWhiteBGPoint4_{1}, PosWhiteBGPoint4_{2}, PosWhiteBGPoint4_{3}, PosWhiteBGPoint4_{4}, PosWhiteBGPoint4_{5}, PosWhiteBGPoint4_{6}, PosWhiteBGPoint4_{7}, PosWhiteBGPoint4_{8}, PosWhiteBGPoint4_{9}, PosWhiteBGPoint4_{10}
  55. Corner((rectangleCorrect3 * 1)) → B
  56. Segment(pointarrowA801, pointarrowA802) → arrowA80
  57. LaTeX(Index, true, true) → text5
  58. Segment(pointarrowA101, pointarrowA102) → arrowA10
  59. CircleArc(pointarrow901, pointarrow902, pointarrow903) → arrow90
  60. OrthogonalLine(N, xAxis) → f
  61. Mirror(arrow90, f) → arrow90'
  62. Point(arrow90') → pointarrow101'