Comparing Unlike-Denominator Fractions with Inequality Notation
Loading the math board and drawing, please wait…
This GeoGebra example generates two fractions with unlike denominators and visually helps learners determine their relative sizes, then completes statements using inequality symbols. It focuses on fraction comparison using common denominators, using LCM (least common multiple) to convert fractions to equivalent forms, and interpreting inequality notation (> , < , =). Construction-wise, it relies on randomization and sequencing (RandomUniform, Sequence, Point-related choices) to pick denominators and numerators (e.g., chooseDen1/chooseDen2, chooseNum2), computes the common denominator via LCM, and then builds the comparison interface using geometric primitives (Point, Segment, Polygon, Vertex, Element, Take, If). Text elements (Textfield, Text, TableText, and layout offsets like onboardingTextOffset) display the fractions and the inequality result, while Translate and other positioning tools place the labels and comparison bars. Best suited for Grades 4–5 number-sense practice, especially skills like comparing and ordering fractions with different denominators.
GeoGebra Commands & Parameters
RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.6428584368740407, 0.7048754889050509, 0.15625028546047037, 0.7964868077508065, 0.35895461373854115, 0.5566701361617251, 0.8660743594097938, 0.06249141075806756, 0.5050872204721368, 0.9533987953178509, 0.24746068121977605, 0.7665252171438077, 0.11201484821360178, 0.786644027695545, 0.3468575878778679, 0.32279154727919107, 0.7833340690469061, 0.319738255513543, 0.8103652190533462, 0.7876503832354336, 0.8702404581305283, 0.0639903160022543, 0.20041617010636711, 0.2818545000745846, 0.21428295548743947, 0.8272786056693865, 0.19992834709633645, 0.09564077675979869, 0.9084531742553283, 0.4750865924330359, 0.07481303569441639, 0.19116069448469353, 0.707956908256134, 0.13467095836544993, 0.19532165988181172, 0.3096940799926008, 0.9177084890509878, 0.6658559379073284, 0.1560013504359158, 0.9712357654690958, 0.6939698502098576, 0.09693729329281671, 0.8530040082241052, 0.3913792750702045, 0.9426238171467564, 0.3313573695449424, 0.7861559742313449, 0.8249431850926235, 0.32632771816031303, 0.7301776450925174, 0.9815445416229964, 0.7874943516882624, 0.6172363984103749, 0.12692826198581197, 0.28841541553709515, 0.5648192615926723, 0.2511145001561789, 0.915153706634661, 0.11189884902450933, 0.2864781690094868, 0.8624766562105868, 0.1449024192944263, 0.3604952466482284, 0.8128488254190901, 0.6388994802522217, 0.6925222009315374, 0.06434985742927612, 0.05552471525522997, 0.5058432287184038, 0.3484271967431757, 0.9271339477985925, 0.21858024587335673, 0.5012014531412323, 0.2499914965836928, 0.5008238680904367, 0.8630483956994566, 0.34136540796269277, 0.6614028836789446, 0.24883198947662302, 0.128978219131715, 0.5278459697556621, 0.8491748125766748, 0.9187929546036067, 0.5286487916937853, 0.665439005334534, 0.6410681081948544, 0.49184539385553194, 0.6009123148083099, 0.05955125082153756, 0.3174135684642748, 0.010474788605838333, 0.8702230272451731, 0.35162156265778705, 0.8872545707004559, 0.4018942528128417, 0.6146805110829991, 0.8375791761470476, 0.7273442921406339, 0.3885402986418073, 0.005374591459032515, 0.8249728758877904, 0.6698343729152665, 0.5315475245747918, 0.7444654031308248, 0.7197868759872582, 0.5944824273308725, 0.1970407221111592, 0.5617668050018787, 0.7240266989231114, 0.3633836698152157, 0.18874503640113802, 0.849121923945846, 0.39991500034398403, 0.6005965783958827, 0.8937646550092683, 0.24856938796433248, 0.9459796757290901, 0.6955859479372635, 0.1714171966015681, 0.4441949187669771, 0.8744487309957297, 0.6181465567091645, 0.3477359734003882, 0.7886466934583914, 0.41818328712127273, 0.9633982371354972, 0.8506639850177629, 0.7535651097794676, 0.3388873096976676, 0.7085588473381728, 0.04306378454105456, 0.1786357914150269, 0.8065249562964534, 0.5985039648780832, 0.2624536146212034, 0.7566215931456469, 0.4327580219532893, 0.20461258737328272, 0.9778553627295429, 0.8115632398307866, 0.008783959313995567, 0.7910756790415536, 0.08530218995028581, 0.5843597222097864, 0.3202106827124663, 0.12470987379086491, 0.7144025123199864, 0.9041485435275913, 0.06854839525627383, 0.1583711343856396, 0.8988950131994605, 0.12530242304172948, 0.9005284970128864, 0.5543035585782492, 0.32435316122556024, 0.27844301228113383, 0.9427790319206294, 0.47218624157989714, 0.046110679282090214, 0.7496436707708724, 0.11039126078277416, 0.7172561351008977, 0.5200781921609199, 0.3149524240661809, 0.31360571381392044, 0.09668814530701658, 0.7184088098337613, 0.4875124457899122, 0.1272267379414918, 0.7974030283371407, 0.17094520430718232, 0.9118918290943738, 0.0824428047727154, 0.5556522474852797, 0.542042279810825, 0.9647554778436802, 0.010486319161347832, 0.8580938855847176, 0.750709662590199, 0.5027210405382493, 0.6320090053046983, 0.41562600694664414, 0.460055133326421, 0.09713756177519263, 0.03518080580328576, 0.37498508437550543, 0.7097346183062468, 0.4816091107366994, 0.8193379653418079, 0.4190435750233829, 0.7025268137204393, 0.2313574505251674, 0.6595121367228618, 0.16485720910024756, 0.6432497459528054, 0.7839764936731677, 0.13036542343264523, 0.48881432703808153, 0.38502385287314866, 0.2887781755418137}Sequence((10 / ii, y1_{1}), ii, 2, 20) → chooseDen2_{1}Point(chooseDen2_{1}) → D_{1}Sequence(((10 * ii / d2_{1}), y1_{1} + hei_{1}), ii, 0, d2_{1}) → chooseNum2_{1}Point(chooseNum2_{1}) → B_{1}Segment(B_{1}, B_{1} + (0, 1.1)) → ComparisonBar2_{1}Vertex(ComparisonBar2_{1}, 2) → F_{1}Sequence((10 / ii, y3_{1}), ii, 2, 20) → chooseDen1_{1}Point(chooseDen1_{1}) → C_{1}Polygon({C1_{1}, C2_{1}, C2_{1} + (0, hei_{1}), C1_{1} + (0, hei_{1})}) → D1_{1}Polygon({C2_{1}, C3_{1}, C3_{1} + (0, hei_{1}), C2_{1} + (0, hei_{1})}) → D2_{1}Polygon({C3_{1}, C4_{1}, C4_{1} + (0, hei_{1}), C3_{1} + (0, hei_{1})}) → D3_{1}Polygon({C4_{1}, C5_{1}, C5_{1} + (0, hei_{1}), C4_{1} + (0, hei_{1})}) → D4_{1}Polygon({C5_{1}, C6_{1}, C6_{1} + (0, hei_{1}), C5_{1} + (0, hei_{1})}) → D5_{1}Polygon({C6_{1}, C7_{1}, C7_{1} + (0, hei_{1}), C6_{1} + (0, hei_{1})}) → D6_{1}Polygon({C7_{1}, C8_{1}, C8_{1} + (0, hei_{1}), C7_{1} + (0, hei_{1})}) → D7_{1}Polygon({C8_{1}, C9_{1}, C9_{1} + (0, hei_{1}), C8_{1} + (0, hei_{1})}) → D8_{1}Polygon({C9_{1}, C10_{1}, C10_{1} + (0, hei_{1}), C9_{1} + (0, hei_{1})}) → D9_{1}Polygon({C10_{1}, C11_{1}, C11_{1} + (0, hei_{1}), C10_{1} + (0, hei_{1})}) → D10_{1}Polygon({C11_{1}, C12_{1}, C12_{1} + (0, hei_{1}), C11_{1} + (0, hei_{1})}) → D11_{1}Polygon({C12_{1}, C13_{1}, C13_{1} + (0, hei_{1}), C12_{1} + (0, hei_{1})}) → D12_{1}Polygon({C13_{1}, C14_{1}, C14_{1} + (0, hei_{1}), C13_{1} + (0, hei_{1})}) → D13_{1}Polygon({C14_{1}, C15_{1}, C15_{1} + (0, hei_{1}), C14_{1} + (0, hei_{1})}) → D14_{1}Polygon({C15_{1}, C16_{1}, C16_{1} + (0, hei_{1}), C15_{1} + (0, hei_{1})}) → D15_{1}Polygon({C16_{1}, C17_{1}, C17_{1} + (0, hei_{1}), C16_{1} + (0, hei_{1})}) → D16_{1}Polygon({C17_{1}, C18_{1}, C18_{1} + (0, hei_{1}), C17_{1} + (0, hei_{1})}) → D17_{1}Polygon({C18_{1}, C19_{1}, C19_{1} + (0, hei_{1}), C18_{1} + (0, hei_{1})}) → D18_{1}Polygon({C19_{1}, C20_{1}, C20_{1} + (0, hei_{1}), C19_{1} + (0, hei_{1})}) → D19_{1}Polygon({C20_{1}, C21_{1}, C21_{1} + (0, hei_{1}), C20_{1} + (0, hei_{1})}) → D20_{1}Sequence(((10 * ii / d1_{1}), y3_{1} + hei_{1}), ii, 0, d1_{1}) → chooseNum1_{1}Point(chooseNum1_{1}) → A_{1}Element(Take[{D1_{1}, D2_{1}, D3_{1}, D4_{1}, D5_{1}, D6_{1}, D7_{1}, D8_{1}, D9_{1}, D10_{1}, D11_{1}, D12_{1}, D13_{1}, D14_{1}, D15_{1}, D16_{1}, D17_{1}, D18_{1}, D19_{1}, D20_{1}}, 1, d1_{1}], If[n1_{1} ≟ d1_{1} - 1, d1_{1}, d1_{1} - 1]) → q2_{1}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsIf(frac1 ≟ frac2, 4, If[frac1 ≤ frac2, 2, 3]) → expectedTextfield(input1) → InputBox1Textfield(input2) → InputBox2Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBoxCorner(5) → layoutAppSizeonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetLCM(d1_{1}, d2_{1}) → mcm_{1}Segment(A_{1}, A_{1} - (0, 2.5)) → ComparisonBar_{1}Text(If[n1_{1} ≠ 0 ∧ d1_{1} ≠ n1_{1}, (((("\frac{" * n1_{1}) * "}{") * d1_{1}) * "}"), Text[n1_{1} / d1_{1}]], E_{1}, true, true, 0, 1) → text5_{1}Text(If[n2_{1} ≠ 0 ∧ n2_{1} ≠ d2_{1}, (((("\frac{" * n2_{1}) * "}{") * d2_{1}) * "}"), Text[n2_{1} / d2_{1}]], Midpoint[F_{1}, B_{1}], true, true, 0, 0) → text6_{1}Sequence(((10 / d2_{1} * ii), 1), ii, 0, d2_{1}) → PointsNL2_{1}Corner(5) → AppSize_{1}Translate(vGuideline_{1}, Vector[(Vector[Corner[1], Corner[2]] / 800 * 16)]) → vGuideline'_{1}Segment((-0.5, 0.97992), (10.5, 0.97992)) → Nl2_{1}Polygon({(0, y3_{1}), (10, y3_{1}), (10, y3_{1} + hei_{1}), (0, y3_{1} + hei_{1})}) → Bar1_{1}Polygon({(0, y1_{1}), (10, y1_{1}), (10, y1_{1} + hei_{1}), (0, y1_{1} + hei_{1})}) → Bar2_{1}Sequence(((10 / d1_{1} * ii), y3_{1} + hei_{1}), ii, 0, d1_{1}) → PointsBar1_{1}Sequence(((10 / d1_{1} * ii), y3_{1}), ii, 0, d1_{1}) → PointsBar1'_{1}Sequence(((10 / d2_{1} * ii), y1_{1} + hei_{1}), ii, 0, d2_{1}) → PointsBar2_{1}Sequence(((10 / d2_{1} * ii), y1_{1}), ii, 0, d2_{1}) → PointsBar2'_{1}Zip(Segment[PP, QQ], PP, PointsBar1_{1}, QQ, PointsBar1'_{1}) → divisionsBar1_{1}Zip(Segment[PP, QQ], PP, PointsBar2'_{1}, QQ, PointsBar2_{1}) → divisionsBar2_{1}Polygon({PointsBar1'_{1}(1), PointsBar1'_{1}(n1_{1} + 1), PointsBar1_{1}(n1_{1} + 1), PointsBar1_{1}(1)}) → FractionModel1_{1}Polygon({PointsBar2'_{1}(1), PointsBar2'_{1}(n2_{1} + 1), PointsBar2_{1}(n2_{1} + 1), PointsBar2_{1}(1)}) → FractionModel2_{1}Text("0", PointsNL2_{1}(1), true, true, 0, -1) → text2_{1}Text("1", PointsNL2_{1}(-1), true, true, 0, -1) → text3_{1}Sequence(((10 / mcm_{1} * ii), y2_{1}), ii, 0, mcm_{1}) → PointsNL1_{1}Zip(Segment[PP + (0, 0.1), PP - (0, 0.1)], PP, PointsNL1_{1}) → ticksNL1_{1}Zip(Segment[PP + (0, 0.1), PP - (0, 0.1)], PP, PointsNL2_{1}) → ticksNL2_{1}TableText({texto1_{1}}, "c", 400, 0) → text7_{1}Sequence(((10 / mcm_{1} * ii), y3_{1} + hei_{1}), ii, 0, mcm_{1}) → l1_{1}Sequence(((10 / mcm_{1} * ii), y3_{1}), ii, 0, mcm_{1}) → l2_{1}Sequence(((10 / mcm_{1} * ii), y1_{1}), ii, 0, mcm_{1}) → l4_{1}Zip(Segment[PP, QQ], PP, l1_{1}, QQ, l2_{1}) → l5_{1}Sequence(((10 / mcm_{1} * ii), y1_{1} + hei_{1}), ii, 0, mcm_{1}) → l3_{1}Zip(Segment[PP, QQ], PP, l3_{1}, QQ, l4_{1}) → l6_{1}If(onboardingStage_{1} ≟ 1, posOB1, posOB2_{1}) → onboardingX_{1}onboardingTextOffset(Corner[onboardingText_{1}, 1], Corner[onboardingText_{1}, 3], onboardingCase_{1}, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset_{1}Segment((-0.5, y2_{1}), (10.5, y2_{1})) → NL1_{1}Segment((0, y2_{1} + 0.2), (0, y2_{1} - 0.2)) → f_{1}Segment((10, y2_{1} - 0.2), (10, y2_{1} + 0.2)) → g_{1}Text("0", (0, y2_{1} + 0.2), true, true, 0, 1) → text1_{1}Text("1", (10, y2_{1} + 0.2), true, true, 0, 1) → text4_{1}circlePixels(C_{1}, 9 + (7 * pulsing_{1}), Corner[1], Corner[3], Corner[5]) → pulsingC_{1}circlePixels(D_{1}, 9 + (7 * pulsing_{1}), Corner[1], Corner[3], Corner[5]) → pulsingD_{1}Translate(hGuideline_{1}, Vector[(Vector[Corner[1], Corner[4]] / 500 * 16)]) → hGuideline'_{1}Polygon({A1_{1}, A2_{1}, A2_{1} + (0, hei_{1}), A1_{1} + (0, hei_{1})}) → B1_{1}Polygon({A2_{1}, A3_{1}, A3_{1} + (0, hei_{1}), A2_{1} + (0, hei_{1})}) → B2_{1}Polygon({A3_{1}, A4_{1}, A4_{1} + (0, hei_{1}), A3_{1} + (0, hei_{1})}) → B3_{1}Polygon({A4_{1}, A5_{1}, A5_{1} + (0, hei_{1}), A4_{1} + (0, hei_{1})}) → B4_{1}Polygon({A5_{1}, A6_{1}, A6_{1} + (0, hei_{1}), A5_{1} + (0, hei_{1})}) → B5_{1}Polygon({A6_{1}, A7_{1}, A7_{1} + (0, hei_{1}), A6_{1} + (0, hei_{1})}) → B6_{1}Polygon({A7_{1}, A8_{1}, A8_{1} + (0, hei_{1}), A7_{1} + (0, hei_{1})}) → B7_{1}Polygon({A8_{1}, A9_{1}, A9_{1} + (0, hei_{1}), A8_{1} + (0, hei_{1})}) → B8_{1}Polygon({A9_{1}, A10_{1}, A10_{1} + (0, hei_{1}), A9_{1} + (0, hei_{1})}) → B9_{1}Polygon({A10_{1}, A11_{1}, A11_{1} + (0, hei_{1}), A10_{1} + (0, hei_{1})}) → B10_{1}Polygon({A11_{1}, A12_{1}, A12_{1} + (0, hei_{1}), A11_{1} + (0, hei_{1})}) → B11_{1}Polygon({A12_{1}, A13_{1}, A13_{1} + (0, hei_{1}), A12_{1} + (0, hei_{1})}) → B12_{1}Polygon({A13_{1}, A14_{1}, A14_{1} + (0, hei_{1}), A13_{1} + (0, hei_{1})}) → B13_{1}Polygon({A14_{1}, A15_{1}, A15_{1} + (0, hei_{1}), A14_{1} + (0, hei_{1})}) → B14_{1}Polygon({A15_{1}, A16_{1}, A16_{1} + (0, hei_{1}), A15_{1} + (0, hei_{1})}) → B15_{1}Polygon({A16_{1}, A17_{1}, A17_{1} + (0, hei_{1}), A16_{1} + (0, hei_{1})}) → B16_{1}Polygon({A17_{1}, A18_{1}, A18_{1} + (0, hei_{1}), A17_{1} + (0, hei_{1})}) → B17_{1}Polygon({A18_{1}, A19_{1}, A19_{1} + (0, hei_{1}), A18_{1} + (0, hei_{1})}) → B18_{1}Polygon({A19_{1}, A20_{1}, A20_{1} + (0, hei_{1}), A19_{1} + (0, hei_{1})}) → B19_{1}Polygon({A20_{1}, A21_{1}, A21_{1} + (0, hei_{1}), A20_{1} + (0, hei_{1})}) → B20_{1}Polygon({A21_{1}, A22_{1}, A22_{1} + (0, hei_{1}), A21_{1} + (0, hei_{1})}) → B21_{1}Element(Take[{B1_{1}, B2_{1}, B3_{1}, B4_{1}, B5_{1}, B6_{1}, B7_{1}, B8_{1}, B9_{1}, B10_{1}, B11_{1}, B12_{1}, B13_{1}, B14_{1}, B15_{1}, B16_{1}, B17_{1}, B18_{1}, B19_{1}, B20_{1}}, 1, d2_{1}], If[n2_{1} ≟ d2_{1} - 1, d2_{1}, d2_{1} - 1]) → q1_{1}Vertex(q1_{1}) → Q11_{1}, Q12_{1}, Q13_{1}, Q14_{1}Segment(E_{1} + (0, 0.15), E_{1} - (0, 0.15)) → h_{1}Segment(F_{1} + (0, 0.15), F_{1} - (0, 0.15)) → i_{1}
AI Drawing Prompt Reference
Draw two fractions with different denominators. First, randomly select two denominators, then generate corresponding numerators based on these denominators. Calculate the least common multiple of the two denominators and convert the fractions to have the same denominator. Draw the two fractions on the canvas, one above the other, and use a comparison bar to show their size relationship. Finally, display the values of the two fractions and the comparison result.
The prompt above was compiled from the original drawing commands and is for reference only.