分数表示能力练习:把分数画出来与补全

分数表示能力练习:把分数画出来与补全
几何画板及绘图内容加载中,请稍等……
2025-03-26 15:49
本范例用于展示学生如何“用图形/模型表示分数”,并通过随机题目训练分数的读写与补全。核心数学概念包括:把分数理解为“一个整体的若干份”或“多个整体的若干份”;分数的分子/分母含义;以及在给定整体划分时补全等价表达或缺失分数。作图与交互要点是:系统使用随机生成的分子/分母与题型列表来形成多个题目关卡,并在验证后统计正确率;可视化对象用“darstellungShowElement1~4”等元素承载分数的图形呈现(如若干份被选中/涂色的表示)。构造摘要中体现的 GeoGebra 关键命令与对象包括:Flatten、Sequence、Element、RandomElement、If、Textfield、Join、Zip、Unique、Mirror、Dilate、Vector;以及 numberOfQuestions、attemptCount、questionCount、correctCount、

GeoGebra 命令及参数

  1. Flatten(Sequence[Shuffle[1…3], i, 1, 10]) → level1RandomTyps
  2. Sequence(If[level1RandomTyps(i) ≟ 1, RandomElement[{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}], If[level1RandomTyps(i) ≟ 2, RandomElement[{3, 4, 5, 6}], If[level1RandomTyps(i) ≟ 3, RandomElement[{3, 4, 5, 6, 7, 8}], 2]]], i, 1, Length[level1RandomTyps]) → level1RandomElements
  3. Element(level1RandomElements, Mod[Max[0, questionCount - 1], Length[level1RandomElements]] + 1) → level1ActualRandomElements
  4. Sequence(Join[{{1}, (1…i) \ DivisorsList[i]}], i, 1, 12) → level1NichtTeilerliste
  5. RandomElement(level1NichtTeilerliste(level1ActualRandomElements)) → level1ActualZaehler
  6. Flatten(Sequence[Shuffle[1…12], i, 1, 10]) → level2RandomTyps
  7. Element(level2RandomTyps, Mod[Max[0, questionCountLevel2 - 1], Length[level2RandomTyps]] + 1) → level2ActualRandomTyp
  8. Element(allLevel2Tasks, level2ActualRandomTyp) → actualLevel2Task
  9. Element(actualLevel2Task, 1) → level2ActualZaehler
  10. Flatten(Sequence[Shuffle[1…12], i, 1, 10]) → level3RandomTyps
  11. Element(level3RandomTyps, Mod[Max[0, questionCountLevel3 - 1], Length[level3RandomTyps]] + 1) → level3ActualRandomTyp
  12. Element(allLevel3Tasks, level3ActualRandomTyp) → actualLevel3Task
  13. Element(actualLevel3Task, 1) → level3ActualZaehler
  14. If(level ≟ 1, level1ActualZaehler, If[level ≟ 2, level2ActualZaehler, level3ActualZaehler]) → valueZaehler
  15. Element(actualLevel2Task, 2) → level2ActualElements
  16. Element(actualLevel3Task, 3) → level3ActualElements
  17. Element(actualLevel3Task, 2) → level3ActualNenner
  18. If(level ≟ 1, level1ActualRandomElements, If[level ≟ 2, level2ActualElements, level3ActualNenner]) → valueNenner
  19. Textfield(input) → inputBox
  20. Element(randomQuestions, Mod[Max[0, questionCount - 1], Length[randomQuestions]] + 1) → randomQuestion
  21. Element(level1RandomTyps, Mod[Max[0, questionCount - 1], Length[level1RandomTyps]] + 1) → level1ActualRandomTyp
  22. Sequence(Rotate[elementsCenter + (0, factorSize), (i * (360°) / level1ActualRandomElements), elementsCenter], i, 0, 12) → level1Typ1Points
  23. Sequence(Rotate[elementsCenter + (0, factorSize), (i * (360°) / level1ActualRandomElements), elementsCenter], i, 0, 12) → level1Typ2Points
  24. Sequence(elementsCenter + ((i * factorSize / 2.3), factorSize / 2.3 / 2), i, (-ceil(level1ActualRandomElements / 2)), floor(level1ActualRandomElements / 2), 1) → level1Typ3Points
  25. Join({Sequence[elementsCenter + ((-factorSize), factorSize) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), (-factorSize)) + ((i * 2 / 3), 0), i, 0, 6]}) → level2Typ3Points
  26. Join({Sequence[elementsCenter + ((-factorSize), factorSize / 1.5) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), 0) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), ((-factorSize)) / 1.5) + ((i * 2 / 3), 0), i, 0, 6]}) → level2Typ5Points
  27. Join({Sequence[elementsCenter + ((-factorSize), factorSize / 1.5) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), 0) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), ((-factorSize)) / 1.5) + ((i * 2 / 3), 0), i, 0, 6]}) → level2Typ6Points
  28. Join({Sequence[elementsCenter + ((-factorSize), factorSize / 1.5) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), factorSize / 3) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), 0) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), ((-factorSize)) / 3) + ((i * 2 / 3), 0), i, 0, 6], Sequence[elementsCenter + ((-factorSize), ((-factorSize)) / 1.5) + ((i * 2 / 3), 0), i, 0, 6]}) → level2Typ7Points
  29. Zip(a - (0, factorSize / 4), a, Join[{{elementsCenter}, Sequence[Rotate[elementsCenter + (0, factorSize / 2), (i * (360°) / 6), elementsCenter], i, 0, 5], {elementsCenter + (((-3 * sqrt(1 / 3)) * factorSize / 2), 0)}, {elementsCenter + (((3 * sqrt(1 / 3)) * factorSize / 2), 0)}}]) → level2Typ8Points
  30. Flatten(Zip[{a - ((sqrt(1 / 3) * Distance[level2Typ8Points(1), level2Typ8Points(2)] / 2), 0), a + ((sqrt(1 / 3) * Distance[level2Typ8Points(1), level2Typ8Points(2)] / 2), 0)}, a, level2Typ8Points]) → level2Typ8PointsEalt
  31. Join({Sequence[elementsCenter + (((-factorSize) * 11 / 10), factorSize / 2.5) + ((i * 0.55), 0), i, 0, 9], Sequence[elementsCenter + (((-factorSize) * 13 / 10), 0) + ((i * 0.55), 0), i, 0, 9], Sequence[elementsCenter + (((-factorSize) * 15 / 10), ((-factorSize)) / 2.5) + ((i * 0.55), 0), i, 0, 9]}) → level2Typ9Points
  32. Sequence(Rotate[elementsCenter + (0, factorSize / 1.5), (i * (360°) / 6), elementsCenter], i, 0, 7) → level2Typ11Points
  33. Flatten(Sequence[{Rotate[elementsCenter + (0, factorSize), (i * (360°) / 8), elementsCenter], Rotate[elementsCenter + (0, factorSize / 2), (i * (360°) / 8), elementsCenter]}, i, 0, 8]) → level2Typ12Points
  34. Sequence(Join[{{level1Typ1Points(j + 1), elementsCenter, level1Typ1Points(j)}, Sequence[elementsCenter + (factorSize * (cos(90° + i°), sin(90° + i°))), i, ((j - 1) * 360 / level1ActualRandomElements), (j * 360 / level1ActualRandomElements), 5]}], j, 1, level1ActualRandomElements) → level1Typ1Elements
  35. Sequence({elementsCenter, level1Typ2Points(i), level1Typ2Points(i + 1)}, i, 1, level1ActualRandomElements) → level1Typ2Elements
  36. Sequence(elementsCenter + ((i * factorSize / 2.3), ((-factorSize)) / 2.3 / 2), i, (-ceil(level1ActualRandomElements / 2)), floor(level1ActualRandomElements / 2), 1) → level1Typ3PointsE
  37. Sequence({level1Typ3Points(i), level1Typ3Points(i + 1), level1Typ3PointsE(i + 1), level1Typ3PointsE(i)}, i, 1, level1ActualRandomElements) → level1Typ3Elements
  38. Zip(Polygon[a], a, actualElementsPoints) → darstellungRand
  39. Unique(Flatten[Zip[{Vertex[a]}, a, darstellungRand]]) → feedbackCornerAll
  40. Flatten(Sequence[{(13.7 + (i * 0.5), 9.2), (13.7 + (i * 0.5) + 0.7, 9.2)}, i, 0, 2]) → chiliPositions
  41. Mirror(imgGoal, OrthogonalLine[imgGoalA, Segment[imgGoalA, imgGoalB]]) → imgGoal'
  42. Join({Sequence[{elementsCenter, level2Typ11Points(i), level2Typ11Points(i + 1)}, i, 1, 6], {{level2Typ11Points(1), level2Typ11Points(2), level2Typ11PointsE(1)}, {level2Typ11Points(1), level2Typ11Points(6), level2Typ11PointsE(2)}, {level2Typ11Points(3), level2Typ11Points(4), level2Typ11PointsE(3)}, {level2Typ11Points(4), level2Typ11Points(5), level2Typ11PointsE(4)}}}) → level2Typ11Elements
  43. Sequence(Join[{Sequence[elementsCenter + (factorSize * (cos(90° + i°), sin(90° + i°))), i, ((j - 1) * 360 / 8), (j * 360 / 8), 5], {level2Typ12Points((2 * j) - 1 + 2), level2Typ12Points((2 * j) - 1 + 3)}, Sequence[elementsCenter + (factorSize / 2 * (cos(90° + i°), sin(90° + i°))), i, (j * 360 / 8), ((j - 1) * 360 / 8), -5], {level2Typ12Points((2 * j) - 1 + 1), level2Typ12Points((2 * j) - 1)}}], j, 1, 8, 1) → level2Typ12Elements
  44. Join({Sequence[{level2Typ3Points(i), level2Typ3Points(i + 1), level2Typ3Points(i + 8)}, i, 1, 6], Sequence[{level2Typ3Points(i), level2Typ3Points(i + 1), level2Typ3Points(i - 7)}, i, 8, 13]}) → level2Typ3Elements
  45. Zip(Sequence[a + (Distance[level2Typ4Points(1), level2Typ4Points(2)] / 8 * (cos(i°), sin(i°))), i, (0 * 360), (1 * 360), 14], a, Join[{level2Typ4Points, level2Typ4PointsE, level2Typ4PointsE2}]) → level2Typ4Elements
  46. Join({Sequence[{level2Typ6Points(i), level2Typ6Points(i + 1), level2Typ6Points(i + 8), level2Typ6Points(i + 7)}, i, 1, 6], Sequence[{level2Typ6Points(i), level2Typ6Points(i + 1), level2Typ6Points(i - 6), level2Typ6Points(i - 7)}, i, 15, 20]}) → level2Typ6Elements
  47. Join({Sequence[{level2Typ9Points(i), level2Typ9Points(i + 1), level2Typ9Points(i + 11), level2Typ9Points(i + 10)}, i, 1, 9], Sequence[{level2Typ9Points(i), level2Typ9Points(i + 1), level2Typ9Points(i - 9), level2Typ9Points(i - 10)}, i, 21, 29]}) → level2Typ9Elements
  48. Join({Sequence[{level2Typ7Points(i), level2Typ7Points(i + 1), level2Typ7Points(i + 8), level2Typ7Points(i + 7)}, i, 1, 6, 4], Sequence[{level2Typ7Points(i + 1), level2Typ7Points(i + 2), level2Typ7Points(i + 9), level2Typ7Points(i + 8)}, i, 1, 6, 4], Sequence[{level2Typ7Points(i), level2Typ7Points(i + 1), level2Typ7Points(i + 8), level2Typ7Points(i + 7)}, i, 9, 12, 1], Sequence[{level2Typ7Points(i), level2Typ7Points(i + 1), level2Typ7Points(i + 8), level2Typ7Points(i + 7)}, i, 16, 19, 1], Sequence[{level2Typ7Points(i), level2Typ7Points(i + 1), level2Typ7Points(i + 8), level2Typ7Points(i + 7)}, i, 22, 26, 4], Sequence[{level2Typ7Points(i + 1), level2Typ7Points(i + 2), level2Typ7Points(i + 9), level2Typ7Points(i + 8)}, i, 22, 26, 4]}) → level2Typ7Elements
  49. Flatten(Sequence[Sequence[Rotate[level2Typ8Points(j) + (0, 0.61), (i * (360°) / 6) + 30°, level2Typ8Points(j)], i, 0, 5], j, 1, 9]) → level2Typ8PointsE
  50. Sequence({level2Typ8PointsE(i), level2Typ8PointsE(i + 1), level2Typ8PointsE(i + 2), level2Typ8PointsE(i + 3), level2Typ8PointsE(i + 4), level2Typ8PointsE(i + 5)}, i, 1, Length[level2Typ8PointsE], 6) → level2Typ8Elements
  51. If(level ≟ 1, level1ActualRandomElements, If[level ≟ 2, level2ActualElements, If[level ≟ 3, level3ActualElements, 1]]) → valueElements
  52. Dilate(darstellungRand, factorSolution, solutionPosition) → darstellungRandSolution
  53. Dilate(darstellungElement1, factorSolution, solutionPosition) → darstellungElement1Solution
  54. Dilate(darstellungElement2, factorSolution, solutionPosition) → darstellungElement2Solution
  55. Dilate(darstellungElement3, factorSolution, solutionPosition) → darstellungElement3Solution
  56. Dilate(darstellungElement4, factorSolution, solutionPosition) → darstellungElement4Solution
  57. Dilate(darstellungElement5, factorSolution, solutionPosition) → darstellungElement5Solution
  58. Dilate(darstellungElement6, factorSolution, solutionPosition) → darstellungElement6Solution
  59. Dilate(darstellungElement7, factorSolution, solutionPosition) → darstellungElement7Solution
  60. Dilate(darstellungElement8, factorSolution, solutionPosition) → darstellungElement8Solution
  61. Dilate(darstellungElement9, factorSolution, solutionPosition) → darstellungElement9Solution
  62. Dilate(darstellungElement10, factorSolution, solutionPosition) → darstellungElement10Solution
  63. Dilate(darstellungElement11, factorSolution, solutionPosition) → darstellungElement11Solution
  64. Dilate(darstellungElement12, factorSolution, solutionPosition) → darstellungElement12Solution
  65. Dilate(darstellungElement13, factorSolution, solutionPosition) → darstellungElement13Solution
  66. Dilate(darstellungElement14, factorSolution, solutionPosition) → darstellungElement14Solution
  67. Dilate(darstellungElement15, factorSolution, solutionPosition) → darstellungElement15Solution
  68. Dilate(darstellungElement16, factorSolution, solutionPosition) → darstellungElement16Solution
  69. Dilate(darstellungElement17, factorSolution, solutionPosition) → darstellungElement17Solution
  70. Dilate(darstellungElement18, factorSolution, solutionPosition) → darstellungElement18Solution
  71. If(level ≟ 2, actualLevel2Task(3), If[level ≟ 3, actualLevel3Task(4), {1, 2}]) → numberSolutionElementsIndividual
  72. If(level ≟ 1, numberSolutionElementsFix, numberSolutionElementsIndividual) → numberSolutionElements
  73. Join({Sequence[{level2Typ5Points(i), level2Typ5Points(i + 1), level2Typ5Points(i + 9), level2Typ5Points(i + 8)}, i, 1, 5], Sequence[{level2Typ5Points(i), level2Typ5Points(i + 1), level2Typ5Points(i - 5), level2Typ5Points(i - 6)}, i, 15, 19]}) → level2Typ5Elements
  74. Vector(Corner[txtKlickMich, 1] + (0.5, -0.0), Corner[txtKlickMich, 1] + (0.8, -0.4)) → arrowKlickMich