• Jueves 2 de Mayo de 2024, 07:56

Autor Tema:  problema con esta class  (Leído 1382 veces)

cereal-killer

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
problema con esta class
« en: Viernes 28 de Agosto de 2009, 04:23 »
0
porfavor revicenmelo yo no puedo corregir el error
les dejo el codigo es ordenamiento metodo burbuja:
Citar
import java.io.*;
public class vectorordenado
{
    float vec[];
    int tam,ind;

    public vectorordenado (int tama)
    {  
   tam = tama;
   vec = new float [15];
    }


    public void llenar () throws IOException
    {
   DataImputStream lee = new DataImputStream (System.in);
   String texto;
   for (ind = 1 ; ind <= tam ; ind++)
   {
       do
       {
      System.out.print ("ingrese un numero");
      texto = lee.readLine ();
       }
       while (texto.length () == 0);
       Float dec = new Float (texto);
       vec [ind] = dec.floatValue ();
   }
    }


    public void imprimir ()
    {
   for (ind = 1 ; ind <= tam ; ind++)
   {
       System.out.print (vec [ind] + "  ");
   }
    }


    public void intercambio ()
    {
   float aux;
   aux = vec [ind];
   vec [ind] = vec [ind + 1];
   vec [ind + 1] = aux;
    }


    public void burbuja2 ()
    {
   int num;
   for (num = 1 ; num <= tam - 1 ; num++)
   {
       for (ind = 1 ; ind <= tam - 1 ; und++)
       {
      if (vec [ind] > vec [ind + 1])
      {
          intercambio ();
      }
       }
   }
    }
    public class principal
    {
   public static void main (String arg []) throws IOException
   {
       DataImputStream fuente = new DataImputStream (System.in);
       String texto;
       int nro;
       do
       {
      System.out.print ("ingrese la dimencion");
      texto = fuente.readLine ();
       }
       while (texto.length () == 0);
       nro = Integer.parseInt (texto);
       if (nro < 0)
      System.out.print ("no se realisa calculos con negativos");
       else
       {
      vectorordenado ordena = new vectorordenado (nro);
      ordena.llenar ();
      System.out.print ("el verctor ingresado es");
      ordena.imprimir ();
      System.out.print ("el vector ordenado es");
      ordena.burbuja ();
      ordena.imprimir ();
       }
   }
    }


gophlb

  • Visitante
Re: problema con esta class
« Respuesta #1 en: Viernes 28 de Agosto de 2009, 08:01 »
0
pues hombre, asi de primeras:
- DataImputStream no existe. Es DataInputStream
- Usas por ahi una variable und cuando es ind
- Los nombres de las clases van la primera con mayusculas
- El constructor de la clase Vectorordenado debe ir la primera con mayusculas
- Te falta una llave para cerrar la clase Vectorordenado
- Llamas a un metodo burbuja que no existe. En todo caso seria burbuja2
- Saca la clase Vectorordenado a otro fichero o hazla privada, pero no la definas tambien como public.

simplemente es fijarse un poquito y hacer las cosas con cuidado.

y ya como consejos finales:
- intenta separar un poco el codigo. no se si es original sera como el que ha aparecido aqui pegado, pero usa indentacion y separa bloques de codigo
- define las variables donde vayas a usarlas, no las definas todas juntas al principio del metodo y luego las uses al final del mismo, porque es complicado hacer el seguimiento de las mismas. en cualquier caso, cuidado con definicion de objetos/variables dentro de un bucle de forma innecesaria porque puedes hacer que tu programa sea un monstruo asesino
- realiza es con Z, no con s. igualmente, dimencion no existe, es dimension.
- no pongas nombredemetodo () intenta poner nombredemetodo() que queda mas bonito :P


no he mirado a ver si funciona o no funciona, pero con esas indicaciones, mas que suficiente para que compile.

cereal-killer

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: problema con esta class
« Respuesta #2 en: Sábado 29 de Agosto de 2009, 15:20 »
0
oye gracias estaqba un poco apuraqdo al hacer el prog. que no me di cuenta de esos errores tan basicos te agradesco
Citar
gophlb
 :) ya lo corregi ya me corre pero esta mal mi class llenar podrian ver que hice mal porfavor les dejo el codogo:
Citar
public void llenar () throws IOException
    {
        DataInputStream lee=new DataInputStream (System.in);
        String texto;
        for (ind = 1 ; ind <= tam ; ind++)
        {
            do
            {
                System.out.print ("ingrese un numero");
                texto = lee.readLine();
            }
            while (texto.length () == 0);
            Float dec = new Float (texto);
            vec [ind] = dec.floatValue();
        }
    }

gophlb

  • Visitante
Re: problema con esta class
« Respuesta #3 en: Domingo 30 de Agosto de 2009, 10:12 »
0
no se que es lo que falla porque no das ni la mas minima indicacion, pero supongo que lo que tu quieres es:
1- introduzco un valor
2- pulso intro
3- me pide un valor
4- si introduzco un valor, volvemos al paso 2
5- si no, ejecuta la ordenacion y finaliza el programa

asi sin mirar demasiado el codigo, diria que el problema lo tienes en la condicion de finalizacion del do while, que en lugar de ser == 0 deberia ser != 0, para que mientras haya algo, repita el bucle.

si te da mas problemas, intenta explicar que es lo que pasa, para facilitar el que te podamos ayudar. no puedes poner "no me funciona" y querer que nos pongamos a hacer pruebas buscando fallos aleatoriamnte :)

suerte !

cereal-killer

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: problema con esta class
« Respuesta #4 en: Martes 1 de Septiembre de 2009, 15:22 »
0
muchas gracias ya pude correr bien el programita, y por haverte echo tanto lio me disculpo eres rebuena honda
saludos