Esercizio: somma di valori

Svolgere il seguente esercizio: realizzare un programma che legge gli interi di un file (uno per riga) e stampa la loro somma.













Soluzione: si usa il metodo dell'accumulatore (risultato parziale). Si crea una variabile nella quale viene memorizzata la somma degli interi letti fino a questo momento.

All'inizio la variabile vale 0 perchè non è stato letto nessun valore (e quindi la somma vale 0). A ogni passo, si legge un intero e lo si aggiunge alla variabile. In questo modo, la variabile contiuna a contenere tutti gli interi letti fino a questo momento anche dopo che è stato letto un nuovo valore.

Questo metodo va poi combinato con il sistema di lettura di interi da file. Si tratta quindi del solito ciclo di lettura di interi da file, in cui però l'operazione da fare ad ogni passo non è la stampa ma la somma all'accumulatore. Il programma SommaTutti.java implementa questa soluzione.

import java.io.*;

class SommaTutti {
  public static void main(String args[])
  throws IOException {
    FileReader f;
    f=new FileReader("numeri.txt");

    BufferedReader b;
    b=new BufferedReader(f);

    String s;
    int x;
    int somma=0;

    while(true) {
      s=b.readLine();
      if(s==null)
        break;

      x=Integer.parseInt(s);
      somma=somma+x;
    }

    System.out.println(somma);
  }
}