Natural Number Times a Mixed Number: Constructing Rational Multiplication

Natural Number Times a Mixed Number: Constructing Rational Multiplication
Loading the math board and drawing, please wait…
2023-05-22 17:04
This GeoGebra example demonstrates how to generate and solve multiplication problems of the form “natural number × mixed number” by constructing the corresponding result as a rational fraction and checking it step by step. The key math ideas include converting mixed numbers to improper fractions, applying fraction multiplication rules to numerator and denominator, and ensuring the correct (often simplified) fractional form under randomized parameters. Construction and interactivity are built using: Shuffle and Element for selecting random values (questionCount, randomNosForA/B/C/D, and numA/numB/numC/numD), Mod to constrain or control number selection (e.g., divisibility/range conditions), If to provide conditional logic for hints, and Textfield/Text to display inputs and explanation text. The result fraction components are extracted via Numerator and Denominator (solZaehler1/solZaehler2, solNenner1/solNenner2). Geometry/text scaffolding uses Polygon, Segment, Corner, and related corner/position objects to present the problem layout. Suitable for middle school rational-number practice and interactive worksheets or self-assessment tasks.

GeoGebra Commands & Parameters

  1. Shuffle(Sequence[Random[1, 9], i, 1, 100]) → randomNosForC, {3, 1, 3, 9, 2, 9, 6, 2, 9, 2, 8, 3, 6, 9, 4, 9, 1, 7, 7, 1, 9, 7, 7, 2, 3, 9, 5, 5, 4, 3, 2, 3, 6, 3, 7, 2, 8, 7, 5, 5, 7, 6, 8, 7, 2, 5, 5, 7, 5, 7, 7, 5, 5, 7, 6, 5, 4, 1, 1, 2, 3, 3, 8, 6, 7, 1, 1, 6, 6, 9, 6, 6, 6, 5, 6, 7, 8, 5, 8, 5, 3, 7, 1, 9, 3, 3, 3, 8, 7, 5, 1, 2, 4, 5, 9, 2, 1, 6, 9, 4}
  2. Element(randomNosForC, Mod[questionCount, 100] + 1) → numC
  3. Shuffle(Sequence[Random[numC + 1, 10], i, 1, 100]) → randomNosForD, {10, 9, 10, 6, 10, 8, 8, 8, 6, 5, 9, 10, 9, 10, 6, 10, 6, 7, 5, 10, 8, 7, 10, 8, 6, 9, 5, 6, 8, 7, 5, 7, 7, 8, 8, 6, 8, 8, 7, 10, 6, 9, 6, 7, 5, 5, 7, 9, 6, 8, 10, 6, 8, 5, 6, 5, 6, 9, 5, 8, 8, 5, 9, 7, 8, 8, 6, 5, 5, 9, 10, 9, 9, 6, 10, 5, 5, 8, 9, 8, 9, 10, 10, 7, 9, 7, 5, 8, 6, 7, 9, 5, 10, 5, 8, 9, 10, 5, 10, 5}
  4. Element(randomNosForD, Mod[questionCount, 100] + 1) → numD
  5. Shuffle(Sequence[Random[2, 6], i, 1, 100]) → randomNosForB, {5, 3, 5, 2, 6, 2, 6, 4, 5, 6, 6, 3, 2, 3, 6, 2, 3, 3, 2, 5, 2, 6, 4, 6, 6, 5, 6, 5, 6, 5, 2, 4, 2, 4, 6, 5, 5, 3, 6, 2, 2, 5, 6, 4, 3, 5, 6, 3, 4, 6, 2, 2, 2, 4, 6, 4, 5, 6, 6, 4, 6, 2, 3, 6, 3, 5, 3, 5, 3, 3, 5, 3, 6, 2, 3, 4, 3, 6, 2, 6, 4, 2, 3, 6, 2, 3, 5, 6, 3, 2, 6, 5, 2, 3, 2, 6, 2, 4, 2, 5}
  6. Element(randomNosForB, Mod[questionCount, 100] + 1) → numB
  7. Shuffle(Sequence[Random[2, 8], i, 1, 100]) → randomNosForA, {3, 8, 6, 2, 2, 5, 7, 2, 5, 2, 6, 5, 4, 5, 4, 5, 3, 6, 6, 4, 8, 6, 8, 6, 4, 3, 3, 2, 4, 4, 7, 7, 8, 2, 8, 2, 3, 5, 8, 6, 5, 8, 6, 3, 6, 6, 3, 3, 4, 3, 6, 6, 2, 2, 6, 7, 2, 4, 8, 6, 8, 2, 2, 8, 7, 2, 8, 5, 5, 3, 4, 5, 3, 8, 2, 8, 3, 8, 4, 3, 5, 3, 7, 6, 5, 4, 8, 5, 6, 5, 5, 2, 4, 4, 6, 8, 8, 3, 7, 3}
  8. Element(randomNosForA, Mod[questionCount, 100] + 1) → zwischenNumA
  9. Mod(zwischenSolZaehler1, solNenner1) → zwischenSolZaehler2
  10. If(zwischenSolZaehler2 ≟ 0, zwischenNumA + 1, zwischenNumA) → numA
  11. Mod(solZaehler1, solNenner1) → solZaehler2
  12. Corner(text1, 3) → Corner1
  13. If(¬showhint, Corner1 + (0.8, 0), Corner1 + (0.3, 0)) → PosBox1
  14. Corner(text2, 3) → Corner2
  15. If(showhint, correctHint, input1 / input2 ≟ Dez1 ∨ ((input8 * input2) + input1) / input2 ≟ Dez1) → correct1
  16. Textfield(input1) → InputBox1
  17. Textfield(input2) → InputBox2
  18. If(solZaehler1 < solNenner1 ∨ ((input8 * input2) + input1) / input2 ≟ Dez1 ∧ input2 > input1, correct1, If[Mod[solZaehler1, solNenner1] ≟ 0, correct1 ∧ correct3, If[solZaehler1 > solNenner1, correct1 ∧ correct2 ∧ correct3]]) → correct
  19. Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, ptopleftcornerfeedback, ptoprightcornerfeedback, pbottomrightcornerfeedback, pbottomleftcornerfeedback
  20. If(¬showBoxes, Defined[(input1 * input2)], If[showBoxes ∧ showhint ∧ Mod[input6, input7] ≟ 0, Defined[((((input1 * input2) * input6) * input7) * input3)], If[showBoxes ∧ showhint ∧ Mod[input6, input7] ≠ 0 ∧ input6 > input7, Defined[((((((input1 * input2) * input3) * input4) * input5) * input6) * input7)], If[showBoxes ∧ showhint ∧ Mod[input6, input7] ≠ 0 ∧ input6 < input7, Defined[(((input1 * input2) * input6) * input7)], If[showBoxes ∧ Mod[input1, input2] ≟ 0, Defined[((input1 * input2) * input3)], If[showBoxes ∧ Mod[input1, input2] ≠ 0, Defined[((((input1 * input2) * input3) * input4) * input5)]]]]]]) → fixed
  21. Segment(Corner1 + (0.3, -0.63), Corner1 + (1.03, -0.63)) → f
  22. Textfield(input3) → InputBox3
  23. Textfield(input4) → InputBox4
  24. Textfield(input5) → InputBox5
  25. If(showBoxes ∧ input6 > input7, Corner2 + (3.2, -1.45), Corner2 + (1.71, -1.45)) → PbottomRightCornerFeedback_{1}
  26. If(showBoxes ∧ input6 > input7, Corner2 + (2.29, 0.17), Corner2 + (0.82, 0.17)) → PtopLeftCornerFeedback_{1}
  27. Polygon(PtopLeftCornerFeedback_{1}, PtopRightCornerFeedback_{1}, PbottomRightCornerFeedback_{1}, PbottomLeftCornerFeedback_{1}) → rectangleCorrect_{1}, ptopleftcornerfeedback_{1}, ptoprightcornerfeedback_{1}, pbottomrightcornerfeedback_{1}, pbottomleftcornerfeedback_{1}
  28. If(showBoxes ∧ input6 > input7, Corner2 + (2.2, -0.2), Corner2 + (0.78, -0.2)) → PtopLeftCornerFeedback_{2}
  29. If(showBoxes ∧ input6 > input7, Corner2 + (1.3, -1.05), Corner2 + (-0.05, -1.05)) → PbottomRightCornerFeedback_{2}
  30. Polygon(PtopLeftCornerFeedback_{2}, PtopRightCornerFeedback_{2}, PbottomRightCornerFeedback_{2}, PbottomLeftCornerFeedback_{2}) → rectangleCorrect_{2}, ptopleftcornerfeedback_{2}, ptoprightcornerfeedback_{2}, pbottomrightcornerfeedback_{2}, pbottomleftcornerfeedback_{2}
  31. If(showBoxes ∧ Mod[input1, input2] ≟ 0, Corner2 + (-0.5, -1.5), If[showBoxes ∧ Mod[input1, input2] ≠ 0, Corner2 + (-0.5, -1.5), Corner1 + (0, -1.5)]) → PointTextCorrect
  32. Textfield(input6) → InputBox6
  33. Textfield(input7) → InputBox7
  34. Segment(Corner2 + (0, -0.63), Corner2 + (0.7, -0.63)) → h
  35. If(showhint ∧ input6 > input7, Corner2 + (2.4, -0.8), Corner2 + (0.9, -0.8)) → Pos3
  36. If(showhint ∧ input6 > input7, Segment[Corner2 + (2.4, -0.63), Corner2 + (3.15, -0.63)], Segment[Corner2 + (0.91, -0.63), Corner2 + (1.63, -0.63)]) → g
  37. Polygon(PtopLeftCornerFeedback_{3}, PtopRightCornerFeedback_{3}, PbottomRightCornerFeedback_{3}, PbottomLeftCornerFeedback_{3}) → rectangleCorrect_{3}, ptopleftcornerfeedback_{3}, ptoprightcornerfeedback_{3}, pbottomrightcornerfeedback_{3}, pbottomleftcornerfeedback_{3}
  38. If(showhint ∧ input6 > input7, Corner2 + (2.4, 0), Corner2 + (0.9, 0)) → Pos2
  39. Textfield(input8) → InputBox0
  40. Segment(PosBox1 + (0.04, -0.63), PosBox1 + (0.7, -0.63)) → PosLine
  41. Numerator(Dez2) → KuerzZaehler
  42. Denominator(Dez2) → KuerzNenner
  43. If(showhint ∧ input6 > input7, Corner2 + (1.4, -0.4), If[showhint ∧ input6 ≟ input7, Corner2 + (1.4, -0.4), Corner2 + (0, -0.4)]) → Pos1

AI Drawing Prompt Reference

Draw a math problem showing the multiplication of a natural number and a mixed number. First, display randomly generated natural numbers and mixed numbers, with the mixed number represented by geometric shapes (like polygons). Then, use geometric methods (e.g., dividing and combining shapes) to show the multiplication process, converting the mixed number to an improper fraction and performing fraction multiplication. Finally, use text boxes to show inputs and explanations, and represent the calculation result with geometric shapes (like rectangles) to ensure the fraction is correct and simplified.
The prompt above was compiled from the original drawing commands and is for reference only.