import java.util.Scanner;
public class Determinante {
	private static int dimensao = 0;
	static Scanner digite = new Scanner(System.in);
	public static void main(String[] args) {
		System.out.println("\n Digite a dimensão para MAT..:");
		dimensao = digite.nextInt();
		if (dimensao > 3) {
			System.out.println(" no momento so pode ser de 3 x 3 ..:");
		}
		int linha = 0, coluna;// vetor começa do zero
		double det;
		double mat[][] = new double[dimensao][dimensao];
		while (linha < 3) {
			coluna = 0;
			while (coluna < 3) {
				System.out.println("\n Digite valorespara MAT [" + (linha + 1)
						+ "] [" + (coluna + 1) + "]");
				Scanner alpha = new Scanner(System.in);
				mat[linha][coluna] = alpha.nextDouble();
				coluna++;
			}
			linha++;
		}
		det = ((mat[0][0] * mat[1][1] * mat[2][2]) - (mat[0][2] + mat[1][1] + mat[2][0]));
		System.out.println("O determinante dessa matriz é: " + det);
	}
}
minha duvida é aqui estou calculando a det de ordem 3 e se eu quiser nesse mesmo codigo calcular de ordem 2  eu teirei de fazer um else e repetir isso aqui ?
det = ((mat[0][0] * mat[1][1] * mat[2][2]) - (mat[0][2] + mat[1][1] + mat[2][0]));
System.out.println("O determinante dessa matriz é: " + det);
só que ao invés de disso diminuiria os calculo pq acima e de ordem 3  ?
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          olivercld, boa tarde!
Seu cálculo de determinente de matriz de 3º ordem está errado. Esse métodos que você usou é o usado para matriz de ordem 2, porém é dado pela diferença entre produto (multiplicação) dos termos da diagonal primária e produto dos termos da diagonal secundária.
Faça uma revisão ae.
Tem uma fórmula para resolver determinente de órdem arbitrária…
Abraço!
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          O determinante da matriz de ordem 3 é calculado assim:

         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Ou se achar melhor, assim:

         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          outra dúvida:
por que você criou dois objetos do tipo Scanner ?
Um só basta! 
E porque ta usando while dentro de while?
Não é possível usar “for” não?
logo logo farei um software desses (eu acho)…
aí posto o source para mostrar
(depois que vc ter terminado o seu, claro)

         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          obrigado galera… vou analisar melhor a forma de fazer a determinante e ai posto o codigo denovo.
vou passar a maneira de fazer no papel …
conseguindo ou nao posto aqui valeuuu
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          d34d_d3v1l  vc me perguntou sobre o while entao la ta querendo dizer que enquanto linha for menor que 3 esta dizendo que e o maximo que posso fazer e uma matriz de 3 ordem certo ? e se o usuario digitar um numero superior exem: uma 4x4 ela nao vai aceitar so que mesmoa ssim ao eu colocar uma 4 la no começo continua pedindo para digitar os valores da matriz .
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Se o Software só funciona com matriz 3x3, então pq vai pedir para o usuario digitar ? 
abrazz…
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          deu certo veja o codigo:
import java.util.Scanner;
public class Determinante {
	static int det;
	static Scanner digite = new Scanner(System.in);
	public static void main(String[] args) {
		int[][] matriz = new int[3][3];
		//int[][] mat = new int [2][2];
		//System.out.println("Qual ordem vc quer 2 ou ordem 3:");
		//digite.next();
		//if(digite == 2){
		System.out.println("\n Digite os valores para MAT..:");
		for (int linha = 0; linha <= 2; linha++) {
			for (int coluna = 0; coluna <= 2; coluna++) {
				System.out.println("Mat: [" + (linha + 1) + "][" + (coluna + 1)
						+ "]");
				matriz[linha][coluna] = digite.nextInt();
			}
		}
		
		det =     matriz[0][0] * matriz[1][1] * matriz[2][2] + matriz[0][1]
				* matriz[1][2] * matriz[2][0] + matriz[0][2] * matriz[1][0]
				* matriz[2][1] - matriz[0][0] * matriz[1][2] * matriz[2][1]
				- matriz[0][1] * matriz[1][0] * matriz[2][2] - matriz[0][2]
				* matriz[1][1] * matriz[2][0];
		System.out.println("O determinante dessa matriz é: " + det);
	}
}
agora eu tentei fazer tipo um  menu, pra escolher se o usuario quer  uma 2x2 ou a 3x3, tntei fazer mais nao estou sabendo, queria assim se usuario qeur uma 2x2 digite tal se ele quer uma 3x3 digite tal. tem como fazer ? poderiam me dar uma ajuda
ha sim o exercicio funcionou direito em uma 3x3 peguei estes numeros de um exercicio conferi
saida:
 Digite os valores para MAT..:
Mat: [1][1]
-1
Mat: [1][2]
2
Mat: [1][3]
3
Mat: [2][1]
0
Mat: [2][2]
1
Mat: [2][3]
4
Mat: [3][1]
-2
Mat: [3][2]
-3
Mat: [3][3]
5
O determinante dessa matriz é: -27
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          ta e agora caso eu queira fazer dentro do msmo codigo uma 2x2 , eu nao estou acertando fazer tipo um menu pra o usuario escolher qual ele quer a 2x2 ou a 3x3. ? tentei fazer no codigo so que nao ta saindo
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Usei o seu codigo e fiz so algumas modificações. Ainda poderia melhorar o codigo mas ficaria mais difícil o entendimento da lógica.
import java.util.Scanner;
public class Determinantes {
 
    public static int det;
    public static Scanner ler = new Scanner(System.in);
    public static void main(String[] args) {
        System.out.println("Escolha a ordem da matriz que deseja calcular 2 ou 3 :");
        int ordem = ler.nextInt();
        int[][] matriz = new int[ordem][ordem]; 
        //if(digite == 2){  
        System.out.println("\n Digite os valores para MAT..:");
        for (int linha = 0; linha < ordem; linha++) {
            for (int coluna = 0; coluna < ordem; coluna++) {
                System.out.println("Mat: [" + (linha + 1) + "][" + (coluna + 1)
                        + "]");
                matriz[linha][coluna] = ler.nextInt();
            }
        }
        if (ordem==3){
        det = matriz[0][0] * matriz[1][1] * matriz[2][2] + matriz[0][1]
                * matriz[1][2] * matriz[2][0] + matriz[0][2] * matriz[1][0]
                * matriz[2][1] - matriz[0][0] * matriz[1][2] * matriz[2][1]
                - matriz[0][1] * matriz[1][0] * matriz[2][2] - matriz[0][2]
                * matriz[1][1] * matriz[2][0];
        System.out.println("O determinante dessa matriz é: " + det);
    }
             
        if (ordem==2){
         det= matriz[0][0]*matriz[1][1]-matriz[0][1]*matriz[1][0];
         System.out.println("O determinante dessa matriz é: " + det);
        }
    }
}
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          troque isso:
if (ordem==3){ 
det = matriz[0][0] * matriz[1][1] * matriz[2][2] + matriz[0][1] 
* matriz[1][2] * matriz[2][0] + matriz[0][2] * matriz[1][0] 
* matriz[2][1] - matriz[0][0] * matriz[1][2] * matriz[2][1] 
- matriz[0][1] * matriz[1][0] * matriz[2][2] - matriz[0][2] 
* matriz[1][1] * matriz[2][0]; 
System.out.println("O determinante dessa matriz é: " + det); 
} 
if (ordem==2){ 
det= matriz[0][0]*matriz[1][1]-matriz[0][1]*matriz[1][0]; 
System.out.println("O determinante dessa matriz é: " + det); 
} 
por isso
metodo ordem2(parametros){
det= matriz[0][0]*matriz[1][1]-matriz[0][1]*matriz[1][0]; 
return det
}
metodo ordem3(parametros){
det = matriz[0][0] * matriz[1][1] * matriz[2][2] + matriz[0][1] 
* matriz[1][2] * matriz[2][0] + matriz[0][2] * matriz[1][0] 
* matriz[2][1] - matriz[0][0] * matriz[1][2] * matriz[2][1] 
- matriz[0][1] * matriz[1][0] * matriz[2][2] - matriz[0][2] 
* matriz[1][1] * matriz[2][0]; 
return det
}
switch(ordem){
case:2; chama o metodo ordem2;break;
case: 3; chama o metodo ordem3; break 
}
System.out.println("O determinante dessa matriz é: " + det); 
} 
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          não sei se posso postar aqui mais estou fazendo essa transposta e so que nao ta saindo transposta veja:
import java.util.Scanner;
public class Transposta {
	static Scanner digite = new Scanner(System.in);
	public static void main(String[] args) {
		int[][] matriz = new int[4][4];
		System.out.println("Leitura dos valores da matriz");
		for (int linha = 0; linha < 4; linha++) {
			for (int coluna = 0; coluna < 4; coluna++) {
				System.out.println("matriz. :[" + (linha + 1) + "] ["
						+ (coluna + 1) + "]");
				matriz[linha][coluna] = digite.nextInt();
			}
		}
		System.out.println("Matriz Transposta\n");
		for (int linha = 0; linha < 4; linha++) {
			// System.out.print("|");
			for (int coluna = 0; coluna < 4; coluna++)
				System.out.println(" Ressult " + matriz[coluna][linha]);
			System.out.println();
		}
	}
}
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          olivercld, boa tarde!
Testa assim pra ver se fica bom:[code]	System.out.println(“Matriz Transposta:”);
for (int coluna = 0; coluna < 4; coluna++) {
	System.out.print("\n|");
	for (int linha = 0; linha < 4; linha++) { 
		System.out.print(matriz[coluna][linha]+"|");
	}
	System.out.println("");
}[/code]Abraço!
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          sim desse jeito ta saindo uma embaixo da outra. só que quero a trasposta e nao e isso que acontece oprof falou que era assim so que o que aconteceno esta sendo transposta. veja:
Leitura dos valores da matriz
matriz. :[1] [1]
1
matriz. :[1] [2]
2
matriz. :[1] [3]
3
matriz. :[1] [4]// fim da linha 1
4
matriz. :[2] [1]
5
matriz. :[2] [2]
6
matriz. :[2] [3]
7
matriz. :[2] [4]// fim da linha 2
8
matriz. :[3] [1]
9
matriz. :[3] [2]
1
matriz. :[3] [3]
2
matriz. :[3] [4]// fim da linha 3
3
matriz. :[4] [1]
4
matriz. :[4] [2]
5
matriz. :[4] [3]
6
matriz. :[4] [4]//
7
Matriz Transposta
|1|2|3|4| // deveria linha se tornar coluna 
|5|6|7|8|
|9|1|2|3|
|4|5|6|7|
assim: 
1 5
2 6
3 7
4 8
é dessa forma e nao esta da maneira de como ele falou para  ser transposta
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          nao estou conseguindo criar o metodo há um monte de erros poderia me explicar.  alguem ou cleyvison
	//if(ordem == 3){
		public int  TerceiraOrdem(int i){
		det =     matriz[0][0] * matriz[1][1] * matriz[2][2] + matriz[0][1]
				* matriz[1][2] * matriz[2][0] + matriz[0][2] * matriz[1][0]
				* matriz[2][1] - matriz[0][0] * matriz[1][2] * matriz[2][1]
				- matriz[0][1] * matriz[1][0] * matriz[2][2] - matriz[0][2]
				* matriz[1][1] * matriz[2][0];
		//System.out.println("O determinante dessa matriz é: " + det);
		return det;
		}
		//if(ordem == 2)
		 public SegundaOrdem(int ){
			det = matriz[0][0]* matriz[1][1] - matriz[0][1] * matriz[1][0];
			//System.out.println("O determinante dessa matriz é: " + det);
		return det;
		 }
	
		
	
		switch(ordem){  
		case 2: 
		
		break;  
		case 3:
			
			break ;  
		}  
		  
		System.out.println("O determinante dessa matriz é: " + det);   
		  
		}
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Opa, eu inverti os índices, é que fiz correndo não tive tempo de testar. Testa assim:[code]	System.out.println(“Matriz Transposta:”);
for (int coluna = 0; coluna < 4; coluna++) {
	System.out.print("\n|");
	for (int linha = 0; linha < 4; linha++) { 
		System.out.print(matriz[linha][coluna]+"|");
	}
	System.out.println("");
}[/code]Abraço!