Foros del Web » Programación para mayores de 30 ;) » Java »

números sean introducidos como argumentos de programa.

Estas en el tema de números sean introducidos como argumentos de programa. en el foro de Java en Foros del Web. Hola. Pues como dice el titulo, no se como hacer un programa, y que los números que uso sean introducidos como argumentos de programa. Es ...
  #1 (permalink)  
Antiguo 30/05/2011, 16:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 2 meses
Puntos: 3
números sean introducidos como argumentos de programa.

Hola.
Pues como dice el titulo, no se como hacer un programa, y que los números que uso sean introducidos como argumentos de programa.
Es decir, yo el programa que tengo es este:
Código HTML:
class metodoBurbuja{
      public static void main (String args[]){
         int []a={2,6,1,8,3,9,2,5};

         for (int i=1; i<a.length;i++) {
            for(int j=0;j<a.length-1;j++){

               if (a[j]>a[j+1]){
            	   int temp=a[j];
            	   a[j]=a[j+1];
            	   a[j+1]=temp;
               }
            }
         } 

         for (int i=0;i<7;i++){
            System.out.print(a[i]);
         }
      } 
   }
Y lo que quiero, es que el array a[], los números que contiene ese array sean introducidos como argumentos del programa. Es decir, con los args.
Y he leido que se pone así: java metodoBurbuja xx1 xx2, pero no me funciona..algo hago mal.
Y no encuentro ningun ejemplo.
Alguien me lo podría explicar?
Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 30/05/2011, 17:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: números sean introducidos como argumentos de programa.

Cita:
Y lo que quiero, es que el array a[], los números que contiene ese array sean introducidos como argumentos del programa. Es decir, con los args.
Y he leido que se pone así: java metodoBurbuja xx1 xx2, pero no me funciona..algo hago mal.
Y no encuentro ningun ejemplo.
Alguien me lo podría explicar?
Muchas gracias de antemano.
Cuando haces eso, tienes que recoger cada valor usando args[0], args[1], etc ... Que es lo que se le pasa al metodo main
  #3 (permalink)  
Antiguo 31/05/2011, 04:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: números sean introducidos como argumentos de programa.

Pero alguien me puede poner un ejemplo de como tendría que poner estos valores como argumento?
Porque como he dicho yo antes no sería: class metodoBurbuja 31 2 porque sólo con escribir eso me da error.
Y luego recogerles sería? args[0]=1;??
Es que no lo entiendo.. y me dá error al ponerlo así, por eso quería ver un ejemplo.
Muchas gracias... pero espero alguna respuesta, porque ya no sé como hacerlo.
  #4 (permalink)  
Antiguo 31/05/2011, 05:22
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: números sean introducidos como argumentos de programa.

Los párametros se pasan como tu has dicho:

java metodoBurbuja 1 2 3

Pero luego, cuando recoges los valores mediante el array de argumentos, tienes que convertirlos a entero (porque el array de argumentos es de tipo String).

Código C:
Ver original
  1. public static void main (String args[]){
  2.  int []a=new int[args.length];
  3.  
  4. for(int i=0;i<args.length;i++){
  5.     try{
  6.    a[i]= Integer.parseInt(args[i]);
  7.     }catch(NumberFormatException e){
  8.      //Error
  9.     }
  10. }
  11. }
  #5 (permalink)  
Antiguo 31/05/2011, 05:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: números sean introducidos como argumentos de programa.

Entonces, como sutedes me estan diciendo, sería algo así:
Código HTML:
java metodoBurbuja 1 2 3 {
      public static void main (String args[]){
    	  int []a=new int[args.length];

    	  for(int i=0;i<args.length;i++){
            for(int j=0;j<args.length-1;j++){

               if (a[j]>a[j+1]){
            	   int temp=a[j];
            	   a[j]=a[j+1];
            	   a[j+1]=temp;
               }
            }
         } 

         for (int i=0;i<7;i++){
            System.out.print(a[i]);
         }
      } 
   }
Pero es que me dá error!! y sigo pensando que está mal lo de: java metodoBurbuja 1 2 3

Alguien me puede dar alguna idea más? Porque ese código ya da error en la línea uno.

Muchas gracias. Y espero sus respuestas pronto.
  #6 (permalink)  
Antiguo 31/05/2011, 05:43
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: números sean introducidos como argumentos de programa.

Lo de java MetodoBurbuja 1 2 3 es la llamada desde la línea de comandos.

La declaración de la clase es:

Código C:
Ver original
  1. public class metodoBurbuja {
  2.       public static void main (String args[]){
  3.           int []a=new int[args.length];
  4.  
  5.          for(int i=0;i<args.length;i++){
  6.     try{
  7.    a[i]= Integer.parseInt(args[i]);
  8.     }catch(NumberFormatException e){
  9.      //Error
  10.     }
  11. }
  12.  
  13.           for(int i=0;i<args.length;i++){
  14.             for(int j=0;j<args.length-1;j++){
  15.  
  16.                if (a[j]>a[j+1]){
  17.                    int temp=a[j];
  18.                    a[j]=a[j+1];
  19.                    a[j+1]=temp;
  20.                }
  21.             }
  22.          }
  23.  
  24.          for (int i=0;i<7;i++){
  25.             System.out.print(a[i]);
  26.          }
  27.       }
  28.    }

Y te faltaba lo de convertir el array de Strings a un array de enteros.
  #7 (permalink)  
Antiguo 31/05/2011, 05:47
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: números sean introducidos como argumentos de programa.

Cita:
Entonces, como sutedes me estan diciendo, sería algo así:
Cita:
java metodoBurbuja 1 2 3 {
Para nada, vale que no sepas como pasarle argumentos al main, pero deberías haberte dado cuenta de que lo que estás intentando es imposible.

El main siempre está dentro de una clase, y "java metodoBurbuja 1 2 3{" no es la forma de declarar una clase. Por eso es imposible que te compile.

Cita:
java metodoBurbuja 1 2 3
Es el comando que tienes que utilizar para llamar a tu clase desde la línea de comandos.

Si estás utilizando un IDE (Netbeans o eclipse), en las propiedades del proyecto o en la configuración del run del proyecto, podrás ponerle los parámetros que quieres que se le pase. Esos parámetros se utilizaran siempre, no es para que el usuario que lo vaya a ejecutar los introduzca.

Si quieres que el usuario pueda definirlos, tendrá que ejecutarlo a través de la línea de comandos, o tendrás que crear un método que le pida al usuario los parámetros, pero esto ya dentro del main.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #8 (permalink)  
Antiguo 31/05/2011, 05:58
 
Fecha de Ingreso: marzo-2008
Mensajes: 197
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: números sean introducidos como argumentos de programa.

Sí, tenéis razón.
Me había liado con que lo de java metodoBurbuja 3 5 1 no sabía donde tenía que ponerlo, ya que uso eclipse, y ya ni me daba cuenta del cmd...
Ya lo entendí!
Muchísimas gracias por ayudarme.
Un saludo.

Etiquetas: argumentos, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:17.