Fraction Subtraction with Bar Models
Loading the math board and drawing, please wait…
This example uses virtual bar pieces to model fraction subtraction, helping students understand the subtraction process. Key math concepts include fractions and subtraction. GeoGebra commands used include Polygon, Textfield, Segment, Sequence, and FractionText. Suitable for upper elementary or middle school students for subtraction practice.
GeoGebra Commands & Parameters
If(prob ≟ 1, ckStep3CkModelA, If[prob ≟ 2, ckStep3CkModelB, If[prob ≟ 3, ckStep3CkModelC, ckStep3CkModelD]]) → ckStep3CkModelMasterIf(prob ≟ 1, ckStep1a, If[prob ≟ 2, ckStep1b, If[prob ≟ 3, ckStep1c, ckStep1d]]) → ckStep1MasterIf(prob ≟ 1, ckStep3a, If[prob ≟ 2, ckStep3b, If[prob ≟ 3, ckStep3c, ckStep3d]]) → ckStep3MasterIf(prob ≟ 1, step3num2A, If[prob ≟ 2, step3num2B, If[prob ≟ 3, step3num2C, step3num2D]]) → step3num2MasterIf(prob ≟ 1, step1numLa, If[prob ≟ 2, step1numLb, If[prob ≟ 3, step1numLc, step1numLd]]) → step1numLMasterIf(prob ≟ 1, step1pieceLa, If[prob ≟ 2, step1pieceLb, If[prob ≟ 3, step1pieceLc, step1pieceLd]]) → step1pieceLMasterSelectIf(step1pieceLMasterSelect ≟ 1, 0, If[step1pieceLMasterSelect ≟ 2, 2, If[step1pieceLMasterSelect ≟ 3, 3, If[step1pieceLMasterSelect ≟ 4, 4, If[step1pieceLMasterSelect ≟ 5, 5, If[step1pieceLMasterSelect ≟ 6, 6, If[step1pieceLMasterSelect ≟ 7, 8, If[step1pieceLMasterSelect ≟ 8, 10, If[step1pieceLMasterSelect ≟ 9, 12]]]]]]]]) → step1pieceLMasterIf(prob ≟ 1, step1numRa, If[prob ≟ 2, step1numRb, If[prob ≟ 3, step1numRc, step1numRd]]) → step1numRMasterIf(prob ≟ 1, step1pieceRa, If[prob ≟ 2, step1pieceRb, If[prob ≟ 3, step1pieceRc, step1pieceRd]]) → step1pieceRMasterSelectIf(step1pieceRMasterSelect ≟ 1, 0, If[step1pieceRMasterSelect ≟ 2, 2, If[step1pieceRMasterSelect ≟ 3, 3, If[step1pieceRMasterSelect ≟ 4, 4, If[step1pieceRMasterSelect ≟ 5, 5, If[step1pieceRMasterSelect ≟ 6, 6, If[step1pieceRMasterSelect ≟ 7, 8, If[step1pieceRMasterSelect ≟ 8, 10, If[step1pieceRMasterSelect ≟ 9, 12]]]]]]]]) → step1pieceRMasterIf(prob ≟ 1, step3pieceA, If[prob ≟ 2, step3pieceB, If[prob ≟ 3, step3pieceC, step3pieceD]]) → step3pieceMasterSelectIf(step3pieceMasterSelect ≟ 1, 0, If[step3pieceMasterSelect ≟ 2, 2, If[step3pieceMasterSelect ≟ 3, 3, If[step3pieceMasterSelect ≟ 4, 4, If[step3pieceMasterSelect ≟ 5, 5, If[step3pieceMasterSelect ≟ 6, 6, If[step3pieceMasterSelect ≟ 7, 8, If[step3pieceMasterSelect ≟ 8, 10, If[step3pieceMasterSelect ≟ 9, 12]]]]]]]]) → step3pieceMasterIf(prob ≟ 1, step3num1A, If[prob ≟ 2, step3num1B, If[prob ≟ 3, step3num1C, step3num1D]]) → step3num1MasterIf(step1ProbDif ≟ step3dif, true, false) → step3CheckIf(pieces, Frame3PtMove, If[ckStep1Master ∧ step1Check ∧ ckStep3CkModelMaster ∧ step3Check, (0.6, 1.1), (0, 1.1)]) → Frame3PtIf(pieces, Frame2PtMove, (1.2, 3)) → Frame2PtIf(pieces, Frame1PtMove, (0, 3)) → Frame1PtPolygon(Frame2Pt, Frame2Pt + (1, 0), Frame2Pt + (1, 1), Frame2Pt + (0, 1)) → frame2, frame2Bottom, frame2R, frame2Top, frame2LPolygon(Frame1Pt, Frame1Pt + (1, 0), Frame1Pt + (1, 1), Frame1Pt + (0, 1)) → frame1, frame1Bottom, frame1R, frame1Top, frame1LPolygon(Frame3Pt, Frame3Pt + (1, 0), Frame3Pt + (1, 1), Frame3Pt + (0, 1)) → frame5, frame5Bottom, frame5R, frame5Top, frame5LIf(prob ≟ 1, ckStep3AlignA, If[prob ≟ 2, ckStep3AlignB, If[prob ≟ 3, ckStep3AlignC, ckStep3AlignD]]) → ckStep3AlignMasterIf(prob ≟ 1, ckStep4a, If[prob ≟ 2, ckStep4b, If[prob ≟ 3, ckStep4c, ckStep4d]]) → ckStep4MasterIf(prob ≟ 1, step4numA, If[prob ≟ 2, step4numB, If[prob ≟ 3, step4numC, step4numD]]) → step4numMasterIf(prob ≟ 1, step4denomA, If[prob ≟ 2, step4denomB, If[prob ≟ 3, step4denomC, step4denomD]]) → step4denomMasterIf(prob ≟ 1, ckStep4CheckFracA, If[prob ≟ 2, ckStep4CheckFracB, If[prob ≟ 3, ckStep4CheckFracC, ckStep4CheckFracD]]) → ckStep4CheckFracMasterIf(prob ≟ 1, ckStep4HintA, If[prob ≟ 2, ckStep4HintB, If[prob ≟ 3, ckStep4HintC, ckStep4HintD]]) → ckStep4HintMasterPolygon(Step4StarPt + (-0.062, 0.352), Step4StarPt + (0, 1.25), Step4StarPt + (-0.12, 0), Step4StarPt + (-0.245, 0.5), Step4StarPt + (0.047, 0.313), Step4StarPt + (0.19, 0.02), Step4StarPt + (0.06, -0.25), Step4StarPt + (0.115, -0.75), Step4StarPt + (0, -0.5), Step4StarPt + (-0.084, -1.076), Step4StarPt + (-0.084, -0.333), Step4StarPt + (-0.205, -0.5)) → step4Starburst, Astar6, Astar3, Astar4, Astar5, Astar7, Astar8, Astar9, Astar10, Astar11, Astar12, Astar1, Astar2If(ckStep1Master ≟ false, 0) → step1resetTextfield(step4numA) → numAInputTextfield(step4denomA) → denomAInputSegment((1.02, -1.4), (1.22, -1.4)) → step4fracBarIf(Defined[step4numMaster] ≟ false ∨ Defined[step4denomMaster] ≟ false ∨ Defined[step4numMaster] ∧ round(step4numMaster) ≟ step4numMaster ∧ round(step4denomMaster) ≟ step4denomMaster, true, false) → step4numVerifyWholeTextfield(step4denomB) → denomBInputTextfield(step4numB) → numBInputTextfield(step4numC) → numCInputTextfield(step4denomC) → denomCInputTextfield(step4numD) → numDInputTextfield(step4denomD) → denomDInputPolygon(Frame1Pt, Frame1Pt + (step1ValL, 0), Frame1Pt + (step1ValL, 1), Frame1Pt + (0, 1)) → step1barL, step1barLBottom, step1barLR, step1barLTop, step1barLLPolygon(Frame2Pt, Frame2Pt + (step1ValR, 0), Frame2Pt + (step1ValR, 1), Frame2Pt + (0, 1)) → step1barR, step1barRBottom, step1barRR, step1barRTop, step1barRLSequence(Segment[Frame1Pt + (k, 0), Frame1Pt + (k, 1)], k, 0, step1ValL, 1 / step1pieceLMaster) → step1barLdivSequence(Segment[Frame2Pt + (k, 0), Frame2Pt + (k, 1)], k, 0, step1ValR, 1 / step1pieceRMaster) → step1barRdivPolygon(Frame3Pt, Frame3Pt + (step3val1, 0), Frame3Pt + (step3val1, 1), Frame3Pt + (0, 1)) → step3bar1, step3bar1Bottom, step3bar1R, step3bar1Top, step3bar1LIf(Element[solutionNum, prob] ≟ step4numMaster ∧ Element[solutionDenom, prob] ≟ step4denomMaster, true, false) → step4CheckIf(timer ≤ 0.06, true, false) → fbtimeIf(pieces, Frame3PtMove, If[ckStep1Master ∧ step1Check ∧ ckStep3CkModelMaster ∧ step3Check, (0.6, 0), (1.2, 1.1)]) → Frame4PtPolygon(Frame4Pt, Frame4Pt + (1, 0), Frame4Pt + (1, 1), Frame4Pt + (0, 1)) → frame6, frame6Bottom, frame6R, frame6Top, frame6LPolygon(Frame4Pt, Frame4Pt + (step3val2, 0), Frame4Pt + (step3val2, 1), Frame4Pt + (0, 1)) → step3bar2, step3bar2Bottom, step3bar2R, step3bar2Top, step3bar2LSequence(Segment[Frame3Pt + (k, 0), Frame3Pt + (k, 1)], k, 0, step3val1, 1 / step3pieceMaster) → step3bar1DivSequence(Segment[Frame4Pt + (k, 0), Frame4Pt + (k, 1)], k, 0, step3val2, 1 / step3pieceMaster) → step3bar2DivSegment(Frame3Pt + (step1ProbLVal, If[ckStep3CkModelMaster ∧ step3Check, 1.1, 3.1]), Frame3Pt + (step1ProbLVal, If[ckStep3CkModelMaster ∧ step3Check, -1.2, -0.1])) → Astep3AlignSegBlueBar1Segment(Frame3Pt + (step1ProbLVal, If[ckStep3CkModelMaster ∧ step3Check, 1.1, 3.1]), Frame3Pt + (step1ProbLVal, If[ckStep3CkModelMaster ∧ step3Check, -1.2, -0.1])) → Astep3AlignSegUnderBar1Segment(Frame4Pt + (step1ProbRVal, If[ckStep3CkModelMaster ∧ step3Check, 2.2, 3.1]), Frame4Pt + (step1ProbRVal, If[ckStep3CkModelMaster ∧ step3Check, -0.1, -0.1])) → Astep3AlignSegBlueBar2Segment(Frame4Pt + (step1ProbRVal, If[ckStep3CkModelMaster ∧ step3Check, 2.2, 3.1]), Frame4Pt + (step1ProbRVal, If[ckStep3CkModelMaster ∧ step3Check, -0.1, -0.1])) → Astep3AlignSegUnderBar2FractionText(1 / step1pieceLMaster) → step1barLLabelMasterFractionText(1 / step1pieceRMaster) → step1barRLabelMasterFractionText(1 / step3pieceMaster) → step3barLabelMasterSequence(Text[step1barLLabelMaster, (0 + i, 3.9), true, true], i, 0 + (If[step1pieceLMaster ≤ 4, 0.4, step1pieceLMaster ≟ 5, 0.35, step1pieceLMaster ≟ 6, 0.3, step1pieceLMaster ≟ 8, 0.2, step1pieceLMaster ≟ 10, 0.01, -0.15] * 1 / step1pieceLMaster), step1numLMaster / step1pieceLMaster + If[step1pieceLMaster ≟ 12, -0.05, 0], 1 / step1pieceLMaster) → step1barLpieceLabelsSequence(Text[step1barRLabelMaster, (1.2 + i, 3.9), true, true], i, 0 + (If[step1pieceRMaster ≤ 4, 0.4, step1pieceRMaster ≟ 5, 0.35, step1pieceRMaster ≟ 6, 0.3, step1pieceRMaster ≟ 8, 0.2, step1pieceRMaster ≟ 10, 0.01, -0.15] * 1 / step1pieceRMaster), step1numRMaster / step1pieceRMaster + If[step1pieceRMaster ≟ 12, -0.05, 0], 1 / step1pieceRMaster) → step1barRpieceLabelsSequence(Text[step3barLabelMaster, Frame3Pt + (i, 0.9), true, true], i, 0 + (If[step3pieceMaster ≤ 4, 0.4, step3pieceMaster ≟ 5, 0.35, step3pieceMaster ≟ 6, 0.3, step3pieceMaster ≟ 8, 0.2, step3pieceMaster ≟ 10, 0.01, -0.15] * 1 / step3pieceMaster), step3num1Master / step3pieceMaster + If[step3pieceMaster ≟ 12, -0.05, 0], 1 / step3pieceMaster) → step3barLpieceLabelsSequence(Text[step3barLabelMaster, Frame4Pt + (i, 0.9), true, true], i, 0 + (If[step3pieceMaster ≤ 4, 0.4, step3pieceMaster ≟ 5, 0.35, step3pieceMaster ≟ 6, 0.3, step3pieceMaster ≟ 8, 0.2, step3pieceMaster ≟ 10, 0.01, -0.15] * 1 / step3pieceMaster), step3num2Master / step3pieceMaster + If[step3pieceMaster ≟ 12, -0.05, 0], 1 / step3pieceMaster) → step3barRpieceLabels
AI Drawing Prompt Reference
Draw bar models to represent fraction subtraction. Create two colored bars, one for the minuend and one for the subtrahend, each divided into segments representing fraction units. Highlight the segments in the minuend that correspond to the subtrahend, showing the difference. Animate the subtrahend bar moving over the minuend bar, with the overlapping segments removed to visually demonstrate the concept of fraction subtraction.
The prompt above was compiled from the original drawing commands and is for reference only.