Indholdsfortegnelse

Arrays #2

Øvelse 1: Temperaturmåling over en uge

Lav et program, der først registrerer(indlæser via console) temperaturmålinger for en uge og derefter analyserer dem. Programmet skal bruge et array til at gemme syv temperaturmålinger (en for hver dag i ugen).

Programmet skal kunne:

  1. Beregne og udskrive gennemsnitstemperaturen.
  2. Finde og udskrive den højeste og laveste temperatur.
  3. Udskrive de daglige målinger i rækkefølge. (mandag til og med søndag)

Forventet Output

Hvis inputdataene er:

Mandag: 14.3, Tirsdag: 17.1, Onsdag: 15.6, Torsdag: 19.5, Fredag: 20.4, Lørdag: 18.9, Søndag: 16.3

Så skal outputtet være:

Temperaturmålinger for ugen:
Mandag: 14.3 °C
Tirsdag: 17.1 °C
Onsdag: 15.6 °C
Torsdag: 19.5 °C
Fredag: 20.4 °C
Lørdag: 18.9 °C
Søndag: 16.3 °C
 
Gennemsnitstemperatur: 17.44 °C
Højeste temperatur: 20.4 °C
Laveste temperatur: 14.3 °C

Øvelse 2 : Analyse af data fra en sensorenhed

CO₂-niveauer i indendørs miljøer, som klasselokaler, måles typisk i parts per million (ppm).
Udendørs vil man typisk finde en koncentration af CO2 i luften på ca. 380 ppm (parts per million=0,038% pr. m3), men det varierer afhængigt af årstiden.
Indendørs har Arbejdstilsynet sat en indikatorværdi for CO2-indhold i luften til 1000 ppm, men et klasselokale er ofte meget ujævnt belastet. Eksempelvis kan én lektion gennemføres uden afbrydelser, mens man i andre lektioner kan man have opdelt eleverne i mindre grupper.
Bygningsreglementet sætter en grænseværdi på 1000 ppm ved almindelig drift i skoler og daginstitutioner samt på kontorer. For eksempel skal ventilationsanlægget i et undervisningslokale kunne holde CO2-niveauet under 1000 ppm hele dagen ved en belastning fra 24 børn og 2 lærere. Der kan og må optræde enkeltstående situationer, hvor CO2-niveauet alligevel er over 1000 ppm, for eksempel hvis der er højere aktivitet, flere personer på besøg i klassen eller længere anvendelsestid end forudsat.1)

I denne opgave skal du lave et program, der simulerer dataindsamling fra en $CO_2$-sensor i et klasseværelse. Programmet skal analysere data fra 24 målinger, én pr. time over en hel skoledag (eller et døgn), og finde:

Kravspecifikation

Det kan være lidt tricky at holde styr på de tre højeste målinger.
Hvad er udfordringen?
Tal med din siddemakker om hvordan du/i gør dette. Lav evt. pseudokode / flowchart.

Realistisk CO₂-data-eksempel

For at simulere realistisk $CO_2$-data, kan vi forestille os, at niveauerne stiger i løbet af dagen, når flere mennesker opholder sig i lokalet. $CO_2$-niveauerne kan stige fra omkring 500 ppm om morgenen til over 1500 ppm i løbet af en skoledag, især hvis der ikke er god ventilation.

Eksempel på sensor data i ppm:

[500, 520, 550, 580, 650, 700, 850, 1100, 1250, 1400, 1600, 1650, 1700, 1800, 1850, 1600, 1400, 1300, 1250, 1150, 1100, 1050, 950, 600]

Forventet Output

Hvis inputdataene er ovenstående, kunne programmet eksempelvis give følgende output:

Gennemsnitlig CO₂-koncentration: 1129 ppm
Antal målinger over 1000 ppm: 13
Top 3 målinger:
  1850 ppm (time 14)
  1800 ppm (time 13)
  1700 ppm (time 12)

Øvelse 3: Enkelt kryptering og dekryptering af tekst

Lav en simpel kryptering og dekryptering af en tekst ved at forskyde hver karakter i teksten med et bestemt antal skridt (f.eks. +3). Dette kaldes også en Ceasar chipher.

Programmet skal kunne:

Kravspecifikation

Forventet Output

Hvis input er:

Input tekst: "HELLO"
Forskydning: 3

Så skal outputtet være:

Krypteret tekst: KHOOR

Hint: Brug af ASCII-værdier.
Hver karakter har en tilknyttet ASCII-værdi (et tal, der repræsenterer karakteren). For at kryptere en karakter, kan du lægge forskydningen til ASCII-værdien for den oprindelige karakter.
For eksempel, hvis forskydningen er 3, og du har karakteren 'a' (ASCII-værdi 97), så bliver den nye karakter 'd' (ASCII-værdi 100), da 97 + 3 = 100.

Eksempel hvor 'K' bliver til 'N'.

 char nyKarakter = (char)('K' + 3);