edutecnica

Esercizio 2                     

Scrivi un programma che accetti in input due vettori di interi (A e B) di 5 posti ciascuno e scriva su disco la loro somma; in seguito caricare il file salvato in un vettore T (avente la stessa dimensione dei due precedenti) e stamparlo a video.


Qui si è scelto di affidare a due metodi le operazioni di input e di salvataggio e quella di stama del vettore finale.
La funzione caricaesalva() riceve in ingresso due vettori A e B ciascuno di 5 posti.
La stessa funzione salva in un file la somma delle singole componenti dei due vettori.
La funzione stampa() non fa altro che aprire il file e mostrare a video i risultati della precedente operazione.

import java.io.*;
class vettori{
final static int n=5;
public static void main (String args [])throws IOException{
caricaesalva();
stampa();
}//fine main
//-----
static void caricaesalva() throws IOException{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader h= new BufferedReader(input);
int i;
int A[] = new int[n];
int B[] = new int[n];
for(i=0;i < A.length;i++){
   System.out.print("A-ins "+(i+1)+"°:");    
   A[i]=Integer.parseInt(h.readLine().trim());
}//fine for A
for(i=0;i < B.length;i++){
   System.out.print("B-ins "+(i+1)+"°:");    
   B[i]=Integer.parseInt(h.readLine().trim());
}//fine for B
PrintWriter f=null;
try {
f=new PrintWriter(new FileWriter("sommavettori.txt"));
}catch (IOException e){ System.err.println("errore"); }
//scrittura
for(i=0;i < n;i++)f.println(A[i]+B[i]);
f.close();
}//fine carica()
//-----
static void stampa(){
BufferedReader f=null;
int i=0;
int T[] = new int[n];
String s=""; //lettura del file e caricamento array
try {
f=new BufferedReader(new FileReader("sommavettori.txt"));
while(s!=null){
   s=f.readLine();
   if(s!=null){
      T[i]=Integer.parseInt(s.trim());
      i++;
   }//fine if
}//fine while
f.close();
}catch (IOException e){ System.err.println("errore");}
//stampo T
for(i=0;i < n;i++)System.out.print(T[i]+" ");
}//fine salva()
}//fine class