# Independent Scenario: Monitoring Readings

- **Track:** Cambridge IGCSE™ Computer Science (0478 / 0984) (CAMBRIDGE IGCSE 0478)
- **Module:** Section 7: Algorithm Design & Problem-Solving
- **Estimated Duration:** 30 minutes
- **Access:** Open Theory (All-Access for Interactive IDE &amp; Autotests)

---

## Theory & Conceptual Background

Work on paper first. List the input, processing, output and storage; choose your variables and explain your algorithm before opening the editor. You have already studied selection, loops, arrays, totals and extrema. This task combines them in a new setting.

## Requirements

A community workshop records six integer temperature readings. Values from 10 to 30 inclusive are within the desired range. Report the count outside that range, the lowest reading and the highest reading, in that order. Every reading must influence the report. Temperatures can be negative or large: do not initialise extrema with guessed boundaries.

## Plan and review

Choose a loop and initialise state from actual data. On paper test readings at 9,10,30,31; then test all readings equal. Explain why the boundary comparisons are inclusive. After solving, compare your program against the requirements, not against a particular variable naming scheme.

For an exam rehearsal, allow about 30 minutes and avoid hints until you have a complete attempt. The automated tests check behaviour; they do not assign an official Cambridge mark for your written design.

---

## Interactive Exercises & Autotest Specifications

### Exercise 1: Independent Scenario: Workshop readings (Pseudocode, 30 XP)

**Instructions:**
Read six integer temperatures. Output the number outside inclusive range 10..30, then the minimum, then the maximum. Select your own algorithm and identifiers.

Write a complete program. Read inputs in the stated order. Output only the requested results, one per line, without input prompts. Test with your own values before submitting.


**Starter Code:**
```text
// Plan your solution, then write your program.

```

**Autotest Expectations:**
- **Both boundaries**: `test_case` -> Expected: `{&quot;inputs&quot;:[9,10,30,31,20,20],&quot;output&quot;:&quot;2\n9\n31&quot;}`
- **All equal**: `test_case` -> Expected: `{&quot;inputs&quot;:[15,15,15,15,15,15],&quot;output&quot;:&quot;0\n15\n15&quot;}`
- **All negative**: `test_case` -> Expected: `{&quot;inputs&quot;:[-8,-7,-6,-5,-4,-3],&quot;output&quot;:&quot;6\n-8\n-3&quot;}`
- **Large values**: `test_case` -> Expected: `{&quot;inputs&quot;:[10000,11000,12000,13000,14000,15000],&quot;output&quot;:&quot;6\n10000\n15000&quot;}`

