Título: Ayuda! Calcular determinante en Java Publicado por: juancaa en 3 Marzo 2012, 15:59 pm Pues veran, mi intencion es lograr un codigo recursivo en java que calcule el determinante de una matriz de orden N, el caso es que ya logre dicho codigo en C y ahora que estoy aprendiendo Java se me ocurrio traducirlo pero a la hora de compilarlo me tira algunos errores que no comprendo dado que todavia no estoy familiarizado con Java, aqui les enseño mi codigo:
Código: import java.util.Scanner; public class det_matrix { public static void main (String args[]) { Scanner in=new Scanner(System.in); int i, j, dim, det; /* Leo matriz */ System.out.print("Introduzca dimension matriz : "); dim=in.nextInt(); int matrix[][]=new int[dim][dim]; for (i=0; i<dim; i++) { System.out.print("Elementos fila "+i+" : "); for (j=0; j<dim; j++) { matrix[i][j]=in.nextInt(); } } System.out.println(); /* Intento calcular determinante */ System.out.print("Determinante = "); if (dim==1) System.out.print(matrix[0][0]); else System.out.print(det_matrix_N(matrix)); /* ERROR */ System.out.println(); } private static int sgn (int x) { if (x%2==0) return(1); else return(-1); } private static int matrix_adj (int matrix[][], int matrix_aux[][], int dim, int m, int n) { int i, j, p, q; for (j=0, q=0; j<dim; j++) if (j!=n) { for (i=0, p=0; i<dim; i++) if (i!=m) { matrix_aux[p][q]=matrix[i][j]; p++; } q++; } return(dim-1); } private static int det_matrix_N (int matrix[][], int dim) { int i, j, dim_aux, det; for (i=0, j=0, det=0, dim_aux=dim; i<dim; i++) { det+=sgn(i+j)*matrix[i][j]*det_matrix_adj(matrix,dim_aux,i,j); } return(det); } private static int det_matrix_adj (int matrix[][], int dim, int m, int n) { int matrix_aux[][]=new int[dim][dim]; if ( (matrix_adj(matrix,matrix_aux,dim,m,n))==1 ) return(matrix_aux[0][0]); return(det_matrix_N(matrix_aux,dim-1)); } } Segun el compilador de NetBeans, el error se encuentra al llamar a la funcion det_matrix_N(matrix) y no entiendo que hago mal ni tampoco como arreglarlo, este es el mensaje de error : Codigo de error: Citar method det_matrix_N in class det_matrix.det_matrix cannot be applied to given tipes; required: int[][], int found: int[][] reason: actual and formal argument lists differ in length Cualquier idea o suggerencia es bien recibida. Gracias de antemano! Título: Re: Ayuda! Calcular determinante en Java Publicado por: camaleonh en 3 Marzo 2012, 17:42 pm System.out.print(det_matrix_N(matrix)); /* ERROR */
Estás pasando solo 1 argumento a la función, ahí lo dicen claramente en los errores, , deberias pasarle tambien dim, puesto que es el otro argumento faltante. det_matrix_N(matrix, dim) Título: Re: Ayuda! Calcular determinante en Java Publicado por: juancaa en 3 Marzo 2012, 23:01 pm Muchisimas gracias camaleonh, tienes toda la razon del mundo!!
Que fallo tan estupido OMG!! Problema solucionado! Título: Re: Ayuda! Calcular determinante en Java Publicado por: allop en 14 Agosto 2012, 08:09 am disculpa! y esto se puede aplicar para Java applet? esque soy nuevo en esto... Jeje :)
Título: Re: Ayuda! Calcular determinante en Java Publicado por: adwind en 14 Agosto 2012, 18:41 pm disculpa! y esto se puede aplicar para Java applet? esque soy nuevo en esto... Jeje :) Claro que si comapañero. |