elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 2


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

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
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.322


Peace & Love


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

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
Colaborador
***
Desconectado Desconectado

Mensajes: 4.590


Shrödingerificado


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

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
ana89bel

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
« Respuesta #3 en: 13 Mayo 2009, 23:45 pm »

HOLA ESTE MIRA PUES YO TENGO ESTE KODIGO PERO LO UNIKO que ME FALTA ES que ME LO IMPRIMA EN FORMA DE TRIANGULO ESPERO que TE AYUDE PERO SI ALGUIEN ME PUEDE DECIR KOMO SE LO AGREDASERE ATTE UNA NOVATITA EN JAVA :-\

import javax.swing.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TrianguloPascal extends JFrame implements ActionListener
 {
    Label      et1     = new Label("De que numero: ");   
    TextField  num   = new TextField();
    Button     botonCalcular = new Button("Calcular");
    Button     botonLimpiar  = new Button("Limpiar");
   Button     botonCerrar   = new Button("Cerrar");
   TextArea resultado = new TextArea();
 public TrianguloPascal()
    {
    // Establesco el nombre en la barra de titulo
   super("---TRIANGULO DE PASCAL---");
      // Se establece que el Administrador de Aspecto sea nulo
    this.setLayout(new BorderLayout ());
     this.setLayout(null);
   
   // Establesco los parametros del TextArea

   resultado.setBackground(Color.pink);
   resultado.setFont(new Font("Tahoma",Font.PLAIN,12));
   resultado.setForeground(Color.black);// Letra del TextArea
   // Se establecen posicion y tamaño del Frame y de los componentes
    this.setBounds(220,220,700,500);//Esto es el frame
   
   et1.setBounds(20,40,120,20);
   num.setBounds(150,40,160,20);
   resultado.setBounds(50,100,590,300);
   botonCalcular.setBounds(80,450,100,30);
   botonLimpiar.setBounds(220,450,100,30);
   botonCerrar.setBounds(360,450,100,30);
   
      this.add(et1);
      this.add(num);
   
   this.add(resultado);
      this.add(botonCalcular);
      this.add(botonLimpiar);
      this.add(botonCerrar);


      botonCalcular.addActionListener(this);
      botonLimpiar.addActionListener(this);
      botonCerrar.addActionListener(this);
      
            this.show();
            
      addWindowListener(new WindowAdapter()
      {
         public void windowClosing(WindowEvent d)
          {
             System.exit(0);
          }});
      
      

    }            
   public void actionPerformed(ActionEvent ev)
   {
      if(ev.getSource() == botonCerrar)
      {
         this.dispose();
         System.exit(0);
      }
   
    if(ev.getSource() == botonLimpiar)
      {

         num.setText("");
         resultado.setText("");
      }
      
      
     if(ev.getSource ()==botonCalcular)
     {
        int w=0;
        try
        {
        w=   Integer.parseInt(num.getText());
        }
        catch (Exception e)
        {
           w=0;
   
        }
        //para el calculo
        
     int[] a = new int[0]; 
           for (int i = 1 ; i <=w +1 ; i++)
                 { 
                    
                  int[] x = new int;
                 for (int j = 0; j < i; j++)
                     {
                     if(j==0 || j== (i-1) )
                         {    
                    x[j]=1;
                          }
                        else {
                           
                            x[j]=a[j]+a[j-1];
                        
                            }
            resultado.append( " "+x[j]+" ");
                              }
                            a = x;
                                 
                resultado.append("\n");
                
                
                
              }         
    }
      
   }//fin de action event   
   
public static void main(String args[])
{
new TrianguloPascal();   // Se crea un objeto anonimo (Sin referencia)
}
}
En línea

Amerikano|Cls


Desconectado Desconectado

Mensajes: 789


[Beyond This Life]


Ver Perfil WWW
Re: ¿POR QUE NO ENTRA AL "FOR"? _ Arreglos + JAVA
« Respuesta #4 en: 14 Mayo 2009, 18:35 pm »

Bueno primero no escribas en mayusculas que nadie te esta isultando  :-[, y segndo mete el code en la etiqueta java.

salu2
En línea





Mi blog:
http://amerikanocls.blogspot.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programacion en java con arreglos
Java
tav 4 3,655 Último mensaje 30 Marzo 2012, 01:46 am
por Debci
problema java con arreglos
Java
cracken422 1 2,171 Último mensaje 7 Agosto 2012, 22:10 pm
por h3ct0r
Ayuda con arreglos en java.
Java
iAlexisan 3 2,220 Último mensaje 8 Diciembre 2015, 02:30 am
por iAlexisan
El programa no entra en este "if"
Programación C/C++
juligarc10 3 1,624 Último mensaje 6 Diciembre 2018, 22:20 pm
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines