Fraction Bar Subtraction Demo

Fraction Bar Subtraction Demo
Loading the math board and drawing, please wait…
2017-03-14 11:55
In collections Fraction worksheets
This example visually demonstrates fraction subtraction using a fraction bar. It involves core math concepts like fractions, subtraction, and geometric representation. Constructed with GeoGebra commands such as Point, If, Ray, Polygon, Sequence, Textfield, Segment, Vector, and FractionText. Suitable for middle school mathematics education to help students understand the visual representation of fraction subtraction.

GeoGebra Commands & Parameters

  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