Ü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.ReadLine einlesen und mit int.Parse bzw. double.Parse umwandeln (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.cs mit 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 double mit 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.ReadLine liefert immer einen string. Wandle ihn mit double.Parse(...) in eine Kommazahl um.

Schritt 2 – Auswertung

Berechne aus den Werten im Array:

  1. die Summe aller Temperaturen,
  2. den Durchschnitt (Mittelwert) der Woche,
  3. die höchste gemessene Temperatur,
  4. 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 unter 0). 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

  1. Wochentage statt Zahlen: Lege ein zweites Array vom Typ string an, das die 7 Wochentagsnamen enthält ("Montag", "Dienstag", …). Frage beim Einlesen nach der Temperatur für den jeweiligen Wochentagsnamen statt nach Tag 1, Tag 2, …
  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).
  3. Schwankung: Berechne und gib die Temperaturschwankung der Woche aus (höchste minus niedrigste Temperatur).
  4. Kommazahlen erlauben: Stelle sicher, dass auch Eingaben wie 8.5 korrekt verarbeitet werden. Falls bei dir das Parsen scheitert, probiere einmal 8,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 die Math-Klasse.
  • Noch nicht erlaubt (kommt später): eigene Methoden/Funktionen, mehrdimensionale Arrays, Jagged Arrays.
  • Achte auf sinnvolle Variablennamen und ein paar erklärende Kommentare.