逐步约分

逐步约分
几何画板及绘图内容加载中,请稍等……
2022-08-24 21:00
①本范例演示了分数的逐步约分过程,通过可视化手段帮助学生理解约分原理;②涉及的核心数学概念包括分数的约分、最大公约数、可视化辅助理解;③作图要点提炼自构造摘要,使用了Circle, Arc, Polygon, Shuffle, Element, Append, Remove, Textfield, Join, Sequence, OrthogonalLine, Mirror, CountIf, If, Sum, LaTeX, Intersection, Intersect, Translate等GeoGebra命令和对象;④适合小学5-6年级学生,用于练习和巩固分数的扩展与约分技能,尤其借助视觉化工具。

GeoGebra 命令及参数

  1. CircleArc(pointBogerl2 + (bogerldx / 2, bogerldy), pointBogerl1, pointBogerl2) → c
  2. Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, ptopleftcornerfeedback, ptoprightcornerfeedback, pbottomrightcornerfeedback, pbottomleftcornerfeedback
  3. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {7, 5, 3, 3, 6, 3, 9, 0, 10, 3, 9, 1, 1, 7, 10, 9, 6, 9, 3, 7, 4, 7, 7, 0, 10, 1, 8, 8, 4, 0, 6, 0, 4, 8, 6, 8, 9, 10, 0, 2, 7, 10, 5, 3, 9, 1, 3, 7, 0, 3, 7, 2, 3, 10, 10, 8, 1, 3, 7, 1, 6, 9, 7, 4, 0, 8, 5, 9, 3, 4, 5, 3, 1, 3, 7, 8, 10, 2, 1, 8, 7, 5, 8, 5, 8, 9, 6, 5, 3, 2, 9, 10, 5, 6, 3, 4, 7, 4, 1, 4}
  4. Element(randomNosForX, Mod[questionCount, 100] + 1) → numX
  5. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {3, 6, 7, 9, 9, 9, 0, 6, 5, 4, 6, 7, 3, 7, 10, 10, 6, 8, 6, 10, 7, 8, 6, 3, 8, 6, 5, 3, 9, 7, 0, 8, 0, 6, 6, 2, 6, 5, 4, 1, 0, 7, 7, 10, 4, 2, 1, 4, 4, 0, 3, 7, 1, 4, 1, 8, 1, 1, 5, 4, 2, 10, 6, 7, 9, 9, 4, 2, 8, 10, 1, 6, 4, 6, 0, 8, 4, 7, 5, 8, 1, 6, 1, 1, 3, 9, 5, 8, 8, 6, 1, 8, 9, 1, 8, 10, 0, 3, 3, 3}
  6. Element(randomNosForY, Mod[questionCount, 100] + 1) → numY
  7. Append(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayX
  8. Append(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayY
  9. Remove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeat
  10. Remove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeat
  11. Element(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeat
  12. Element(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeat
  13. Textfield(input1) → InputBox1
  14. Textfield(input2) → InputBox2
  15. Textfield(input3) → InputBox3
  16. Textfield(input4) → InputBox4
  17. Textfield(input5) → InputBox5
  18. Textfield(input6) → InputBox6
  19. Textfield(input7) → InputBox7
  20. Textfield(input8) → InputBox8
  21. Textfield(input9) → InputBox9
  22. Textfield(input10) → InputBox10
  23. Textfield(input11) → InputBox11
  24. Textfield(input12) → InputBox12
  25. Textfield(input13) → InputBox13
  26. Textfield(input14) → InputBox14
  27. Textfield(input15) → InputBox15
  28. Textfield(input16) → InputBox16
  29. Join(Sequence[Translate[{posBtn1, posBtn2, posBtn3, posBtn4}, Vector[(i * (dxShift, 0))]], i, 0, 4]) → listPosbtn
  30. Sequence(Translate[{c}, Vector[(bogerlShift2, 0) + (i * (bogerlShift, 0))]], i, 1, step - 1) → listbogerl1
  31. Sequence(Translate[{pointBogerl1}, Vector[(bogerlShift2, 0) + (i * (bogerlShift, 0))]], i, 1, step - 1) → listbogerlPunkt1
  32. OrthogonalLine(pointSpiegelgerade, yAxis) → f
  33. Mirror({listbogerlPunkt1, pointBogerl1}, f) → listbogerlPunkt1'
  34. Mirror({listbogerl1, c}, f) → listbogerl2
  35. CountIf(x ≠ 0, listTeilerOld) → anzahlTeiler
  36. Join(Sequence[{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}, i, 1, 4]) → listPrimzahlen
  37. Sequence(Element[listCorrect, i], i, 1, step) → test12
  38. If(step ≟ 1, 1 ∈ {input1, input4}, step ≟ 2, 1 ∈ {input5, input8}, step ≟ 3, 1 ∈ {input9, input12}, step ≟ 4, 1 ∈ {input13, input16}) → checkTeilerGleich1
  39. If(step ≟ 1, Defined[(((input1 * input2) * input3) * input4)], step ≟ 2, Defined[(((input5 * input6) * input7) * input8)], step ≟ 3, Defined[(((input9 * input10) * input11) * input12)], step ≟ 4, Defined[(((input13 * input14) * input15) * input16)]) → showSpeechBubble
  40. Sum(Sequence[Element[listCorrect, i]], i, 1, step) → listCorrect1
  41. LaTeX(attemptCount, true, true) → Text4
  42. If(step ≟ 1, correct11 ∧ (¬correct12), step ≟ 2, correct21 ∧ (¬correct22), step ≟ 3, correct31 ∧ (¬correct32), step ≟ 4, correct41 ∧ (¬correct42)) → checkFalschgerechnet
  43. Join(Sequence[Translate[{PosPointCorrecttext}, Vector[(i * (dxShift, 0))]], i, 0, 4]) → listPosCorrecttext
  44. Mirror(CircleArc[solutionPoint1 - (bogerldx2 / 2, bogerldy), solutionPoint1 - (bogerldx2, 0), solutionPoint1], Line[solutionPoint1, solutionPoint1 + (1, 0)]) → solutionbogerl1
  45. CircleArc(solutionPoint2 - (bogerldx2 / 2, bogerldy), solutionPoint2 - (bogerldx2, 0), solutionPoint2) → solutionbogerl2
  46. Sequence(Translate[{solutionbogerl1}, Vector[(bogerlShift_2, 0) + (i * (bogerlShift2_{2}, 0))]], i, 1, 5) → listSolutionBogerlTest1
  47. Intersection(alistTeiler1, alistTeiler2) → alistTeilerTotal
  48. If(step ≟ 1, input1 ≟ input4, step ≟ 2, input5 ≟ input8, step ≟ 3, input9 ≟ input12, step ≟ 4, input13 ≟ input16) → checkTeilerGleich
  49. LaTeX(solutionText, true, true) → Text3
  50. Intersect(correct21 = input2 / input6, correct21 = input5) → A
  51. Intersect(correct21 = input2 / input6, correct21 = input5) → B
  52. If(step ≟ 1, correct12 ∧ (¬(correct11 ∨ correct13)), step ≟ 2, correct22 ∧ (¬(correct21 ∨ correct23)), step ≟ 3, correct32 ∧ (¬(correct31 ∨ correct33)), step ≟ 4, correct42 ∧ (¬(correct41 ∨ correct43))) → checkKurzungszahl
  53. Translate(q1, Vector[(1 * (dxShift, 0))]) → q2
  54. Translate(q1, Vector[(2 * (dxShift, 0))]) → q3
  55. Translate(q1, Vector[(3 * (dxShift, 0))]) → q4