Informatik-LK

Zeit bis zur nächsten Klausur :

Tage
Stunden
Minuten
Sekunden
Bald!

Java-Code

 04.10.2021 – Buch, Seite 54 Aufgabe 2: Klasse Wetterstation

				
					public class Wetterstation
{
    private double[][] wetterdaten;
    private WetterdatenSammlung datensammlung;
    private String[] wochentage;
    private String[] uhrzeiten;

    public Wetterstation()
    {
        datensammlung = new WetterdatenSammlung();
        wetterdaten = datensammlung.getWetterdaten();
        wochentage = new String[]{"Donnerstag", "Freitag", "Samstag", "Sonntag", "Montag", "Dienstag", "Mittwoch"};
        uhrzeiten = new String[24];
        for (int j=0; j<wetterdaten[1].length;j++)
        {
            uhrzeiten[j] = j +":00 Uhr";
        }
    }

    public void allesAusgeben(){
        System.out.println("Hier kommen die Wetterdaten der Woche 23.09 - 29.09.2021!");
        System.out.println(""); //Zeilenumbruch
        datenAusgeben();
        durchschnittstemperaturTag();
        System.out.println(""); //Zeilenumbruch
        durchschnittstemperaturWoche();
        System.out.println(""); //Zeilenumbruch
        waermsteStunde();
        kaeltesteStunde();
        System.out.println(""); //Zeilenumbruch
        durchschnittstemperaturWoche8Uhr();
        durchschnittstemperaturWoche12Uhr();
        durchschnittstemperaturWoche18Uhr();
    }

    public void durchschnittstemperaturTag()
    {
        for(int i = 0; i<wochentage.length; i++){ //Schleife durchläuft die Wochentage im wochentag-Array (Zeilen)
            double durchschnitt = 0; //Durchschnitt wird am Anfang jedes Schleifendurchlaufs pro Zeile gleich null gesetzt

            for(int j = 0; j<24; j++){ //Schleife durchläuft die 23 Stunden pro Wochentag (pro Zeile)
                durchschnitt = durchschnitt + wetterdaten[i][j]; //Die Temperaturen pro Stunde werden addiert
            }

            durchschnitt = durchschnitt/24; //Der Durchschnitt wird gebildet
            //Pro Wochentag wird der Durchschnitt mit einer Nachkommastelle ein Mal ausgegeben
            System.out.println("Durchschnittstemperatur am " + wochentage[i] + ": " + String.format("%,.1f",durchschnitt) + " Grad");
        }
    }

    public void durchschnittstemperaturWoche()
    {
        double durchschnitt = 0; //Durchschnitt wird am Anfang gleich null gesetzt (und damit Initialisiert)
        for(int i = 0; i<wochentage.length; i++){ //Schleife durchläuft die Wochentage im wochentag-Array (Zeilen)
            for(int j = 0; j<24; j++){ //Schleife durchläuft die 23 Stunden pro Wochentag (pro Zeile)
                durchschnitt = durchschnitt + wetterdaten[i][j]; //Die Temperaturen pro Stunde werden addiert
            }
        }
        durchschnitt = durchschnitt / (24 * wochentage.length); //Der Durchschnitt wird gebildet
        //(Summe aller Temperaturen / Anzahl Wochentage * 24 Stunden)

        //Ausgabe des Durchschnitts der Woche
        System.out.println("Durchschnittstemperatur für die gesamte Woche: " + String.format("%,.1f",durchschnitt) + " Grad");
    }

