zur nächsten Seite  zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Siehe unten


Vollständige Methoden

Die vollständigen Methoden scannen die Arrays, dabei zählen und fügen sie nur die gültigen Tage hinzu. Einen Error Flag in berechneDurchschnitt() zurückzugeben ist etwas umständlich. Besser wäre es Fehler mit Exceptions zu handhaben. Das wird in späteren Kapiteln besprochen.


import java.util.*;

class Monat
{
  // Konstante
  final int ERRORFLAG = 999;

  // Instanzvariablen
  private int   monat;  // 1 == Januar
  private int   jahr;   // Jahr als int, z.B. 2017
  private int   tageImMonat;   // Anzahl der Tage in diesem Monat

  // Temperatur Daten
  private int[] temp;    //Temperatur Tag 1 in temp[1]
  private boolean[] valide;

  . . .

  // die Anzahl der Tage mit gueltigen Daten zaehlen
  public int anzahlValideTage()
  {
    int anzahl = 0;
    for ( int tag = 1; tag <= tageImMonat; tag++ )
      if ( valide[tag] )
        anzahl++;

    return anzahl;
  }

  // Durchschnittstemperatur fuer alle gueltigen Tage berechnen
  public double berechneDurchschnitt()
  {
    int summe = 0;
    int anzahl = 0;
    for ( int tag=1; tag <= tageimMonat; tag++ )
    {
      if ( valide[tag] )
      {
        summe += temp[tag];
        anzahl++;
      }
    }

    if ( anzahl > 0 )
      return (double)summe/anzahl;
    else
      return ERRORFLAG;
  }
}

FRAGE 11:

Was passiert mit einem Monat-Objekt, wenn das Programm beendet ist?

zur nächsten Seite  zum Inhaltsverzeichnis   zur nächsten Seite