Erro método

Por que o método calcula está com erro?

[code]import java.io.*;

public class Principal {

public static void main(String[] args) {  


	int []x = new int[63] ;
	int []y = new int [7];
	int [][] w = new int [63][7];
	int indice = 0;
	int  alvo = 1;

	File file = new File("c:/a1.txt"); 
	int [] t = {1,-1, -1, -1, -1, -1, -1};

	try { 

		FileReader reader = new FileReader(file);  
		BufferedReader input = new BufferedReader(reader);  
		String linha;  
		//Atribui -1 ao caracter . e 1 ao caracter #.
		while ((linha = input.readLine()) != null) {  
			for (int i = 0; i<linha.length(); i++){
				if (linha.charAt(i)== '.'){
					x[indice]= -1;
				}else if (linha.charAt(i)=='#'){
					x[indice] = 1;
				}
				indice = indice +1;
			} 
			System.out.println(linha);  
		}
		input.close();  
	} catch (IOException ioe) {  
		System.out.println(ioe);  
	}  
	//Para testar
	for (int i = 0; i < x.length; i++){
		System.out.println(x[i]+" ");
		System.out.println();
	}

	//Para testar
	for (int i = 0; i < 63; i++){
		for (int l = 0; l < 7; l++){
			System.out.print(w[i][l]);
		}
		System.out.println();
	}
	//Calcular a resposta da rede

	for (int i = 0;i <7; i++){
		calcula(i);
	}

	private void calcula ( int i ){
		int somaTotal = 0;
		for ( int j  = 0; j < 63; j++){
			int soma = x[j]* w[j][i];
			somaTotal = somaTotal + soma;
			if (somaTotal >= 1 ){
				somaTotal = 1;
			}else if (somaTotal <= -1){
				somaTotal = -1;
			}else{
				somaTotal = 0;
			}
		}
		if (somaTotal != t[i]){
			for (int j = 0; j< 63; j++){
				w[j][i]= w[j][i] + alvo * x[j];
				calcula (i);
			}
		}
	}

}

}

[/code]

Olá Juliana, olha só:

   import java.io.*;   
  
    public class Principal {     
   
      int []x = new int[63] ;   
      int []y = new int [7];   
      int [][] w = new int [63][7];   
      int indice = 0;   
      int  alvo = 1;   
   
      File file = new File("c:/a1.txt");   
      int [] t = {1,-1, -1, -1, -1, -1, -1};
   	  
       public Principal() {
          
         try {   
         
            FileReader reader = new FileReader(file);     
            BufferedReader input = new BufferedReader(reader);     
            String linha;     
            //Atribui -1 ao caracter . e 1 ao caracter #.   
            while ((linha = input.readLine()) != null) {     
               for (int i = 0; i<linha.length(); i++){   
                  if (linha.charAt(i)== '.'){   
                     x[indice]= -1;   
                  }
                  else if (linha.charAt(i)=='#'){   
                     x[indice] = 1;   
                  }   
                  indice = indice +1;   
               }   
               System.out.println(linha);     
            }   
            input.close();     
         } 
             catch (IOException ioe) {     
               System.out.println(ioe);     
            }     
        //Para testar   
         for (int i = 0; i < x.length; i++){   
            System.out.println(x[i]+" ");   
            System.out.println();   
         }   
      
        //Para testar   
         for (int i = 0; i < 63; i++){   
            for (int l = 0; l < 7; l++){   
               System.out.print(w[i][l]);   
            }   
            System.out.println();   
         }   
        //Calcular a resposta da rede   
      
         for (int i = 0;i <7; i++){   
            calcula(i);   
         }   
      }
   
       private void calcula ( int i ){   
         int somaTotal = 0;   
         for ( int j  = 0; j < 63; j++){   
            int soma = x[j]* w[j][i];   
            somaTotal = somaTotal + soma;   
            if (somaTotal >= 1 ){   
               somaTotal = 1;   
            }
            else if (somaTotal <= -1){   
               somaTotal = -1;   
            }
            else{   
               somaTotal = 0;   
            }   
         }   
         if (somaTotal != t[i]){   
            for (int j = 0; j< 63; j++){   
               w[j][i]= w[j][i] + alvo * x[j];   
               calcula (i);   
            }   
         }   
      }
      
       public static void main(String[] args) {     
         Principal iniciar = new Principal();
      }
   }

Criei um construtor para a classe principal e chamo o main para inicia-la separadamente!
Espero ter lhe ajudado! :smiley: Valew. :wink:

A assinatura do metodo calcula deve ser assim:

 private static void calcula ( int i ){  

ele deve ser static.