Two-Digit Subtraction Interactive Demo

Two-Digit Subtraction Interactive Demo
Loading the math board and drawing, please wait…
2018-05-03 01:44
① This GeoGebra example demonstrates the vertical subtraction of two-digit numbers, visually showing the borrowing process in the ones and tens places. ② Core math concepts include integer subtraction, place value (ones/tens), and borrowing rules, involving arithmetic operations and digit decomposition. ③ Construction highlights: Textfield inputs for minuend and subtrahend, Mod and Div to extract digits, If and Sequence to manage borrowing logic, Segment and Corner to build the vertical layout, and buttons (button1_1 etc.) to trigger steps; objects include mtens, nunits, diff, atens, etc., enabling interactive step-by-step demonstration. ④ Suitable for lower elementary grades (1-3) math teaching, classroom demonstration, or self-practice, helping students understand the reasoning behind subtraction algorithms.

GeoGebra Commands & Parameters

  1. Div(diff, 10) → atens
  2. Segment(A, B) → f
  3. If(nunits > munits, mtens - 1, mtens) → ntensmax
  4. If(ntens ≟ mtens, munits - 1, 9) → nunitsmax
  5. Sequence(Polygon[{C' + (0, i), C' + (1, i), C' + (1, i + 1), C' + (0, i + 1)}], i, 0, munits - 1) → L_1
  6. Sequence(Polygon[{D + (0, i), D + (1, i), D + (1, i + 1), D + (0, i + 1)}], i, 0, nunits - 1) → L_3
  7. Sequence(Sequence[Polygon[{D + (((-(1 + d)) * j), i), D + (1 - ((1 + d) * j), i), D + (1 - ((1 + d) * j), i + 1), D + (((-(1 + d)) * j), i + 1)}], i, 0, 9], j, 1, ntens) → L_4
  8. If(nunits > munits, C' + (-2, 10), C' + (0, munits)) → C0
  9. If((t2 * nunits) ≤ munits, (0, 0), (-2, 10 - munits)) → C1
  10. Segment(E, F) → g
  11. Sequence(Sequence[Polygon[{C' + (((-(1 + d)) * j), i), C' + (1 - ((1 + d) * j), i), C' + (1 - ((1 + d) * j), i + 1), C' + (((-(1 + d)) * j), i + 1)}], i, 0, 9], j, 2, mtens) → L_2
  12. Sequence(Polygon[{C' + ((-(1 + d)), i), C' + (1 - (1 + d), i), C' + (1 - (1 + d), i + 1), C' + ((-(1 + d)), i + 1)}], i, 0, 9) → L_7
  13. Sequence(Segment[D0 + (-0.2, (-j) - 0.2), D0 + (1.2, (-(j - 1)) + 0.2)], j, 1, (t2 * nunits)) → L_5
  14. Corner(text1, 1) → G
  15. Corner(text1, 3) → H
  16. Segment(G + (0, (y(H) - y(G)) / 4), H + (0, (y(G) - y(H)) / 6)) → h
  17. Segment(I - (0.02, 0.2), I + (1.02, 10.2)) → i
  18. Segment(J - (0.02, 0.2), J + (1.02, 10.2)) → j
  19. Mod(diff, 10) → aunits
  20. Sequence(Polygon[{C2 + (0, i), C2 + (1, i), C2 + (1, i + 1), C2 + (0, i + 1)}], i, 0, If[nunits > munits, 10 - nunits - 1, munits - nunits - 1]) → L_{10}
  21. Sequence(Sequence[Polygon[{C2' + (((-(1 + d)) * j), i), C2' + (1 - ((1 + d) * j), i), C2' + (1 - ((1 + d) * j), i + 1), C2' + (((-(1 + d)) * j), i + 1)}], i, 0, 9], j, 1, atens) → L_{12}
  22. Textfield(ansunits) → InputBox1
  23. Textfield(anstens) → InputBox2
  24. Corner(text2, 1) → L
  25. Corner(text2, 3) → M
  26. Segment(L + (0, (y(M) - y(L)) / 4), M + (0, (y(L) - y(M)) / 6)) → k
  27. If(ansunits ≟ "", true, false) → notinput1
  28. If(ansunits ≟ aunits', true, false) → correct1
  29. If(anstens ≟ "", true, false) → notinput2
  30. If(anstens ≟ atens', true, false) → correct2
  31. If(nunits > munits, 1, 0) → s1
  32. If(nunits > 0, 1, 0) → s2
  33. If(aunits > 0, 1, 0) → s3
  34. If(ntens > 0, 1, 0) → s4
  35. If(atens > 0, 1, 0) → s5
  36. If(t1 + t2 + t3 + t4 + t5 ≟ s1 + s2 + s3 + s4 + s5, true, false) → finished
  37. Sequence(Translate[j, Vector[(k * Vector[(-2, 0)])]], k, 0, (t4 * ntens) - 1) → L_9
  38. Sequence(Translate[i, Vector[(j * Vector[(-2, 0)])]], j, 0, (t4 * ntens) - 1) → L_8
  39. Sequence(Segment[C0 + (-0.2, (-j) - 0.2), C0 + (1.2, (-(j - 1)) + 0.2)], j, 1, (t2 * nunits)) → L_6
  40. Sequence(Polygon[{C3' + (0, i), C3' + (1, i), C3' + (1, i + 1), C3' + (0, i + 1)}], i, 0, munits - 1) → L_{14}

AI Drawing Prompt Reference

Draw a two-digit subtraction vertical demonstration with input boxes for minuend and subtrahend, showing the borrowing process in the tens and ones places. Start by drawing two input boxes, then based on the input numbers, draw the tens and ones parts of the vertical layout, use segments to indicate borrowing, and use rectangles to represent the digits. Finally, add buttons to control the step-by-step display.
The prompt above was compiled from the original drawing commands and is for reference only.