    public void waermsteStunde()
    { 
        double maximum = wetterdaten[0][0]; //Maximum ist erstmal der erste Wetterdateneintrag
        int k = 0; //Variable wird hier deklariert, damit man in der ganzen Methode darauf zugreifen kann und nicht nur in der Schleife
        int l = 0; //k und l, um den Index der höchsten Temperatur zu merken
        for(int i = 0; i<wochentage.length; i++){ //Schleife durchläuft die Wochentage im wochentag-Array (Zeilen)
            for(int j = 0; j<24; j++){ //Schleife durchläuft die 23 Stunden pro Wochentag (pro Zeile)
                if(wetterdaten[i][j] > maximum){
                    maximum = wetterdaten[i][j];
                    k = i; //Der Index des Wochentags der Maximalen Temperatur wird sich gemerkt (Zeile i)
                    l = j; //Der Index der Stunde der Maximalen Temperatur wird sich gemerkt (Spalte j)
                }
            }
        }
        System.out.println("Der wärmste Zeitpunkt war " + wochentage[k] + ", " + uhrzeiten[l] + " mit " + wetterdaten[k][l] + " Grad");
    }

    public void kaeltesteStunde()
    {
        double minimum = wetterdaten[0][0]; //Minimum ist erstmal der erste Wetterdateneintrag
        int k = 0; //Variable wird hier deklariert, damit man in der ganzen Methode darauf zugreifen kann und nicht nur in der Schleife
        int l = 0; //k und l, um den Index der niedrigsten Temperatur zu merken
        for(int i = 0; i<wochentage.length; i++){ //Schleife durchläuft die Wochentage im wochentag-Array (Zeilen)
            for(int j = 0; j<24; j++){ //Schleife durchläuft die 23 Stunden pro Wochentag (pro Zeile)
                if(wetterdaten[i][j] < minimum){ //Das < hier ist der einzige Unterschied zwischen den beiden Methoden
                    minimum = wetterdaten[i][j];
                    k = i; //Der Index des Wochentags der Niedrigsten Temperatur wird sich gemerkt (Zeile i)
                    l = j; //Der Index der Stunde der Niedrigsten Temperatur wird sich gemerkt (Spalte j)
                }
            }
        }
        System.out.println("Der kälteste Zeitpunkt war " + wochentage[k] + ", " + uhrzeiten[l] + " mit " + wetterdaten[k][l] + " Grad");
    }

    public void durchschnittstemperaturWocheumXUhr(int pUhrzeit)
    {
        double durchschnitt = 0; //Durchschnitt wird am Anfang gleich null gesetzt (und damit Initialisiert)
        for(int i = 0; i<wochentage.length; i++){ //Schleife durchläuft die Wochentage im wochentag-Array (Zeilen)
            durchschnitt = durchschnitt + wetterdaten[i][pUhrzeit]; //Die Temperaturen pro Stunde werden addiert
        }
        durchschnitt = durchschnitt / wochentage.length; //Der Durchschnitt wird gebildet
        //(Summe aller Temperaturen der gewählten Stunde / Anzahl Wochentage)

        //Ausgabe des Durchschnitts der Woche
        System.out.println("Durchschnittstemperatur der gesamten Woche um " + uhrzeiten[pUhrzeit] + ": " + String.format("%,.1f",durchschnitt) + " Grad");
    }

    public void durchschnittstemperaturWoche8Uhr()
    {
        durchschnittstemperaturWocheumXUhr(8);
    }

    public void durchschnittstemperaturWoche12Uhr()
    {
        durchschnittstemperaturWocheumXUhr(12);
    }

    public void durchschnittstemperaturWoche18Uhr()
    {
        durchschnittstemperaturWocheumXUhr(18);
    }

    public void datenAusgeben()
    {
        System.out.print(String.format("%11s"," " )+ " " + "|");
        for(int j=0; j<24; j++)
        {
            System.out.print(String.format("%11s", uhrzeiten[j] )+ " " + "|");
        }
        System.out.println("");

        for(int i=0; i<7; i++)
        {   
            System.out.print(String.format("%11s", wochentage[i]) + " " + "|");
            for(int j=0; j<24; j++)
            {
                System.out.print(String.format("%11s",wetterdaten[i][j]) + " " + "|");
            }
            System.out.println("   ");
        }
        System.out.println(" " );
    }
}