Reading a Thermometer: Signed Temperatures with Integers
Loading the math board and drawing, please wait…
In collections
Negative Zahlen - Einführung
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
SelectedIndex(DropDown1) → input1SelectedIndex(DropDown2) → input2Element({correctA, correctB, correctC, correctD}, excount2) → correctOptionSequence(K1 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK1Point(Line[pointsK1(1), yAxis]) → OK1If(¬correct1, (13.4, -1.25), (13.4, -2.05)) → C4If(¬correct2, (13.5, -1.25), (13.2, -2.05)) → C5Element({C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C7, C7, C7, C7, C7}, step - 1) → CPoint(Line[A, xAxis]) → BSequence(A + ((0.3 * abslinesAx), abslinesAy) + (0, (m * heightlines / numpoints1)), m, -3, 11) → points1Point(Line[points1(1), yAxis]) → OElement({O1a, O1b, O1c}, step - 3) → O1Textfield(input1) → Eingabefeld1Textfield(input2) → Eingabefeld2Zip(Segment[P, P + (linesize1a, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → lines1aZip(Segment[P, P + (linesize1a, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → lines1bJoin({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]}) → text1Element({D1, D2, D3, D4, D5, D6, D7, D7, D7, D7, D7, D7, D7}, step - 1) → DRotate(C + (1, 0), (180 - 40)°, C) → CaRotate(C + (1, 0), (180 - 80)°, C) → CbIf(step ≟ 1, (8.9, -5.5), (12.56016, -5.5)) → EPoint(Line[G, xAxis]) → HPoint(Line[K1, xAxis]) → K2Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK10Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK1aZip(Segment[P, P + (linesize2a, 0)], P, Sequence[K1 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK1bSequence(K1 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints1Sequence(K2 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK2Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK20Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK2aZip(Segment[P, P + (linesize2a, 0)], P, Sequence[K2 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK2bSequence(K2 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints2Sequence(K3 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints3Sequence(K4 + ((2.1 * abslinesBx), abslinesBy + 0.25) + (0, (m * heightlinesB / numpoints1)), m, 0, 10) → buttonpoints4Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK30Zip(Segment[P, P + (linesize2b, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → linesK40Zip(Segment[P, P + (linesize2a, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK3aZip(Segment[P, P + (linesize2a, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, ceil((numpoints1 * 0.5)), numpoints1 - 1]) → linesK4aZip(Segment[P, P + (linesize2a, 0)], P, Sequence[K3 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK3bZip(Segment[P, P + (linesize2a, 0)], P, Sequence[K4 + (abslinesBx, abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, 0, floor((numpoints1 * 0.5)) - 1]) → linesK4bSequence(K3 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK3Sequence(K4 + ((0.3 * abslinesBx), abslinesBy) + (0, (m * heightlinesB / numpoints1)), m, -3, 11) → pointsK4LaTeX(numY, true, true) → Text13Element({correctK1, correctK2, correctK3, correctK4}, step - 7) → correctKElement({pointsK1(9 + listNumsY(4)), pointsK2(9 + listNumsY(4)), pointsK3(9 + listNumsY(4)), pointsK4(9 + listNumsY(4))}, step - 7) → PKPoint(buttonpoints1) → TK1Point(buttonpoints2) → TK2Point(buttonpoints3) → TK3Point(buttonpoints4) → TK4Element({TK1, TK2, TK3, TK4}, step - 7) → TKSequence(K + (n * (0, fby)) + (n * (0, (-fbabstand))), n, 0, 3) → listfbpointsElement({optiona1, ¬optionb1, ¬optionc1, ¬optiond1}, excount2) → correctOption1Element({¬optiona2, ¬optionb2, optionc2, optiond2}, excount2) → correctOption2Element({¬optiona3, optionb3, ¬optionc3, optiond3}, excount2) → correctOption3Element({optiona4, ¬optionb4, ¬optionc4, ¬optiond4}, excount2) → correctOption4Point(Line[PicTermo2a, xAxis]) → PicTermo2bCircleArc(N, L, M) → cZip(Segment[P, P + (linesize1b, 0)], P, Sequence[A + (abslinesAx, abslinesAy) + (0, (m * heightlines / numpoints1)), m, floor((numpoints1 * 0.5)), floor((numpoints1 * 0.5))]) → lines10Point(Line[Q1, xAxis]) → Q2Sequence(P + (m * (0, (y(Q) - y(P)) / 10)), m, -2, 13) → points2Join({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.