Step-by-Step Fraction Reduction

Step-by-Step Fraction Reduction
Loading the math board and drawing, please wait…
2022-08-24 21:00
This example demonstrates the step-by-step reduction of fractions, using visualization to help students understand the principles of reduction. Core math concepts include fraction reduction, greatest common divisor, and visual aids for comprehension. It leverages GeoGebra commands and objects such as Circle, Arc, Polygon, Shuffle, Element, Append, Remove, Textfield, Join, Sequence, OrthogonalLine,

GeoGebra Commands & Parameters

  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