分数除法

分数除法
几何画板及绘图内容加载中,请稍等……
2022-12-23 12:00
本范例演示如何用 GeoGebra 进行分数除法运算,特别是不同分母的分数除法。通过构造摘要中的命令,如 RandomUniform, Take, If, PrimeFactors, GCD, Text, TextToUnicode, CountIf, Zip, Textfield, Polygon, Corner, Flatten, Sequence, Mod, Translate, Length, First, PartitionPoint,学生可以理解分数除法的原理。适合小学四年级至五年级学生进行练习。

GeoGebra 命令及参数

  1. RandomUniform(0, 0.99, 200) → allRandoms, {0.2641672330294202, 0.5771217701168445, 0.7713426996768162, 0.12466409521532323, 0.9805709227149851, 0.513429117972684, 0.26509914662538225, 0.5510645083180115, 0.1960542177321791, 0.4064259136601884, 0.4385879710320415, 0.8005125009836908, 0.7079312495007495, 0.3443283948513142, 0.516299876868448, 0.7921221784608996, 0.059325325066750575, 0.2686705055935912, 0.30354686513260687, 0.5207102611026377, 0.5674191604433858, 0.39687523971144373, 0.39939814617871316, 0.4471197290733726, 0.8168278338282713, 0.26664272810559103, 0.47163518147245564, 0.0187593425864648, 0.7080462795725838, 0.9144681075734733, 0.32767660801471354, 0.6700694484470828, 0.16915629226795423, 0.1300066127890218, 0.7278752520669621, 0.39499713542645937, 0.37314691667070266, 0.4908445460494482, 0.06097857522094599, 0.4743752753665196, 0.02331048094177369, 0.22851471909952806, 0.02586924006831273, 0.5003469204194116, 0.14522096534582468, 0.9563113854533588, 0.02896685240351268, 0.7976631533311919, 0.7457837153908824, 0.3626140506125784, 0.852872897930659, 0.3278044848030568, 0.5677658844266223, 0.5300214926248208, 0.8189791224411063, 0.8864375083261401, 0.9520740097482704, 0.14062625645075166, 0.6548368608890324, 0.9177155688765247, 0.1798400569592478, 0.95122721881875, 0.9560970606283208, 0.40036849828250015, 0.05211016873757255, 0.04918154935082413, 0.2727830567771379, 0.4403990517541617, 0.20659957398794648, 0.0999397168119656, 0.28054650115780294, 0.09351461229713724, 0.028584952978718128, 0.5910860115626191, 0.18938271048595864, 0.2271702422595861, 0.6265507595278268, 0.2749242354511057, 0.6350456155320581, 0.11728543740279597, 0.20268743669885297, 0.08230222899830467, 0.18210394452455125, 0.11831919048441787, 0.3037606535612083, 0.1744609134683093, 0.7722183612267549, 0.1874492373424522, 0.7692270346865956, 0.8572226519093379, 0.40679568264328375, 0.36409874744621046, 0.26076745229476483, 0.2528006718398864, 0.4596905658804555, 0.16498994723314772, 0.440641074177587, 0.218915497116467, 0.20307493597154558, 0.8322766614036646, 0.505433277406455, 0.882746073189943, 0.2979855881613974, 0.8381184129748627, 0.5168782188596754, 0.1385228777369055, 0.07038518915242835, 0.40330709473431176, 0.8724813399041301, 0.7222866516252157, 0.8438368542015848, 0.9802424424093321, 0.22564998211336415, 0.6554909533058699, 0.6310924717293966, 0.6716755327615296, 0.7479598186922879, 0.9507186773920497, 0.9190345131678783, 0.8662004897082867, 0.10504246702613819, 0.5878114838175247, 0.564486795387072, 0.49947216601701033, 0.7123745120927875, 0.4971785868270106, 0.1824232822020228, 0.8965634146027522, 0.747980474407329, 0.6989547797365463, 0.69305574145517, 0.8857484328048, 0.47573245702272277, 0.3020203149068305, 0.40016873167537964, 0.06730939609550832, 0.31553624173540434, 0.7556736454115189, 0.8598977686365921, 0.2627113241081677, 0.5952388912464858, 0.24896573874095393, 0.09690919163142205, 0.25967622836216825, 0.4135750649054635, 0.9683579317615617, 0.24364203274478455, 0.17730992379925317, 0.8638894067297014, 0.37345825540621574, 0.2879105229856867, 0.7924960711069069, 0.474729645272561, 0.7331194210606679, 0.12474229578744431, 0.9742695016720081, 0.3856998391617848, 0.3801490343902821, 0.6298407942108183, 0.5968171254887685, 0.635195967064251, 0.7122868588451757, 0.44451175306205504, 0.01412697578772166, 0.6408158080594786, 0.6599454885985239, 0.22528214395677482, 0.870117005465513, 0.6733422304867572, 0.6774904648368916, 0.5557662597113623, 0.25732329031196516, 0.22124434187699576, 0.324552072148715, 0.7335971727528967, 0.32491243056850283, 0.6446233579312435, 0.6370162025999921, 0.9514430435668898, 0.6629066949819653, 0.8554493918940063, 0.8939326169848579, 0.7782666205405971, 0.14407004683596467, 0.18479352061394233, 0.14660882265301103, 0.03506186202729255, 0.4879022142206246, 0.03755400123045731, 0.7596242353977052, 0.5883160788674899, 0.36262289127700575, 0.6309081040214667, 0.850403848112918, 0.04439630201386007, 0.3209013289165719, 0.27439067459684763, 0.4443322438937494, 0.41894835434629163, 0.33339734347409117}
  2. Take(allRandoms, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  3. If(testMode, testDen1, 3 + floor((currentRandomSeeds(1) * 7))) → randD1
  4. PrimeFactors(randD1) → factRandD1
  5. If(testMode, testDen2, countQuestion ≟ 0, randD2Start, 3 + floor((currentRandomSeeds(2) * 7)) ≟ randD1, randD1 - 1, 3 + floor((currentRandomSeeds(2) * 7))) → randD2
  6. PrimeFactors(randD2) → factRandD2
  7. If(randN2Start > randD2, {randD2 - 1}, PrimeFactors[randN2Start]) → randN2List
  8. If(Length[Remove[randN2List, factRandD2]] > 0, Remove[randN2List, factRandD2], {1}) → randN2Final
  9. If(testMode, testNum2, Sum[randN2Final]) → randN2
  10. If(randN1Start > randD1, {randD1 - 1}, PrimeFactors[randN1Start]) → randN1List
  11. If(Length[Remove[randN1List, factRandD1]] > 0, Remove[randN1List, factRandD1], {1}) → randN1Final
  12. If(testMode, testNum1, Sum[randN1Final]) → randN1
  13. GCD({solutionList(1), solutionList(2)}) → gcfSolution
  14. Text(input1, false) → textInput
  15. TextToUnicode(stringA) → studentChars
  16. CountIf(n ≟ 47, n, studentChars) → divCountInput
  17. TextToUnicode(" 0123456789./()") → validChars
  18. Zip(UnicodeToLetter[n], n, TextToUnicode[textInput]) → listInput
  19. Textfield(input1) → InputBox1
  20. Polygon(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)}]) → borderBox
  21. Corner(5) → layoutAppSize
  22. Corner(5) → Dims
  23. Flatten(Sequence[Sequence[Point[{Start3 + ((i * 5 / randD1), (j * 5 / randD2))}], i, 0, randD1 - 1], j, 0, randD2 - 1]) → modelAnimationPoints1
  24. Flatten(Sequence[Sequence[Point[{Start1 + ((i * 5 / randD1), (j * 5 / randD2))}], i, 0, randN1 - 1], j, 0, randD2 - 1]) → modelAnimationPoints2
  25. Zip(Distance[a, b], a, modelAnimationPoints1, b, modelAnimationPoints2) → modelAnimationDistance
  26. Sequence(Sum[First[modelAnimationDistance, n]] + animation2End, n, 1, Length[modelAnimationDistance]) → modelNumRangeSequence, {82.5, 98.83524648659389, 116.64987842528717}
  27. If(0 ≤ animationSlider < animation1bEnd, 0, animationSlider < animation1bEnd + animation2Range, animationSlider - animation1bEnd, animation2Range) → animation2Slider
  28. Polygon({Start1, Start1 + (((randN1 * 5)) / randD1, 0), Start1 + (((randN1 * 5)) / randD1, 5), Start1 + (0, 5)}) → frac1
  29. Sequence(Segment[Start2 + (0, (i * 5 / randD2)), Start2 + (5, (i * 5 / randD2))], i, 0, randD2 - 1) → modelParts2
  30. Sequence(Segment[Start1 + ((i * 5 / randD1), 0), Start1 + ((i * 5 / randD1), 5)], i, 0, randD1 - 1) → modelParts1
  31. Polygon({Start1, Start1 + (5, 0), Start1 + (5, 5), Start1 + (0, 5)}) → model1
  32. Polygon({Start2, Start2 + (5, 0), Start2 + (5, 5), Start2 + (0, 5)}) → model2
  33. Polygon({Start2, Start2 + (0, (randN2 * 5 / randD2)), Start2 + (5, (randN2 * 5 / randD2)), Start2 + (5, 0)}) → frac2
  34. Mod(solutionFinal(1), solutionFinal(2)) → numPartAnswer
  35. Translate(modelParts1, Vector[Start1, Start2]) → modelCommonParts1
  36. Translate(modelParts2, Vector[Start2, Start1]) → modelCommonParts2
  37. Flatten(Sequence[Sequence[Polygon[{Start1 + ((i * 5 / randD1), (j * 5 / randD2)), Start1 + (((i + 1) * 5 / randD1), (j * 5 / randD2)), Start1 + (((i + 1) * 5 / randD1), ((j + 1) * 5 / randD2)), Start1 + ((i * 5 / randD1), ((j + 1) * 5 / randD2))}], i, 0, randN1 - 1], j, 0, randD2 - 1]) → modelAnimation1
  38. Length(modelAnimationPoints2) → numMax
  39. Sequence(If[a > 1, If[0 ≤ animationSlider ≤ modelNumRangeSequence(a - 1), 0, animationSlider < modelNumRangeSequence(a), animationSlider - modelNumRangeSequence(a - 1), modelAnimationDistance(a)], If[0 ≤ animationSlider ≤ animation2End + animation1bRange, 0, animationSlider < modelNumRangeSequence(a), animationSlider - (animation2End + animation1bRange), modelAnimationDistance(a)]], a, 1, Length[modelNumRangeSequence]) → modelNumAnimationSequence
  40. Zip(PartitionPoint[b, a, c, d], a, modelAnimationPoints1, b, modelAnimationPoints2, c, modelNumAnimationSequence, d, modelAnimationDistance) → modelAnimationPoints3
  41. Zip(Vector[a, b], a, modelAnimationPoints2, b, modelAnimationPoints3) → modelAnimationVectors
  42. First(modelAnimation1, numMax) → modelAnimationStart
  43. Zip(Translate[a, Vector[b]], a, modelAnimation1, Vector[b], modelAnimationVectors) → modelAnimationMove
  44. CountIf(n > 0, n, modelNumAnimationSequence) → total
  45. PartitionPoint(Start2, Start3, animation2Slider, animation2Range) → PointAnimation2Move
  46. Sequence(Segment[Start2 + ((i * 5 / randD1), 0), Start2 + ((i * 5 / randD1), (5 * randN2 / randD2))], i, 0, randD1) → modelParts1b
  47. If(animationSlider < animation1bRange, animationSlider, animation1bRange) → animation1aSlider
  48. PartitionPoint(Start1, Start2, animation1aSlider, animation1bRange) → PointAnimation1aMove
  49. Translate(modelParts1, Vector[Start1, PointAnimation1aMove]) → modelAnimationParts1
  50. Zip(Vector[b, a], a, modelAnimationPoints1, b, modelAnimationPoints2) → translationVectorRanges
  51. Flatten({animation1bRange, animation2Range, modelNumRangeSequence}) → modelAllRanges
  52. If(abs(animationSlider - animationRange) > 0.01, total - 1, total) → totalReduced
  53. If(showCD, animation1bRange, 0) → animationSliderStart
  54. If(0 ≤ animationSlider < animation1bRange, 0, animationSlider < (animation1bRange * 2), animationSlider - animation1bRange, animation1bRange) → animation1bSlider
  55. PartitionPoint(Start2, Start1, animation1bSlider, animation1bRange) → PointAnimation1bMove
  56. Translate(modelParts2, Vector[Start2, PointAnimation1bMove]) → modelAnimationParts2
  57. Sequence(Segment[Start2 + (0, (i * 5 / randD2)), Start2 + (5, (i * 5 / randD2))], i, 0, randN2) → modelParts2b
  58. Translate({modelParts2b, modelParts1b}, Vector[Start2, PointAnimation2Move]) → modelParts2'
  59. If(showhint, If[showhinttypicalerror, 42 + 8 + 24 + 16 + 32, 42 + 8 + 24], 0) → yAddHint

AI 绘图提示语参考

在画面中生成一个用于讲解分数相除的练习场景:先给出两块相邻的5×5分格方框作为分数“容器”,左边表示第一个分数的分母与分子对应的取值区域,右边表示第二个分数的取值区域。把左框与右框按网格等分后,将分子对应的格子高亮成两个分数形状,并在它们之间安排一段滑动式的动态过程:以分割后的网格小块为单位,将左框的若干竖向条与右框的若干横向条通过移动与重合,逐步形成用于计算的组合图形,最终在方框内得到一个表示结果的分割区域,同时保留用于输入与显示答案的文字区域(如分数表达与结果占位)。
以上提示语为根据原始绘图命令整理而来,仅供参考。