Percentages: Selling Problems, Profit & Loss

Percentages: Selling Problems, Profit & Loss
Loading the math board and drawing, please wait…
2020-08-26 10:37
This example demonstrates percentage calculations in sales problems, focusing on profit and loss computation. Core mathematical concepts include percentage calculation, profit margin, loss percentage, and basic geometric construction. Key GeoGebra commands used are Point, Polygon, Intersect, Sequence, Textfield, Midpoint, If, and Segment. The construction involves creating geometric shapes, generating data sequences, applying conditional logic for changes, and drawing lines and segments. Suitable for middle school or high school mathematics education, it helps students understand practical applications of percentages and geometric drawing.

GeoGebra Commands & Parameters

  1. Point(yAxis) → A
  2. Point(yAxis) → B
  3. Point(Segment[A, A + ((length * maxchange), 0)]) → P
  4. Point(Segment[A + (0, width), A + ((length * maxchange), width)]) → Q
  5. Polygon(A, P, P + (0, width), A + (0, width)) → poly1, poly1a, poly1d, poly1b, poly1c
  6. Polygon(B, B + (length, 0), B + (length, width), B + (0, width)) → poly2, poly2b, poly2a, poly2c, poly2d
  7. Intersect(Ray[P, P + (1, 0)], x = length) → A1
  8. Intersect(Ray[Q, Q + (1, 0)], x = length) → A2
  9. Intersect(Ray[B1, B1 + (1, 0)], x = x(P)) → P'
  10. Intersect(Ray[B2, B2 + (1, 0)], x = x(P)) → Q'
  11. Polygon(P, Q, A2, A1) → poly3, poly3b, poly3b_1, poly3d, poly3c
  12. Polygon(B1, B2, Q', P') → poly4, poly4c, poly4d, poly4b, poly4a
  13. Sequence(Segment[B + ((i * length / 10), 0), B + ((i * length / 10), width)], i, 1, 9) → list1
  14. Sequence(Sequence[Segment[B + ((j * length / 100) + (i * length / 10), 0), B + ((j * length / 100) + (i * length / 10), width)], j, 1, 9], i, 0, 9) → list2
  15. Sequence(Segment[A + ((i * length / 10), 0), A + ((i * length / 10), width)], i, 1, 9) → list3
  16. Sequence(Sequence[Segment[A + ((j * length / 100) + (i * length / 10), 0), A + ((j * length / 100) + (i * length / 10), width)], j, 1, 9], i, 0, 9) → list4
  17. Textfield(cost) → inputBox1
  18. Textfield(cost) → inputBox2
  19. Midpoint(B, B2) → C
  20. Midpoint(A, Q) → D
  21. Midpoint(P, A2) → E
  22. Midpoint(B1, Q') → F
  23. Midpoint(B1, Q') → G
  24. Textfield(price) → inputBox3
  25. Midpoint(P, A1) → H
  26. Midpoint(poly4a) → I
  27. Midpoint(poly3b_1) → J
  28. Midpoint(poly4d) → K
  29. If(o_2, "$ y", "$" + cost) → text9
  30. If(o_2, "$ y", "$" + cost) → text4
  31. If(o_3, "y %", (abs(change_%) * "%")) → text11
  32. If(o_1, "$ y", "$" + price) → text13
  33. If(change_% < 0, "-", "+") → text24
  34. If(o_3, "y %", (abs(change_%) * "%")) → text17
  35. If(o_3, (("1 " * text24) * " y %"), "1 " + ((((text24 * " ") * abs(change_%)) * "%"))) → text34
  36. If(o_3, (("1 " * text24) * " y %"), "1 " + ((((text24 * " ") * abs(change_%)) * "%"))) → text14
  37. If(o_1 ∨ o_4, If[o_1, "$ y", (((cost * " ") * text24) * " $ y")], "$" + price) → text12
  38. If(o_4, (((cost * " ") * text24) * " $ y"), "$" + price) → text15
  39. Textfield(price) → inputBox4
  40. Segment(B + (0, width), A) → g
  41. Segment(B2, A + (length, 0)) → i
  42. Segment(P, If[x(P) < length, Intersect[poly2c, x = x(P)], Intersect[poly4d, x = x(P)]]) → h
  43. Sequence(Segment[A + ((i * length / 10), 0), A + ((i * length / 10), width)], i, 1, floor((x(P) / length * 10))) → list3_1
  44. Sequence(Sequence[Segment[A + ((j * length / 100) + (i * length / 10), 0), A + ((j * length / 100) + (i * length / 10), width)], j, 1, 9], i, 0, floor((x(P) / length * 10)) - 1) → list4_1
  45. Sequence(Segment[B + ((i * length / 10), 0), B + ((i * length / 10), width)], i, 1, floor((x(P) / length * 10))) → list5
  46. Sequence(Sequence[Segment[B + ((j * length / 100) + (i * length / 10), 0), B + ((j * length / 100) + (i * length / 10), width)], j, 1, 9], i, 0, floor((x(P) / length * 10)) - 1) → list6_1
  47. Sequence(Segment[A + ((j * length / 100) + (floor((x(P) / length * 10)) * length / 10), 0), A + ((j * length / 100) + (floor((x(P) / length * 10)) * length / 10), width)], j, 1, floor(((x(P) - (floor((x(P) / length * 10)) * length / 10)) / length * 100))) → list4_2
  48. Sequence(Segment[B + ((j * length / 100) + (floor((x(P) / length * 10)) * length / 10), 0), B + ((j * length / 100) + (floor((x(P) / length * 10)) * length / 10), width)], j, 1, floor(((x(P) - (floor((x(P) / length * 10)) * length / 10)) / length * 100))) → list6_2
  49. If(b ∧ change_% < 0, "Loss", "Discount") → text8
  50. If(b, "Cost", "Marked Price") → text6

AI Drawing Prompt Reference

Draw a rectangular area divided into two parts, one for cost and the other for price. In the cost part, draw a series of vertical segments to represent cost changes, and in the price part, draw a series of vertical segments to represent price changes. Draw two diagonal lines between the two rectangles to represent the conversion relationship between cost and price. Draw some auxiliary line segments inside the rectangles to indicate the range of cost and price changes. Add text boxes on the rectangles to input specific values for cost and price.
The prompt above was compiled from the original drawing commands and is for reference only.