Fraction Path (4th Grade Denominators)
Loading the math board and drawing, please wait…
This interactive GeoGebra example demonstrates a fraction path game designed for 4th-grade students to practice identifying and comparing fractions with various denominators. The core mathematical concepts include fraction representation, numerator-denominator relationships, equivalent fractions, and locating fractions on a number line. The construction uses commands such as RandomElement to generate random denominators and numerators, Sequence and Zip to build fraction sequences, Point and If to control point positions and conditional visibility, and LaTeX to display fractions along a text path. Interactive buttons (button1, button2) allow users to switch options or reset the path. Key objects include list1, dimensionsHelper, denominator, multiplier, valuesHelper, translatePoints, translateText, textPath, pointsPath, and many point objects (p1 to p20) that dynamically update the path. This resource is suitable for elementary math classrooms or self-study, helping students build a strong intuitive understanding of fractions through visual and interactive exploration.
GeoGebra Commands & Parameters
RandomElement({(2, 5), (3, 3), (4, 2), (5, 2), (6, 2), (8, 1), (10, 1)}) → dimensionsHelperZip(A + (1 / 2, 1 / 2), A, list1) → valuesHelperSequence(Element[translatePoints, IndexOf[Element[textPath, i], translateText]], i, 1, Length[textPath]) → pointsPathPoint({Random[0, (denominator * multiplier) - 1] + 1 / 2, Random[0, (denominator * multiplier) - 1] + 1 / 2}) → startingIf(Length[pointsPath] > 0, Element[Last[list1], 1], starting) → endingIf(Last[textPath] ≟ {"up"}, {"down"}, If[Last[textPath] ≟ {"down"}, {"up"}, If[Last[textPath] ≟ {"right"}, {"left"}, If[Last[textPath] ≟ {"left"}, {"right"}, {}]]]) → oppositeRemove({"up", "down", "left", "right"}, Join[{{If[x(ending) ≟ 0.5, "left"]}, {If[y(ending) ≟ 0.5, "down"]}, {If[x(ending) ≟ (denominator * multiplier) - 1 / 2, "right"]}, {If[y(ending) ≟ (denominator * multiplier) - 1 / 2, "up"]}}]) → optionsRemove(Unique[{If[Defined[IndexOf[ending + (-1, 0), list1]], "left"], If[Defined[IndexOf[ending + (1, 0), list1]], "right"], If[Defined[IndexOf[ending + (0, 1), list1]], "up"], If[Defined[IndexOf[ending + (0, -1), list1]], "down"]}], {""}) → takenRemove(Remove[options, opposite], taken) → realOptionsZip(Polygon[A - (1 / 2, 1 / 2), A + (1 / 2, -1 / 2), 4], A, list1) → list2Element(list2, Length[list2]) → poly1Length(list2) → pathLengthElement(list2, 1) → p1Element(list2, 2) → p2Element(list2, 3) → p3Element(list2, 4) → p4Element(list2, 5) → p5Element(list2, 6) → p6Element(list2, 7) → p7Element(list2, 8) → p8Element(list2, 9) → p9Element(list2, 10) → p10Element(list2, 11) → p11Element(list2, 12) → p12Element(list2, 13) → p13Element(list2, 14) → p14Element(list2, 15) → p15Element(list2, 16) → p16Element(list2, 17) → p17Element(list2, 18) → p18Element(list2, 19) → p19Element(list2, 20) → p20Element(list2, 21) → p21Element(list2, 22) → p22Element(list2, 23) → p23Element(list2, 24) → p24Element(list2, 25) → p25Element(list2, 26) → p26Element(list2, 27) → p27Element(list2, 28) → p28Element(list2, 29) → p29Element(list2, 30) → p30Element(list2, 31) → p31Element(list2, 32) → p32Element(list2, 34) → p34Element(list2, 35) → p35Element(list2, 36) → p36Element(list2, 37) → p37Element(list2, 38) → p38Element(list2, 39) → p39Element(list2, 40) → p40Element(list2, 41) → p41Element(list2, 42) → p42Element(list2, 43) → p43Element(list2, 44) → p44Element(list2, 45) → p45Element(list2, 46) → p46Element(list2, 47) → p47Element(list2, 48) → p48Element(list2, 49) → p49Element(list2, 50) → p50Zip(x(A) / denominator + (((denominator * multiplier) - y(A)) * multiplier), A, valuesHelper) → valuesElement(list2, 33) → p33Sequence(Text[Element[list4, i], Element[list1, IndexOf[Element[list4, i], values]] - (0.35, 0.2)], i, 1, Length[list4]) → list5Zip(A + (-0.4, 0.4), A, list1) → correctLocationsZip(Text[A], A, values) → list3LaTeX(If[floor(Element[list4, 1]) ≟ 0, FractionText[Element[list4, 1]], Text[floor(Element[list4, 1])] + (If[Element[list4, 1] - floor(Element[list4, 1]) > 0, FractionText[Element[list4, 1] - floor(Element[list4, 1])], ""])]) → t1LaTeX(If[floor(Element[list4, 2]) ≟ 0, FractionText[Element[list4, 2]], Text[floor(Element[list4, 2])] + (If[Element[list4, 2] - floor(Element[list4, 2]) > 0, FractionText[Element[list4, 2] - floor(Element[list4, 2])], ""])]) → t2LaTeX(If[floor(Element[list4, 3]) ≟ 0, FractionText[Element[list4, 3]], Text[floor(Element[list4, 3])] + (If[Element[list4, 3] - floor(Element[list4, 3]) > 0, FractionText[Element[list4, 3] - floor(Element[list4, 3])], ""])]) → t3LaTeX(If[floor(Element[list4, 4]) ≟ 0, FractionText[Element[list4, 4]], Text[floor(Element[list4, 4])] + (If[Element[list4, 4] - floor(Element[list4, 4]) > 0, FractionText[Element[list4, 4] - floor(Element[list4, 4])], ""])]) → t4LaTeX(If[floor(Element[list4, 5]) ≟ 0, FractionText[Element[list4, 5]], Text[floor(Element[list4, 5])] + (If[Element[list4, 5] - floor(Element[list4, 5]) > 0, FractionText[Element[list4, 5] - floor(Element[list4, 5])], ""])]) → t5LaTeX(If[floor(Element[list4, 6]) ≟ 0, FractionText[Element[list4, 6]], Text[floor(Element[list4, 6])] + (If[Element[list4, 6] - floor(Element[list4, 6]) > 0, FractionText[Element[list4, 6] - floor(Element[list4, 6])], ""])]) → t6LaTeX(If[floor(Element[list4, 7]) ≟ 0, FractionText[Element[list4, 7]], Text[floor(Element[list4, 7])] + (If[Element[list4, 7] - floor(Element[list4, 7]) > 0, FractionText[Element[list4, 7] - floor(Element[list4, 7])], ""])]) → t7LaTeX(If[floor(Element[list4, 8]) ≟ 0, FractionText[Element[list4, 8]], Text[floor(Element[list4, 8])] + (If[Element[list4, 8] - floor(Element[list4, 8]) > 0, FractionText[Element[list4, 8] - floor(Element[list4, 8])], ""])]) → t8LaTeX(If[floor(Element[list4, 9]) ≟ 0, FractionText[Element[list4, 9]], Text[floor(Element[list4, 9])] + (If[Element[list4, 9] - floor(Element[list4, 9]) > 0, FractionText[Element[list4, 9] - floor(Element[list4, 9])], ""])]) → t9LaTeX(If[floor(Element[list4, 10]) ≟ 0, FractionText[Element[list4, 10]], Text[floor(Element[list4, 10])] + (If[Element[list4, 10] - floor(Element[list4, 10]) > 0, FractionText[Element[list4, 10] - floor(Element[list4, 10])], ""])]) → t10LaTeX(If[floor(Element[list4, 11]) ≟ 0, FractionText[Element[list4, 11]], Text[floor(Element[list4, 11])] + (If[Element[list4, 11] - floor(Element[list4, 11]) > 0, FractionText[Element[list4, 11] - floor(Element[list4, 11])], ""])]) → t11LaTeX(If[floor(Element[list4, 12]) ≟ 0, FractionText[Element[list4, 12]], Text[floor(Element[list4, 12])] + (If[Element[list4, 12] - floor(Element[list4, 12]) > 0, FractionText[Element[list4, 12] - floor(Element[list4, 12])], ""])]) → t12LaTeX(If[floor(Element[list4, 13]) ≟ 0, FractionText[Element[list4, 13]], Text[floor(Element[list4, 13])] + (If[Element[list4, 13] - floor(Element[list4, 13]) > 0, FractionText[Element[list4, 13] - floor(Element[list4, 13])], ""])]) → t13LaTeX(If[floor(Element[list4, 14]) ≟ 0, FractionText[Element[list4, 14]], Text[floor(Element[list4, 14])] + (If[Element[list4, 14] - floor(Element[list4, 14]) > 0, FractionText[Element[list4, 14] - floor(Element[list4, 14])], ""])]) → t14LaTeX(If[floor(Element[list4, 15]) ≟ 0, FractionText[Element[list4, 15]], Text[floor(Element[list4, 15])] + (If[Element[list4, 15] - floor(Element[list4, 15]) > 0, FractionText[Element[list4, 15] - floor(Element[list4, 15])], ""])]) → t15LaTeX(If[floor(Element[list4, 16]) ≟ 0, FractionText[Element[list4, 16]], Text[floor(Element[list4, 16])] + (If[Element[list4, 16] - floor(Element[list4, 16]) > 0, FractionText[Element[list4, 16] - floor(Element[list4, 16])], ""])]) → t16LaTeX(If[floor(Element[list4, 17]) ≟ 0, FractionText[Element[list4, 17]], Text[floor(Element[list4, 17])] + (If[Element[list4, 17] - floor(Element[list4, 17]) > 0, FractionText[Element[list4, 17] - floor(Element[list4, 17])], ""])]) → t17LaTeX(If[floor(Element[list4, 18]) ≟ 0, FractionText[Element[list4, 18]], Text[floor(Element[list4, 18])] + (If[Element[list4, 18] - floor(Element[list4, 18]) > 0, FractionText[Element[list4, 18] - floor(Element[list4, 18])], ""])]) → t18LaTeX(If[floor(Element[list4, 19]) ≟ 0, FractionText[Element[list4, 19]], Text[floor(Element[list4, 19])] + (If[Element[list4, 19] - floor(Element[list4, 19]) > 0, FractionText[Element[list4, 19] - floor(Element[list4, 19])], ""])]) → t19LaTeX(If[floor(Element[list4, 20]) ≟ 0, FractionText[Element[list4, 20]], Text[floor(Element[list4, 20])] + (If[Element[list4, 20] - floor(Element[list4, 20]) > 0, FractionText[Element[list4, 20] - floor(Element[list4, 20])], ""])]) → t20LaTeX(If[floor(Element[list4, 21]) ≟ 0, FractionText[Element[list4, 21]], Text[floor(Element[list4, 21])] + (If[Element[list4, 21] - floor(Element[list4, 21]) > 0, FractionText[Element[list4, 21] - floor(Element[list4, 21])], ""])]) → t21LaTeX(If[floor(Element[list4, 22]) ≟ 0, FractionText[Element[list4, 22]], Text[floor(Element[list4, 22])] + (If[Element[list4, 22] - floor(Element[list4, 22]) > 0, FractionText[Element[list4, 22] - floor(Element[list4, 22])], ""])]) → t22LaTeX(If[floor(Element[list4, 23]) ≟ 0, FractionText[Element[list4, 23]], Text[floor(Element[list4, 23])] + (If[Element[list4, 23] - floor(Element[list4, 23]) > 0, FractionText[Element[list4, 23] - floor(Element[list4, 23])], ""])]) → t23LaTeX(If[floor(Element[list4, 24]) ≟ 0, FractionText[Element[list4, 24]], Text[floor(Element[list4, 24])] + (If[Element[list4, 24] - floor(Element[list4, 24]) > 0, FractionText[Element[list4, 24] - floor(Element[list4, 24])], ""])]) → t24LaTeX(If[floor(Element[list4, 25]) ≟ 0, FractionText[Element[list4, 25]], Text[floor(Element[list4, 25])] + (If[Element[list4, 25] - floor(Element[list4, 25]) > 0, FractionText[Element[list4, 25] - floor(Element[list4, 25])], ""])]) → t25LaTeX(If[floor(Element[list4, 26]) ≟ 0, FractionText[Element[list4, 26]], Text[floor(Element[list4, 26])] + (If[Element[list4, 26] - floor(Element[list4, 26]) > 0, FractionText[Element[list4, 26] - floor(Element[list4, 26])], ""])]) → t26LaTeX(If[floor(Element[list4, 27]) ≟ 0, FractionText[Element[list4, 27]], Text[floor(Element[list4, 27])] + (If[Element[list4, 27] - floor(Element[list4, 27]) > 0, FractionText[Element[list4, 27] - floor(Element[list4, 27])], ""])]) → t27LaTeX(If[floor(Element[list4, 28]) ≟ 0, FractionText[Element[list4, 28]], Text[floor(Element[list4, 28])] + (If[Element[list4, 28] - floor(Element[list4, 28]) > 0, FractionText[Element[list4, 28] - floor(Element[list4, 28])], ""])]) → t28LaTeX(If[floor(Element[list4, 29]) ≟ 0, FractionText[Element[list4, 29]], Text[floor(Element[list4, 29])] + (If[Element[list4, 29] - floor(Element[list4, 29]) > 0, FractionText[Element[list4, 29] - floor(Element[list4, 29])], ""])]) → t29LaTeX(If[floor(Element[list4, 30]) ≟ 0, FractionText[Element[list4, 30]], Text[floor(Element[list4, 30])] + (If[Element[list4, 30] - floor(Element[list4, 30]) > 0, FractionText[Element[list4, 30] - floor(Element[list4, 30])], ""])]) → t30LaTeX(If[floor(Element[list4, 31]) ≟ 0, FractionText[Element[list4, 31]], Text[floor(Element[list4, 31])] + (If[Element[list4, 31] - floor(Element[list4, 31]) > 0, FractionText[Element[list4, 31] - floor(Element[list4, 31])], ""])]) → t31LaTeX(If[floor(Element[list4, 32]) ≟ 0, FractionText[Element[list4, 32]], Text[floor(Element[list4, 32])] + (If[Element[list4, 32] - floor(Element[list4, 32]) > 0, FractionText[Element[list4, 32] - floor(Element[list4, 32])], ""])]) → t32LaTeX(If[floor(Element[list4, 33]) ≟ 0, FractionText[Element[list4, 33]], Text[floor(Element[list4, 33])] + (If[Element[list4, 33] - floor(Element[list4, 33]) > 0, FractionText[Element[list4, 33] - floor(Element[list4, 33])], ""])]) → t33LaTeX(If[floor(Element[list4, 34]) ≟ 0, FractionText[Element[list4, 34]], Text[floor(Element[list4, 34])] + (If[Element[list4, 34] - floor(Element[list4, 34]) > 0, FractionText[Element[list4, 34] - floor(Element[list4, 34])], ""])]) → t34LaTeX(If[floor(Element[list4, 35]) ≟ 0, FractionText[Element[list4, 35]], Text[floor(Element[list4, 35])] + (If[Element[list4, 35] - floor(Element[list4, 35]) > 0, FractionText[Element[list4, 35] - floor(Element[list4, 35])], ""])]) → t35LaTeX(If[floor(Element[list4, 36]) ≟ 0, FractionText[Element[list4, 36]], Text[floor(Element[list4, 36])] + (If[Element[list4, 36] - floor(Element[list4, 36]) > 0, FractionText[Element[list4, 36] - floor(Element[list4, 36])], ""])]) → t36LaTeX(If[floor(Element[list4, 37]) ≟ 0, FractionText[Element[list4, 37]], Text[floor(Element[list4, 37])] + (If[Element[list4, 37] - floor(Element[list4, 37]) > 0, FractionText[Element[list4, 37] - floor(Element[list4, 37])], ""])]) → t37LaTeX(If[floor(Element[list4, 38]) ≟ 0, FractionText[Element[list4, 38]], Text[floor(Element[list4, 38])] + (If[Element[list4, 38] - floor(Element[list4, 38]) > 0, FractionText[Element[list4, 38] - floor(Element[list4, 38])], ""])]) → t38LaTeX(If[floor(Element[list4, 39]) ≟ 0, FractionText[Element[list4, 39]], Text[floor(Element[list4, 39])] + (If[Element[list4, 39] - floor(Element[list4, 39]) > 0, FractionText[Element[list4, 39] - floor(Element[list4, 39])], ""])]) → t39LaTeX(If[floor(Element[list4, 40]) ≟ 0, FractionText[Element[list4, 40]], Text[floor(Element[list4, 40])] + (If[Element[list4, 40] - floor(Element[list4, 40]) > 0, FractionText[Element[list4, 40] - floor(Element[list4, 40])], ""])]) → t40LaTeX(If[floor(Element[list4, 41]) ≟ 0, FractionText[Element[list4, 41]], Text[floor(Element[list4, 41])] + (If[Element[list4, 41] - floor(Element[list4, 41]) > 0, FractionText[Element[list4, 41] - floor(Element[list4, 41])], ""])]) → t41LaTeX(If[floor(Element[list4, 42]) ≟ 0, FractionText[Element[list4, 42]], Text[floor(Element[list4, 42])] + (If[Element[list4, 42] - floor(Element[list4, 42]) > 0, FractionText[Element[list4, 42] - floor(Element[list4, 42])], ""])]) → t42LaTeX(If[floor(Element[list4, 43]) ≟ 0, FractionText[Element[list4, 43]], Text[floor(Element[list4, 43])] + (If[Element[list4, 43] - floor(Element[list4, 43]) > 0, FractionText[Element[list4, 43] - floor(Element[list4, 43])], ""])]) → t43LaTeX(If[floor(Element[list4, 44]) ≟ 0, FractionText[Element[list4, 44]], Text[floor(Element[list4, 44])] + (If[Element[list4, 44] - floor(Element[list4, 44]) > 0, FractionText[Element[list4, 44] - floor(Element[list4, 44])], ""])]) → t44LaTeX(If[floor(Element[list4, 45]) ≟ 0, FractionText[Element[list4, 45]], Text[floor(Element[list4, 45])] + (If[Element[list4, 45] - floor(Element[list4, 45]) > 0, FractionText[Element[list4, 45] - floor(Element[list4, 45])], ""])]) → t45LaTeX(If[floor(Element[list4, 46]) ≟ 0, FractionText[Element[list4, 46]], Text[floor(Element[list4, 46])] + (If[Element[list4, 46] - floor(Element[list4, 46]) > 0, FractionText[Element[list4, 46] - floor(Element[list4, 46])], ""])]) → t46LaTeX(If[floor(Element[list4, 47]) ≟ 0, FractionText[Element[list4, 47]], Text[floor(Element[list4, 47])] + (If[Element[list4, 47] - floor(Element[list4, 47]) > 0, FractionText[Element[list4, 47] - floor(Element[list4, 47])], ""])]) → t47LaTeX(If[floor(Element[list4, 48]) ≟ 0, FractionText[Element[list4, 48]], Text[floor(Element[list4, 48])] + (If[Element[list4, 48] - floor(Element[list4, 48]) > 0, FractionText[Element[list4, 48] - floor(Element[list4, 48])], ""])]) → t48LaTeX(If[floor(Element[list4, 49]) ≟ 0, FractionText[Element[list4, 49]], Text[floor(Element[list4, 49])] + (If[Element[list4, 49] - floor(Element[list4, 49]) > 0, FractionText[Element[list4, 49] - floor(Element[list4, 49])], ""])]) → t49LaTeX(If[floor(Element[list4, 50]) ≟ 0, FractionText[Element[list4, 50]], Text[floor(Element[list4, 50])] + (If[Element[list4, 50] - floor(Element[list4, 50]) > 0, FractionText[Element[list4, 50] - floor(Element[list4, 50])], ""])]) → t50