Übung: Mini-Wetterstation
In dieser Übung baust du ein kleines Konsolenprogramm, das Messwerte einer Wetterstation verarbeitet. Du übst dabei den Umgang mit verschiedenen Datentypen und eindimensionalen Arrays.
Lernziele
- Variablen und Konstanten unterschiedlicher Datentypen verwenden
(
string,int,double,bool,char) - Werte mit
Console.ReadLineeinlesen und mitint.Parsebzw.double.Parseumwandeln (parsen) - Ein eindimensionales Array deklarieren, befüllen und mit einer Schleife durchlaufen
- Funktionen der
Math-Klasse einsetzen - Ergebnisse mit String-Interpolation schön ausgeben
Rahmenbedingungen
- Alles wird in einer einzigen
Program.csmit Top-Level Statements geschrieben. - Es werden keine eigenen Methoden/Funktionen definiert. Funktionen aus
der
Math-Klasse (z. B.Math.Round,Math.Min,Math.Max) dürfen verwendet werden. - Es werden nur eindimensionale Arrays verwendet (keine mehrdimensionalen oder Jagged Arrays).
Aufgabenstellung
Eine Wetterstation hat an 7 Tagen einer Woche jeweils die Mittagstemperatur in Grad Celsius gemessen. Dein Programm soll diese Messwerte erfassen und auswerten.
Schritt 1 – Einlesen
- Lies zu Beginn den Namen der Wetterstation ein (Datentyp
string). - Erstelle ein Array vom Typ
doublemit genau 7 Plätzen. - Frage den Benutzer nacheinander nach den 7 Temperaturen und speichere
jeden eingelesenen Wert an der passenden Stelle im Array.
Beispielausgabe vor jeder Eingabe:
Temperatur für Tag 1: - Tipp:
Console.ReadLineliefert immer einenstring. Wandle ihn mitdouble.Parse(...)in eine Kommazahl um.
Schritt 2 – Auswertung
Berechne aus den Werten im Array:
- die Summe aller Temperaturen,
- den Durchschnitt (Mittelwert) der Woche,
- die höchste gemessene Temperatur,
- die niedrigste gemessene Temperatur.
💡 Für die höchste und niedrigste Temperatur kannst du dir je eine Hilfsvariable merken, die du beim Durchlaufen des Arrays laufend mit
Math.Max(...)bzw.Math.Min(...)aktualisierst.
Schritt 3 – Ausgabe
Gib einen kleinen Wetterbericht aus. Verwende dabei:
- den eingelesenen Stationsnamen,
- die Summe,
- den Durchschnitt, auf eine Nachkommastelle gerundet
(
Math.Round(..., 1)), - die höchste und niedrigste Temperatur,
- einen
bool-Wert, der angibt, ob es in dieser Woche einen Frosttag gab (also mindestens eine Temperatur unter0). Gib z. B. aus:Frosttag in dieser Woche: True.
Verwende für die Ausgabe String-Interpolation ($"...").
Beispiel-Programmablauf
Name der Wetterstation: Krems-Zentrum
Temperatur für Tag 1: 12.5
Temperatur für Tag 2: 9
Temperatur für Tag 3: -2.5
Temperatur für Tag 4: 4
Temperatur für Tag 5: 7.5
Temperatur für Tag 6: 11
Temperatur für Tag 7: 13.5
=== Wetterbericht: Krems-Zentrum ===
Summe aller Temperaturen: 55 °C
Durchschnitt: 7.9 °C
Höchste Temperatur: 13.5 °C
Niedrigste Temperatur: -2.5 °C
Frosttag in dieser Woche: True
(Die genaue Formatierung darfst du selbst gestalten – wichtig ist, dass alle geforderten Werte vorkommen.)
Bonusaufgaben
- Wochentage statt Zahlen: Lege ein zweites Array vom Typ
stringan, das die 7 Wochentagsnamen enthält ("Montag","Dienstag", …). Frage beim Einlesen nach der Temperatur für den jeweiligen Wochentagsnamen statt nachTag 1,Tag 2, … - Wärmster Tag: Gib zusätzlich aus, an welchem Wochentag die höchste Temperatur gemessen wurde (merke dir dazu beim Durchlaufen den passenden Index).
- Schwankung: Berechne und gib die Temperaturschwankung der Woche aus (höchste minus niedrigste Temperatur).
- Kommazahlen erlauben: Stelle sicher, dass auch Eingaben wie
8.5korrekt verarbeitet werden. Falls bei dir das Parsen scheitert, probiere einmal8,5(mit Komma) aus und überlege, warum sich das Verhalten je nach Spracheinstellung unterscheidet.
Hinweise & erlaubte Werkzeuge
- Erlaubt sind: Variablen, Konstanten, alle bekannten Datentypen,
Console.WriteLine/Console.Write/Console.ReadLine,int.Parse/double.Parse,if/else,switch, alle Schleifen (for,foreach,while,do-while), eindimensionale Arrays, String-Interpolation und dieMath-Klasse. - Noch nicht erlaubt (kommt später): eigene Methoden/Funktionen, mehrdimensionale Arrays, Jagged Arrays.
- Achte auf sinnvolle Variablennamen und ein paar erklärende Kommentare.