Reading a Thermometer: Signed Temperatures with Integers

Reading a Thermometer: Signed Temperatures with Integers
Loading the math board and drawing, please wait…
2024-02-06 17:27
This GeoGebra lesson uses an interactive thermometer (with step-by-step/animated states) to demonstrate how to read the currently displayed temperature and write it correctly with the proper sign. The key math ideas are integer comparison and ordering (often linked to number-line intuition), interpreting positive/negative quantities, and translating “higher than / lower than” statements into correct inequality-based choices. Students answer multiple-choice and open questions such as writing compact temperature notation (e.g., “2 °C” vs “-2 °C”), finding values within a given range (e.g., between -20 °C and +30 °C), and selecting words like “higher” or “deeper” that match comparisons. Construction/interaction highlights include: using the thermometer object (thermometer) and display states (showthermo1, step, counters like excount/step index objects); collecting responses via dropdown menus and text input fields (DropDown1/2, input1/2) with correctness checks (correct1/correct2, plus correctA/B/C/D for options); rendering problem text and symbols with Textfield and LaTeX; and coordinating the sequence of questions/states using Sequence, Element, SelectedIndex, and an animation driver (anim1). Appropriate for grades ~5–6 and for classroom practice on number sense and signed integers.

GeoGebra Commands & Parameters

  1. SelectedIndex(DropDown1) → input1
  2. SelectedIndex(DropDown2) → input2
  3. Element({correctA, correctB, correctC, correctD}, excount2) → correctOption
  4. Sequence(K1 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK1
  5. Point(Line[pointsK1(1), yAxis]) → OK1
  6. If(¬correct1, (13.4, -1.25), (13.4, -2.05)) → C4
  7. If(¬correct2, (13.5, -1.25), (13.2, -2.05)) → C5
  8. Element({C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C7, C7, C7, C7, C7}, step - 1) → C
  9. Point(Line[A, xAxis]) → B
  10. Sequence(A + ((0.3 * abslinesAx), abslinesAy) + (0, (m * heightlines / numpoints1)), m, -3, 11) → points1
  11. Point(Line[points1(1), yAxis]) → O
  12. Element({O1a, O1b, O1c}, step - 3) → O1
  13. Textfield(input1) → Eingabefeld1
  14. Textfield(input2) → Eingabefeld2
  15. Zip(Segment[P, P + (linesize1a, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → lines1a
  16. Zip(Segment[P, P + (linesize1a, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → lines1b
  17. Join({Sequence[Text[(("\textsf\footnotesize{" * ReplaceAll["" + (m) + "", "-", "-- "]) * "}"), (x(A0) + 0.36, (0.39 * m) + y(A0) - 0.4), true, true, -0, 1], m, 0, 5], Sequence[Text[(("\textsf\footnotesize{" * ReplaceAll["" + (m) + "", "-", "-- "]) * "}"), (x(A0) + 0.23, (0.39 * m) + y(A0) - 0.4), true, true, -0, 1], m, -5, -1]}) → text1
  18. Element({D1, D2, D3, D4, D5, D6, D7, D7, D7, D7, D7, D7, D7}, step - 1) → D
  19. Rotate(C + (1, 0), (180 - 40)°, C) → Ca
  20. Rotate(C + (1, 0), (180 - 80)°, C) → Cb
  21. If(step ≟ 1, (8.9, -5.5), (12.56016, -5.5)) → E
  22. Point(Line[G, xAxis]) → H
  23. Point(Line[K1, xAxis]) → K2
  24. Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK10
  25. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK1a
  26. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK1b
  27. Sequence(K1 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints1
  28. Sequence(K2 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK2
  29. Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK20
  30. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK2a
  31. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK2b
  32. Sequence(K2 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints2
  33. Sequence(K3 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints3
  34. Sequence(K4 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints4
  35. Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK30
  36. Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK40
  37. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK3a
  38. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK4a
  39. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK3b
  40. Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK4b
  41. Sequence(K3 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK3
  42. Sequence(K4 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK4
  43. LaTeX(numY, true, true) → Text13
  44. Element({correctK1, correctK2, correctK3, correctK4}, step - 7) → correctK
  45. Element({pointsK1(9 + listNumsY(4)), pointsK2(9 + listNumsY(4)), pointsK3(9 + listNumsY(4)), pointsK4(9 + listNumsY(4))}, step - 7) → PK
  46. Point(buttonpoints1) → TK1
  47. Point(buttonpoints2) → TK2
  48. Point(buttonpoints3) → TK3
  49. Point(buttonpoints4) → TK4
  50. Element({TK1, TK2, TK3, TK4}, step - 7) → TK
  51. Sequence(K + (n * (0, fby)) + (n * (0, (-fbabstand))), n, 0, 3) → listfbpoints
  52. Element({optiona1, ¬optionb1, ¬optionc1, ¬optiond1}, excount2) → correctOption1
  53. Element({¬optiona2, ¬optionb2, optionc2, optiond2}, excount2) → correctOption2
  54. Element({¬optiona3, optionb3, ¬optionc3, optiond3}, excount2) → correctOption3
  55. Element({optiona4, ¬optionb4, ¬optionc4, ¬optiond4}, excount2) → correctOption4
  56. Point(Line[PicTermo2a, xAxis]) → PicTermo2b
  57. CircleArc(N, L, M) → c
  58. Zip(Segment[P, P + (linesize1b, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → lines10
  59. Point(Line[Q1, xAxis]) → Q2
  60. Sequence(P + (m * (0, (y(Q) - y(P)) / 10)), m, -2, 13) → points2
  61. Join({Sequence[Text[(("\textsf\footnotesize{" * ReplaceAll["" + (m) + "", "-", "-- "]) * "}"), (x(Q1) + 2.3, (0.434 * m) + y(Q1) + 3.5), true, true, -0, 1], m, 0, 5], Sequence[Text[(("\textsf\footnotesize{" * ReplaceAll["" + (m) + "", "-", "-- "]) * "}"), (x(Q1) + 2.18, (0.434 * m) + y(Q1) + 3.5), true, true, -0, 1], m, -5, -1]}) → text2

AI Drawing Prompt Reference

Draw an interactive thermometer showing integer temperatures with labeled scales. The thermometer should dynamically display temperature changes, allowing users to select temperature values via dropdown menus and text input. Include coordinate axes below the thermometer with numerical labels. Mark corresponding points on the axes for selected temperatures, using different colors for positive and negative values. Display correct temperature notation and comparison results based on user selections.
The prompt above was compiled from the original drawing commands and is for reference only.