分数减法 GeoGebra 演示

分数减法 GeoGebra 演示
几何画板及绘图内容加载中,请稍等……
2017-05-03 10:58
①本范例演示分数减法的几何意义与计算过程;②涉及核心数学概念包括分数运算、实数、线段、上下和或黎曼和、合同、分布;③作图要点使用了 Point, If, Ray, Polygon, Sequence, Textfield, Segment, Vector, FractionText 等GeoGebra命令与对象;④适合初中及以上数学教学或自学,用于理解分数减法的直观表示和计算方法。

GeoGebra 命令及参数

  1. Point(yAxis) → C
  2. Point(Segment[C + (0, h), C + (0, (1.85 * h))]) → B
  3. Point(Segment[B + (0, h), B + (0, (1.85 * h))]) → A
  4. If(t ≤ 0.5, 0, (2 * (t - 0.5))) → t2
  5. If(t ≤ 0.5, (2 * t), 1) → t1
  6. Ray((0, 1.9), (0, 2.9)) → f
  7. Polygon({A, A + (l, 0), A + (l, h), A + (0, h)}) → poly1
  8. Polygon({B, B + (l, 0), B + (l, h), B + (0, h)}) → poly2
  9. Sequence(Segment[A + ((i * l / a1), 0), A + ((i * l / a1), h)], i, 1, a1 - 1) → list1
  10. Sequence(Segment[B + ((i * l / a2), 0), B + ((i * l / a2), h)], i, 1, a2 - 1) → list2
  11. Polygon({A, A + ((b1 * l / a1), 0), A + ((b1 * l / a1), h), A + (0, h)}) → poly3
  12. Polygon({B, B + ((b2 * l / a2), 0), B + ((b2 * l / a2), h), B + (0, h)}) → poly4
  13. Sequence(Sequence[Segment[A + ((i * l / a1) + (j * l / ((a1 * c1))), 0), A + ((i * l / a1) + (j * l / ((a1 * c1))), h)], j, 1, c1 - 1], i, 0, a1 - 1) → list3
  14. Sequence(Sequence[Segment[B + ((i * l / a2) + (j * l / ((a2 * c2))), 0), B + ((i * l / a2) + (j * l / ((a2 * c2))), h)], j, 1, c2 - 1], i, 0, a2 - 1) → list4
  15. If(a1 ≟ a2, true, false) → equald
  16. If(equald ∧ ((Div[b1 + b2, a1] > 0) ∨ (GCD[b1 + b2, a1] > 1)), true, If[(Div[(b1 * c1) + (b2 * c2), (a1 * c1)] > 0) ∨ (GCD[(b1 * c1) + (b2 * c2), (a1 * c1)] > 1), true, false]) → simplify
  17. Textfield(a1) → InputBox1
  18. Textfield(b1) → InputBox2
  19. Textfield(a2) → InputBox3
  20. Textfield(b2) → InputBox4
  21. Polygon({A', A' + (l, 0), A' + (l, h), A' + (0, h)}) → poly5
  22. Polygon({B', B' + ((b2 / a2 * l), 0), B' + ((b2 / a2 * l), h), B' + (0, h)}) → poly6
  23. Polygon({A', A' + ((b1 * l / a1), 0), A' + ((b1 * l / a1), h), A' + (0, h)}) → poly7
  24. Polygon({B', B' + ((b2 * l / a2), 0), B' + ((b2 * l / a2), h), B' + (0, h)}) → poly8
  25. Sequence(Sequence[Segment[A' + ((i * l / a1) + (j * l / ((a1 * c1))), 0), A' + ((i * l / a1) + (j * l / ((a1 * c1))), h)], j, 1, c1 - 1], i, 0, b1 - 1) → list8
  26. Sequence(Sequence[Segment[B' + ((i * l / a2) + (j * l / ((a2 * c2))), 0), B' + ((i * l / a2) + (j * l / ((a2 * c2))), h)], j, 1, c2 - 1], i, 0, b2 - 1) → list9
  27. Segment(C - (0, 0.5), C - (0, 1)) → g
  28. Segment(D + (0, -0.5), D + (0, 0.5)) → j
  29. Segment(C + ((b1 / a1 * l), -0.5), C + ((b1 / a1 * l), -1)) → i
  30. Vector(Midpoint[g], Midpoint[i]) → u
  31. Vector(Midpoint[i], Midpoint[g]) → v
  32. Sequence(Segment[A' + ((i * l / a1), 0), A' + ((i * l / a1), h)], i, 0, b1) → list6
  33. Sequence(Segment[B' + ((i * l / a2), 0), B' + ((i * l / a2), h)], i, 0, b2) → list7
  34. Sequence(Polygon[{C + ((i * l), 0), C + ((i * l) + l, 0), C + ((i * l) + l, h), C + ((i * l), h)}], i, 1, floor(b1 / a1 + b2 / a2)) → list5
  35. Segment(B', B' + ((b2 / a2 * l), 0)) → k
  36. Segment(B' + ((b2 / a2 * l), h), B' + (0, h)) → m
  37. If(b1 / a1 + b2 / a2 ≥ 1, true, false) → improper
  38. FractionText(b1 / a1 - b2 / a2) → text19
  39. FractionText(b1 / a1 - b2 / a2 + 1) → text20
  40. Sequence(Sequence[Segment[C + ((i * l / ((a1 * c1))) + (j * l), 0), C + ((i * l / ((a1 * c1))) + (j * l), h)], i, 1, (a1 * c1) - 1], j, 0, If[b1 / a1 + b2 / a2 ≤ 1, 0, 1]) → list10
  41. If(result ≟ 0, "0", abs(result - floor(result)) < 10^(-6), result, result > 0, If[floor(result) ≟ 0, "", "" + (floor(result))] + "" + (FractionText[result - floor(result)]), "-" + (If[floor(abs(result)) ≟ 0, "", "" + (floor(abs(result)))]) + "" + (FractionText[abs(result) - floor(abs(result))])) → resultText
  42. Segment(P + (0, -0.25), P + (0, 0.25)) → p
  43. Segment(Q + (0, -0.25), Q + (0, 0.25)) → q
  44. Segment(C + ((b1 / a1 * l), -0.5), C + ((b1 / a1 * l), -1)) → n
  45. Vector(Midpoint[p], Midpoint[q]) → b
  46. Vector(Midpoint[q], Midpoint[p]) → c
  47. Segment(D + (0, 0.25), D + (0, -0.25)) → r
  48. Segment(E + (0, 0.25), E + (0, -0.25)) → s
  49. Vector(Midpoint[r], Midpoint[s]) → w
  50. Vector(Midpoint[s], Midpoint[r]) → a
  51. Segment(F + (0, -0.25), F + (0, 0.25)) → d
  52. Vector(E, F) → e
  53. Vector(F, E) → u_1