Gegeben sei eine endliche Folge von double-Werten, deren Anzahl nicht bekannt ist. Man stelle sich vor, diese Zahlen werden sequentiel von einem Benutzer online eingegeben.
Algorithmen, die derartige Daten sequentiell verarbeiten, ohne alle Werte zwischenzuspeichern, nennt man Online-Algorithmen
Implementieren Sie einen Online-Algorithmus, der den Durchschnitt (das arithmetische Mittel) der eingegebenen Werte berechnet. Ihr Algorithmus darf höchstens konstanten Speicherverbrauch haben.
Verwenden Sie Eingabe.java zum Einlesen von double Wert: Eingabe.readDouble().
3. Juni, 2008 um 18:33
Das Programm liest positive Zahlen von der Tastatur ein. Bei einer negativen Zahl wird es beendet. Während des Einlesens wird fortlaufend die Anzahl der eingegebener Zahlen erhöht und die Summe aller Zahlen berechnet. Das arithmetische Mittel ist dann der Quotient dieser beiden Werte.
public static void main(String[] args) { double wert; double summe = 0.0; int anzahl = 0; do { System.out.print("Geben Sie eine Zahl ein (Abbruch mit negativer Zahl) : "); wert = Eingabe.readDouble(); if (wert >= 0) { summe += wert; anzahl++; } } while ( wert > 0 ); System.out.println("Durchschnitt ist " + (summe / anzahl)); }