Título: error codigo matriz Publicado por: edgano en 2 Diciembre 2008, 00:31 am hola de nuevo gente.
despues de la ayuda que me disteis en este foro, logre hacer el ejercicio, pero a partir de un numero de columnas me "peta" el codigo... me gustaria saber donde me he equivocado y que esta mal. p.d. no lo e podido solucionar porke haze poko que programo gracias de antemano CODIGO import java.io.*; public class Prac2 { public static void main(String[] args) throws Exception { // Declaracion para utilizar el teclado InputStreamReader entrada = new InputStreamReader(System.in); BufferedReader teclat = new BufferedReader(entrada); // Definicion de variables int N,i,Max,aux,h,num; int [][]PWM; char val; val='º'; i=0; num=0; // Pedir tamaño matriz System.out.println("Introdueix el tamany de la finestra"); N= Integer.parseInt(teclat.readLine()); PWM=new int [4][N]; // Introducir datos en matriz System.out.println("Introdueix els valors i finalitza amb *"); //Encontrar valor final while ((val!='*')){ val=(char)teclat.read(); // Asignar valor al lugar correspondiente switch(val){ case 'A': PWM[0]=PWM[0]+1; break; case 'C': PWM[1]=PWM[1]+1; break; case 'G': PWM[2]=PWM[2]+1; break; case 'T': PWM[3]=PWM[3]+1; break; } i++; //Mirar que no se supere el valor de secuencia y si se supera inicializar i if (i>=N){ i=0; } } // Mostrar la matriz por pantalla for(i=0; i<PWM.length; i++){ for(h=0;h<PWM.length;h++) System.out.print(" "+PWM[h]); System.out.println ( ); } //Buscar valor maximo for(i=0;i<N;i++){ Max=0; aux=0; for(h=0;h<N;h++){ if(PWM[h]>Max){ Max=PWM[h]; aux=h; } } //Mostrar valor maximo if (num==0){ System.out.print("El prototipus resultant es: "); num++; } switch(aux){ case 0:System.out.print("A ");break; case 1:System.out.print("C ");break; case 2:System.out.print("G ");break; case 3:System.out.print("T ");break; } } } } ESTE CODIGO TE PIDE EL TAMAÑO DE UNA SECUENCIA Y TE HAZE INTRODUIR DIFERENTES LETRRAS(A,C,G,T,) ENTONCES TE DICE EL MAXIMO DE CADA POSICION. PERO NO SE PORQUE CUANDO LA MATRIZ ES 5 O SUPERIOR PETA...(INDEXOUTOFBOUNDS) Título: Re: error codigo matriz Publicado por: Amerikano|Cls en 2 Diciembre 2008, 00:41 am Yo por mi parte no te he entendido nada, explicate mejor ;D, y segundo escribe tus codigos con la etiqueta code=java
salu2 Título: Re: error codigo matriz Publicado por: edgano en 2 Diciembre 2008, 00:44 am quando te pide el tamaño de la matriz (tamaño de ventana) si le pones 6 o 7... te sale todo ok?? no puede ser!!!
me e explikao bien=?? Título: Re: error codigo matriz Publicado por: juancho77 en 2 Diciembre 2008, 04:51 am Código
Eso no va andar nunca asi. Tiene muchos errores graves: mira la declaracion de PWM: un arreglo bidimensional de enteros. Luego, en la sentencia Código le intentas sumar un entero a una propiedad de la matriz. Lo logico seria acceder al valor Código y luego sumarle uno. Corrige lo basico y replantea tu duda. Saludos Título: Re: error codigo matriz Publicado por: edgano en 2 Diciembre 2008, 09:49 am Código lo siento, se me havia colado al copiarlo, creo que es correcto, ya que compila correctamente hasta el valor 4 de N...lo que no entiendo pk "peta" a partir de ese valor Título: Re: error codigo matriz Publicado por: Amerikano|Cls en 2 Diciembre 2008, 18:11 pm porque no lo debuggean? ::)
salu2 Título: Re: error codigo matriz Publicado por: juancho77 en 3 Diciembre 2008, 11:42 am Tu pones
Código
y lo declaras Código
Entonces cuando N es mas de 4, por ejemplo, N=6, h toma el valor 4,5 y el programa te larga un arrayIndexOutOfBounds Exception. Debes corregir esa parte. No te dire bien como porque no entiendo que hace el programa (esta en italiano :huh:). Saludos. Título: Re: error codigo matriz Publicado por: arlick en 3 Diciembre 2008, 12:39 pm que cosa más rara! y tengo que añadir fea, si fuese tu profesor te suspendía. deberías aprender a tabular correctamente.
Por otra parte... el problema está aquí: Código
Habías puesto un valor incorrecto que se salía de rango. Parece que es algo relacoinado con el adn, un típico problema de programación? a mí no me suena xD |