elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 20:38  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderador: Casidiablo)
| | | |-+  ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA  (Leído 1023 veces)
mardres

Desconectado Desconectado

Mensajes: 2


Ver Perfil
¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
« en: 08 Mayo 2007, 03:02 »

Estoy creando un programa el cual con ayuda de un arreglo bidimencional imprime un triangulo de pascal.

Ejemplo:Si en la ventana se digita el valor 6 esto generaria una salida de la siguiente manera:
Código:
         1  0  0  0  0  0
         1  1  0  0  0  0
         1  2  1  0  0  0
         1  3  3  1  0  0
         1  4  6  4  1  0
         1  5 10 10 5  1

Pero en vez de esto me genera lo siguiente:
Código:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
    at TrianguloPascal.main(TrianguloPascal.java:26)

Aqui les coloco el codigo para ver si encuentran el error y me dicen donde esta ya que yo ya me canse de buscar y a la unica Conclusión a la que llego es que en la linea en la cual coloco pascal[i+1][j+1]=pascal[j]+pascal[j+1];no entra al FOR.

Código:
import javax.swing.JOptionPane;

public class TrianguloPascal {

    public TrianguloPascal() {
    }
    public static void main (String args[]) {
    String texto;
    texto="";
    int max=Integer.parseInt(JOptionPane.showInputDialog(null, "Digite la dimencion del triangulo de pascal; "));
    int [][] pascal=new int [max][max];
   
    for(int i=0;i<max;i++) {
    for(int j=0;j<max;j++) {
    if(j==0) {
    pascal[i][j]=1;
    }
    pascal[i+1][j+1]=pascal[i][j]+pascal[i][j+1];
    }
    }
    for(int i=0;i<pascal.length;i++) {
    for(int j=0;j<pascal.length;j++) {
    texto+=pascal[i][j]+ "\t";
    }
    texto+="\n";
    }
    System.out.print(texto);
    }   
  }
[/size]
En línea
Crack_X
Anti-War
Colaborador

Desconectado Desconectado

Mensajes: 2.324


Peace & Love


Ver Perfil WWW
Re: ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
« Respuesta #1 en: 08 Mayo 2007, 05:08 »

Te explico lo que sucede. Cuando llegas al ultimo ciclo del loop, supongamos que max es 4, el ultimo ciclo sera con i o j = 3

Código:
pascal[i+1][j+1]=pascal[i][j]+pascal[i][j+1];

Eso intenta acceder a 3+1 = 4, y eso el maximo que no existe. Prueba poniendo en el loop max-1. O con un if a ver si i+1 o j+1 no sea igual a max.
En línea

Shit loads of money spend to show us wrong from right. Say no to war


Yasser Has Things To Say
WarZone
Ragnarok
Moderador Global
*****
Desconectado Desconectado

Mensajes: 4.227


Ver Perfil
Re: ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
« Respuesta #2 en: 08 Mayo 2007, 18:01 »

Código:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
    at TrianguloPascal.main(TrianguloPascal.java:26)

En la línea 26 salta una excepción porque el índice con el que intentas acceder a un array (6) está fuera de los límites.

Los errores que da java son de los mejores que te puedes encontrar.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats