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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Cómo puedo pasar dos enteros por referencia?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo puedo pasar dos enteros por referencia?  (Leído 2,993 veces)
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
¿Cómo puedo pasar dos enteros por referencia?
« en: 16 Abril 2012, 05:35 am »

Hola a todos, estoy recién iniciándome en esto de la programación orientada a objetos en el lenguaje de programación Java, y aunque tiene un gran parecido a C y a C++, también es muy diferente en cuanto a los conceptos de clases y objetos, es un modo más natural para programar.

Bueno, estoy tratando de hacer un programa sencillo que permite llenar un vector de 10 elementos y luego ordenarlos mediante un método, este ordenamiento debe de ser del INTERCAMBIO. Todo está bien hasta que llego al momento en el que creo un método que permita realizar el intercambio. Cuando lo compilo y lo interpreto, puedo llenar los datos, pero al final, al mostrarme los resultados, no se ordena. Tal vez hay algo que no me doy cuenta y que está fallando, espero por favor que alguien me ayude a encontrar el error y así poder corregirlo, de paso que aprendo a realizar el paso de parámetros por referencia (o pseudoreferencia al estilo de C)

Ahí va mi código:

Código:

import java.util.*;
        
public class Arreglo2 {
    public static void main(String [] args) {
        int [] p;
        p= new int[10];
        
        llenaVector(p);
        muestraVector(p);
    }
    
    public static void llenaVector(int [] x) {
        Scanner lee=new Scanner(System.in);
        int i;
        
        System.out.println("A continuación va a llenar el vector");
        for(i=0; i<x.length; i++) {
            System.out.print(i+". ");
            x[i]=lee.nextInt();
        }
    }
    
    public static void muestraVector(int [] x) {
        int i;
        System.out.println("Vector: #elementos: "+x.length);
        for(i=0; i<x.length; i=i+1) {
            System.out.printf("x[%2d]=%2d\n", i, x[i]);
        }
    }
    
    public static void ordenaVector(int [] x) {
        int i,j;
        for(i=0; i<x.length-1; i++) {
            for(j=i+1; j<x.length; j++) {
                if(x[i]>x[j]) {
                    intercambia(x,i,j);
                }    
            }
        }
    
    }
    public static void intercambia(int [] x, int i, int j) {
        int temp;
        temp=x[i];
        x[i]=x[j];
        x[j]=temp;
    }
    
    
}


« Última modificación: 16 Abril 2012, 05:39 am por theluigy13etv » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: ¿Cómo puedo pasar dos enteros por referencia?
« Respuesta #1 en: 16 Abril 2012, 09:48 am »

Te falta agregar el método ordenaVector()

Código
  1. llenaVector(p);
  2. ordenaVector(p);
  3. muestraVector(p);
  4.  

Saludos.


En línea

abc
theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: ¿Cómo puedo pasar dos enteros por referencia?
« Respuesta #2 en: 16 Abril 2012, 20:04 pm »

Muchas gracias, no me había dado cuenta de ese detalle, que descuidado que soy, todo por concentrarme en que mis métodos funcionen bien. Gracias de verdad, creo que el tema queda cerrado.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines